我想我可以爲孔後整個過程中,我採取了與池配置FPM,如@ChristianM提到的,因爲我還沒有找到如何做一個完整的解釋。
的這第一部分主要是一個AskUbuntu後的副本: https://askubuntu.com/questions/378734/how-to-configure-apache-to-run-php-as-fastcgi-on-ubuntu-12-04-via-terminal/527227#comment905702_527227
最後一部分是如何配置池,並獲得虛擬主機使用培訓相關池設置
這裏有雲:
(在http://www.vps.net/blog/2013/04/08/apache-mpms-prefork-worker-and-event/ prefork的/ wroker和事件的說明)安裝Apache MPM工人:
sudo apt-get install apache2-mpm-worker
安裝的FastCGI和PHP5-FPM:
sudo apt-get install libapache2-mod-fastcgi php5-fpm
現在使你需要器官功能障礙綜合徵,並禁用那些您不:
sudo a2dismod php5 mpm_prefork
sudo a2enmod actions fastcgi alias mpm_worker
創建php5.fcgi文件,並給Web服務器使用許可它。
sudo touch /usr/lib/cgi-bin/php5.fcgi
sudo chown -R www-data:www-data /usr/lib/cgi-bin
在下面(我們將使用一個插座,而不是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>
注
sudo nano /etc/apache2/conf-available/php5-fpm.conf
糊創建PHP5-FPM全局設置:確保所有的configs遵循相同的新要求'全部批准'/'要求所有被拒絕'語法...否則在重新啓動後你會感到痛苦...
啓用的php5-FPM CONF
sudo a2enconf php5-fpm
重啓Apache和FPM
sudo service apache2 restart && sudo service php5-fpm restart
這種設置實質上創建爲PHP全局FastCGI配置,它使用的文件/ etc/PHP5/FPM/php.ini文件。
如果您有多個虛擬主機,這將需要不同的PHP配置,繼續進行下面
首先的例子中,/etc/php5/fpm/pool.d目錄中,你會發現默認的WWW .conf文件。複製此,將其命名爲一些培訓相關:
sudo cp /etc/php5/fpm/pool.d/www.conf /etc/php5/fpm/pool.d/domain2.conf
編輯這個文件,更改池名稱:
[...]
[domain2]
[...]
,並更改監聽套接字的名字的東西培訓相關:
[...]
listen = /var/run/php5-fpm-domain2.sock
[...]
然後複製/usr/lib/cgi-bin/php5.fcgi文件,並將其命名爲相關文件:
cp /usr/lib/cgi-bin/php5.fcgi /usr/lib/cgi-bin/php5-domain2.fcgi
現在您已準備好將mod_fastcgi模塊添加到domain2 vhost。這幾乎與上面所描述的,但要注意的「別名」,「FastCgiServer」和「-socket」
<VirtualHost *:80>
ServerName domain2.com
[...]
<IfModule mod_fastcgi.c>
AddHandler php5.fcgi .php
Action php5.fcgi /php5.fcgi
Alias /php5.fcgi /usr/lib/cgi-bin/php5-domain2.fcgi
FastCgiExternalServer /usr/lib/cgi-bin/php5-domain2.fcgi -socket /var/run/php5-fpm-domain2.sock -pass-header Authorization -idle-timeout 3600
<Directory /usr/lib/cgi-bin>
Require all granted
</Directory>
</IfModule>
[...]
</VirtualHost>
重新啓動Apache和FPM
sudo service apache2 restart && sudo service php5-fpm restart
改變我們測試的變化。
在新的/etc/php5/fpm/pool.d/domain2.conf文件,添加一個PHP值的變化(我選擇了session.name值):
[...]
php_admin_value[session.name] = 'DOMAIN2'
[...]
現在測試重新啓動FPM前配置:
sudo php5-fpm -t
它會告訴你,如果配置失敗,但更重要的是會告訴你,如果你的配置是好的。然後你就可以繼續前進,重新啓動FPM:
sudo service php5-fpm restart
最後,如果你想成爲超級確保PHP值已定,您的網站中創建info.php的,並且只需添加:
<?php
phpinfo();
?>
據我的經驗:您可以爲每個虛擬主機配置虛擬主機配置(在我們的服務器上稱爲「vhost.conf」),儘管我們有1個php.ini用於整個服務器。 – tvgemert