Я относительно новичок в мире управления / администрирования веб-сервера Unix.
Многие хосты с опциями администрирования панели управления позволяют вам изменять простой способ запуска PHP.
Наиболее распространенные варианты:
- модуль Apache
- Приложение CGI
- Приложение FastCGI
Мой вопрос просто, как вы можете изменить это через командную строку? Я знаю, что есть много конфигурационных файлов для Apache.
Самым близким, что я нашел, является этот вопрос , однако структура каталогов, похоже, не подходит для моей ОС (Ubuntu 12.04).
Я совершенно сбит с толку, что, похоже, нет четкого руководства, в котором я могу найти подробности этого процесса для чего-то, что кажется настолько распространенным. Простите, если это существует ... если так, пожалуйста, укажите мне в правильном направлении.
php
apache2
command-line
Эван Маттсон
источник
источник
Ответы:
Спасибо за предыдущие ответы, они помогли мне, но чтобы все заработало, мне пришлось объединить инструкции из нескольких мест, поэтому я решил написать полный набор команд.
К вашему сведению, я использую Ubuntu 14.04, Apache 2.4, и у меня также был запущен modphp по умолчанию, предыдущие инструкции также исключали необходимость отключения modphp.
Я также нашел http://blog.starcklin.com/2013/08/install-mod-fastcgi-and-php5-fpm-on-ubuntu/ очень информативным и понятным.
Просто выполните следующие команды в терминале одну за другой.
Сначала установите необходимые пакеты (я пропускаю php5, так как предполагается, что он уже установлен, добавьте его обратно при первой установке). Также обратите внимание, что в Apache 2.4 и выше вы можете использовать event-mpm вместо worker, см. Http://www.vps.net/blog/2013/04/08/apache-mpms-prefork-worker-and-event/ . Мой пример показывает работника, но просто замените слово работник на событие, если вы предпочитаете его использовать.
Теперь включите нужные вам моды и отключите те, которые вам не нужны.
Создайте файл php5.fcgi и дайте веб-серверу разрешение на его использование.
Создайте глобальный конфиг для php5-fpm
вставьте следующее (мы будем использовать сокет вместо IP-адреса)
Включить php5-fpm conf
Перезапустите apache и fpm
В соответствии с другими инструкциями вставьте следующее в новый просматриваемый файл php на вашем веб-сервере.
Откройте файл, который вы только что отредактировали, в веб-браузере. Если вы видите «FPM / FastCGI» рядом с Server API, вы теперь обслуживаете PHP с FastCGI!
источник
Я наконец нашел хороший учебник, предназначенный для этого. Я опишу шаги, которые я предпринял, поскольку у меня уже был установлен мой стек LAMP, но полное руководство можно найти здесь .
Примечание для нового:
В учебнике он начинается с переключения на пользователя root с помощью:
В моем случае я просто использовал префикс этих команд
sudo
вместо переключения пользователей, поэтому я буду документировать свои шаги таким образом.Начать
Шаг первый: установите Apache Worker MPM (многопроцессорные модули)
Это заменяет установленный мной prefork, который используется по умолчанию при установке Apache.
Шаг 2: Установите PHP5 и необходимые модули
На этом этапе вы можете получить сообщение об ошибке установки libapache2-mod-fastcgi:
Эта часть не в учебнике выше
Чтобы согласовать это,
multiverse
хранилище должно быть добавлено к подходящим источникам.Сделать это:
К которому я добавил следующие строки:
precise
в данном случае относится к моей версии Ubuntu " Precise Pangolin ".Теперь сохраните эти изменения и вернитесь в терминал:
и снова:
который будет (должен) сейчас работать.
Теперь включите эти модули Apache:
перезапустить Apache
Шаг 3: настройка Apache
Чтобы Apache работал с PHP-FPM, нам нужна следующая конфигурация:
Вы можете поместить его в глобальную конфигурацию Apache (чтобы он был включен для всех vhosts), например, в
/etc/apache2/conf.d/php5-fpm.conf
(этот файл не существует, поэтому вы должны его создать), или вы можете поместить его в каждый vhost, который должен использовать PHP-FPM.Я выбираю глобальный маршрут, поэтому:
вставьте в блок кода выше и сохраните, выйдите. Этот новый файл будет автоматически загружен конфигурацией по умолчанию Apache, которая загружает все файлы в
/etc/apache2/conf.d/
каталоге.перезапустите Apache:
Теперь создайте следующий файл PHP в корне документа
/var/www
:Добавлять:
сохранить и выйти.
Теперь мы вызываем этот файл в браузере (например
http://your-server-ip/info.php
)Под Server API вверху вы должны увидеть
FPM/FastCGI
.Успех!
Для получения дополнительной информации, например о том, как изменить PHP-FPM для использования сокета unix вместо TCP-порта по умолчанию или как настроить его для отдельных виртуальных хостов вместо всех, см. Учебное руководство по исходным кодам в верхней части.
источник
Require all granted
вещь требуется только начиная с Apache 2.4. Если я помещу это в файл конфигурации с Apache 2.2, это терпит неудачу.В Ubuntu 14.04 после выполнения шагов принятого ответа отредактируйте /etc/apache2/conf-available/php5-fpm.conf
Затем выполните
источник
В случае, если кто-то делает это в Ubuntu 16.04 и понизил версию с php 7 до php 5.6 (ондрей), вам нужно заменить несколько строк (основываясь на ответе JDawgg):
sudo apt-get установить libapache2-mod-fastcgi php5-fpm для:
sudo a2dismod php5 mpm_prefork для:
sudo nano /etc/apache2/conf-available/php5-fpm.conf для:
В процессе установки php5.6-fpm файл уже создан, поэтому создавать его не нужно. Однако я удалил весь существующий текст в этом файле, так как он был предназначен для mod_php5.
Я изменил путь с /var/run/php5-fpm.sock на /var/run/php/php5.6-fpm.sock, так как файл находился там.
sudo a2enconf php5-fpm для:
перезапуск службы sudo apache2 && перезапуск службы sudo php5-fpm:
Я надеюсь, что это помогает другим новичкам, как я :)
источник