Вдохновленный комментарием к моей предыдущей статье , я понял, что 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? Если так, что ты построил? Если нет, то что вам мешает? Дайте нам знать в комментариях ниже!