Как настроить Apache для запуска PHP как FastCGI на Ubuntu 12.04 через терминал?

Я относительно новичок в мире управления / администрирования командной строки unix командной строки.

Многие хосты с параметрами администрирования панели управления позволяют вам изменять, как PHP запускается с простой опцией.

Наиболее распространенными параметрами являются:

модуль apache. Приложение CGI. Приложение FastCGI

. Мой вопрос - просто, как вы это измените с помощью командной строки? Я знаю, что для apache существует множество конфигурационных файлов.

Самое близкое, что я нашел, это вопрос, однако структура каталогов, похоже, не соответствует моей ОС (Ubuntu 12.04).

[d10 ] Я совершенно смущен тем, что, похоже, нет четкого руководства, которое я могу найти, что детализирует этот процесс для чего-то, что кажется настолько распространенным. Простите меня, если это существует ... если да, пожалуйста, укажите мне в правильном направлении.

1
задан 13 April 2017 в 15:14

3 ответа

Спасибо за предыдущие ответы, они доставили мне большую часть пути, но чтобы получить работу, мне пришлось объединить инструкции из нескольких мест, поэтому я подумал, что напишу полный набор команд.

FYI Я запускаю 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 вместо рабочего, см. http://blog.starcklin.com/2013/08/install-mod-fastcgi-and-php5-fpm-on-ubuntu/ . В моем примере показан рабочий, но просто замените слово worker событием, если вы предпочтете его использовать.

sudo apt-get install apache2-mpm-worker

sudo apt-get install libapache2-mod-fastcgi php5-fpm

Теперь включите моды, которые вам нужны, и отключите те, которые у вас нет.

[ f2]

Создайте файл php5.fcgi и дайте разрешение веб-серверу использовать его.

sudo touch /usr/lib/cgi-bin/php5.fcgi

sudo chown -R www-data:www-data /usr/lib/cgi-bin

Создайте глобальную конфигурацию для php5-fpm

sudo nano /etc/apache2/conf-available/php5-fpm.conf

вставьте (мы будем использовать сокет вместо IP-адреса)

<IfModule mod_fastcgi.c> 
   AddHandler php5.fcgi .php 
   Action php5.fcgi /php5.fcgi 
   Alias /php5.fcgi /usr/lib/cgi-bin/php5.fcgi 
   FastCgiExternalServer /usr/lib/cgi-bin/php5.fcgi -socket /var/run/php5-fpm.sock -pass-header Authorization -idle-timeout 3600 
   <Directory /usr/lib/cgi-bin>
       Require all granted
   </Directory> 
</IfModule>

Включить php5-fpm conf

sudo a2enconf php5-fpm

Перезапустить apache и fpm

В соответствии с другими инструкциями вставьте следующий файл в новый просматриваемый php-файл на вашем веб-сервере.

<?php phpinfo();

Откройте файл, который вы только что отредактировали в веб-браузере. Если вы видите «FPM / FastCGI», рядом с Server API, теперь вы используете PHP с FastCGI!

45
ответ дан 24 May 2018 в 15:10
  • 1
    Это спасатель. Инструкции для старшего apache не работали на Ubuntu 14.04 и apache 2.4; но это работало как шарм. +100 !! – Bhavin Doshi 27 September 2014 в 14:40
  • 2
    @ bkd.online Не мог бы сказать это лучше. @ JDawgg Ницца :) – Gadgetroid 5 November 2014 в 04:44
  • 3
    Я точно это сделал, но я получил сообщение об ошибке «У вас нет прав на доступ к /php5.fcgi/index» ... И в журнале ошибок «клиент отказался от конфигурации сервера: / usr / lib / cgi-bin /php5.fcgi '... Любые идеи? – Just Lucky Really 10 June 2015 в 23:14
  • 4
    Выяснил это ... По какой-то причине я использовал старый вариант «запретить, разрешить» конфигурацию для root ... Все исправлено сейчас: D – Just Lucky Really 10 June 2015 в 23:56
  • 5
    После установки пакетов и конфигурации я получил следующую ошибку: apache2: ошибка синтаксиса в строке 216 файла /etc/apache2/apache2.conf: ошибка синтаксиса в строке 9 файла /etc/apache2/conf-enabled/php5-fpm.conf: Ожидаемый & lt; / Directory & gt; но видел & lt; / IfModule & gt; " – Farooq 23 April 2016 в 07:53

В Ubuntu 14.04 после выполнения принятого ответа отредактируйте /etc/apache2/conf-available/php5-fpm.conf

<IfModule mod_fastcgi.c>
    AddHandler php5-fcgi .php
    Action php5-fcgi /php5-fcgi
    Alias /php5-fcgi /usr/lib/cgi-bin/php5-fcgi
    FastCgiExternalServer /usr/lib/cgi-bin/php5-fcgi -socket /var/run/php5-fpm.sock -pass-header Authorization -idle-timeout 3600
    <Directory /usr/lib/cgi-bin>
        Require all granted
    </Directory>
</IfModule>

Затем выполните

#sudo a2enconf php5-fpm
#sudo apache2 restart
1
ответ дан 24 May 2018 в 15:10

В случае, если кто-то делает это на Ubuntu 16.04 и понижен с php 7 до php 5.6 (Ondrej), вам нужно заменить некоторые строки (на основе ответа JDawgg):

sudo apt-get установите libapache2-mod-fastcgi php5-fpm в:

sudo apt-get install libapache2-mod-fastcgi php5.6-fpm 

sudo a2dismod php5 mpm_prefork:

sudo a2dismod php5.6 mpm_prefork

sudo nano / etc / apache2 / conf-available / php5- fpm.conf:

sudo vim /etc/apache2/conf-available/php5.6-fpm.conf

Процесс установки php5.6-fpm уже создал файл, поэтому нет необходимости его создавать. Тем не менее, я удалил весь существующий текст в этом файле, поскольку он предназначен для mod_php5.

<IfModule mod_fastcgi.c> 
   AddHandler php5.fcgi .php 
   Action php5.fcgi /php5.fcgi 
   Alias /php5.fcgi /usr/lib/cgi-bin/php5.fcgi 
   FastCgiExternalServer /usr/lib/cgi-bin/php5.fcgi -socket /var/run/php/php5.6-fpm.sock -pass-header Authorization -idle-timeout 3600 
   <Directory /usr/lib/cgi-bin>
       Require all granted
   </Directory> 
</IfModule>

Я изменил путь из /var/run/php5-fpm.sock в / var / run / php / php5 .6-fpm.sock, поскольку файл был там.

sudo a2enconf php5-fpm to:

sudo a2enconf php5.6-fpm

sudo service apache2 restart & amp; & amp; & amp; & amp; & amp; & amp; & amp; sudo service php5-fpm restart to:

sudo service apache2 restart && sudo service php5.6-fpm restart

Надеюсь, это поможет другим новичкам вроде меня:)

0
ответ дан 24 May 2018 в 15:10

Другие вопросы по тегам:

Похожие вопросы: