Вдохновленный комментарием к моей предыдущей статье , я понял, что Nitrous все еще слишком сложен для правильной настройки. В этом руководстве мы познакомимся с установкой cURL и Phalcon на PHP-коробку Nitrous.io.
cURL — это встроенная библиотека PHP, которая часто устанавливается вместе с PHP. Он включен в исходный код PHP, но во время установки необходимо передать флаг в PHP, чтобы включить и активировать cURL. Phalcon — это высокопроизводительная среда MVC на основе C. Мы писали об этом раньше . Phalcon является сторонним расширением и, следовательно, не входит в состав PHP.
Начиная
 Чтобы начать работать с PHP-боксом Nitrous.io, см. Мою предыдущую статью .  После начальной короткой процедуры (вы можете пропустить весь бизнес Composer и Laravel) у вас будет установлен PHP, но без необходимых нам расширений.  Чтобы убедиться, что cURL отсутствует, попробуйте добавить следующее содержимое в файл index.php в папке www по умолчанию: 
 <? php echo "Curl is"   .   (( function_exists ( 'curl_version' ))   ?   ""   :   " not" )   .   " installed" ; 
Предварительный просмотр в браузере по умолчанию порта 3000 покажет, что cURL, очевидно, не установлен. Однако он установлен для всей системы. Вы можете проверить это, просто проверив версию в консоли и получив следующий вывод:
  Таким образом, нам нужно только расширение PHP, чтобы иметь возможность использовать его.  Обычно расширение PHP cURL устанавливается вместе с PHP с флагом --with-curl[=DIR] при выполнении команды configure .  В других случаях его легко установить, вызвав что-то простое, например, sudo apt-get install php5-curl .  Однако в нашем случае ни один из этих аппрейсов не сработает.  Первое не может быть достигнуто, потому что PHP уже установлен, и исходный код больше не находится на компьютере, а второе недоступно для нас, потому что у нас нет доступа sudo. 
Далее мы будем собирать cURL из исходного кода PHP и вручную добавлять его в нашу конфигурацию.
Загрузка исходного кода PHP
Если мы проверим версию PHP на Nitrous.io в данный момент, то это 5.5.8. Последняя версия PHP, однако, 5.5.9. Чтобы избежать возможных проблем с несовместимостью, мы клонируем точную версию, для которой мы создаем расширение.
Просмотрите старые архивы и выберите подходящую версию. Когда вы найдете нужную ссылку, сделайте следующее (обратите внимание, что каталог инструментов должен существовать, если вы следовали вместе с последней статьей; если нет, создайте его):
 cd / home / action /. tools wget http :// at1 . php . net / distributions / php - 5.5 . 8.tar . bz2 
  Распакуйте архив, запустив tar -xjvf , если вы скачали файл .bz2 , или tar -xzvf если вы скачали .gz .  Это создаст папку с тем же именем, что и архив.  Теперь у нас есть исходный код PHP для версии 5.5.8. 
Создание расширения cURL
Важно отметить, что эта процедура может быть применена к любому расширению, связанному с PHP, которое не было установлено по умолчанию. В этой статье мы используем cURL из-за комментария к предыдущему и из-за того, что это популярное расширение. Войдите в папку расширений исходного кода PHP.
 cd php - 5.5 . 8 / ext 
  Все доступные расширения находятся здесь, с их полным исходным кодом.  CD в папку curl и выполните процедуру ниже: 
 cd curl  /home/action/.parts/bin/phpize ./ configure -- with - curl make make install 
  Это создает расширение из исходного кода, помещает файл curl.so в подпапку modules и копирует его в папку расширений PHP в /home/action/.parts/packages/php5/5.5.8/lib/extensions/no-debug-zts-20121212/ . 
Активация расширения cURL
  Чтобы активировать расширение, все, что нам нужно сделать, это добавить строку в наш php.ini и перезапустить веб-сервер.  Активируйте отображение скрытых файлов на панели браузера файлов и перейдите в ~/.parts/etc/php5 .  Там отредактируйте файл php.ini : найдите строку «Module Settings», затем над ней добавьте строку extension=curl.so : 
  Сохраните файл и запустите parts restart apache2 в консоли.  Вы можете получить ошибку, говоря что-то вроде 
 ( 98 ) Address  already in  use :  AH00072 :  make_sock :  could not bind to address 0.0 . 0.0 : 3000 no listening sockets available ,  shutting down AH00015 :   Unable  to open logs parts :  ERROR :   "/home/action/.parts/packages/apache2/2.4.7/bin/apachectl start"  failed Aborting !                                                                     
Если вы это сделаете, просто запустите ту же команду снова, и она должна работать.
  Теперь попробуйте предварительно просмотреть файл index.php с предыдущего порта 3000, и, если все прошло успешно, в сообщении должно быть сказано, что cURL теперь установлен. 
  Вы можете убедиться в этом, изменив содержимое обратно на phpinfo() и ища раздел cURL: 
Загрузка и сборка Phalcon
В соответствии с инструкциями на их веб-сайте мы клонируем репозиторий, а затем создаем расширение.
 cd ~/. tools git clone -- depth = 1  git :// github . com / phalcon / cphalcon . git cd cphalcon / build ./ install 
  На последнем этапе мы не нуждаемся в sudo потому что учетная запись action Nitrous-ящики, довольно высока, и имеет разрешения, выходящие за пределы полномочий обычной учетной записи. 
  Как только компиляция завершится, скрипт сборки Phalcon автоматически phalcon.so файл phalcon.so в папку расширений PHP.  Затем вы можете выполнить ту же процедуру, что и выше, чтобы активировать расширение.  Введите php.ini и добавьте extension=phalcon.so в смесь, как показано ниже: 
  Повторная проверка phpinfo() из ранее после запуска parts restart apache2 должен показать Phalcon как установленный: 
Вывод
В этом руководстве мы продемонстрировали простоту установки пользовательских расширений PHP на Nitrous.io. Эта процедура может быть применена для установки расширений PHP в любом месте — вам не нужно перестраивать весь исходный код PHP просто, чтобы добавить связанное расширение в смесь. Со временем, по мере роста популярности, Nitrous может добавить более простой способ добавления расширений — возможно, даже через «части», их менеджер пакетов — но сейчас мы застряли в этом ручном процессе. Хотя утомительно, это, конечно, не сложно.
Вы уже играли на Nitrous? Если так, что ты построил? Если нет, то что вам мешает? Дайте нам знать в комментариях ниже!





