Myślałem, abym jak-dobrze pisać cały proces wziąłem skonfigurować FPM z basenami, jak wspomniano @ChristianM, bo nie zostały jeszcze znaleźć pełne wyjaśnienie, w jaki sposób to zrobić.
Pierwsza część to głównie kopia postu AskUbuntu: https://askubuntu.com/questions/378734/how-to-configure-apache-to-run-php-as-fastcgi-on-ubuntu-12-04-via-terminal/527227#comment905702_527227
Ostatnia część jest jak skonfigurować baseny i uzyskać vhosta użyć ustawień basen dowiemy się z
o to idzie :
Instalacja Apache MPM pracownika (Objaśnienie prefork/wroker i imprezy w http://www.vps.net/blog/2013/04/08/apache-mpms-prefork-worker-and-event/):
sudo apt-get install apache2-mpm-worker
zainstalować FastCGI i PHP5-FPM:
sudo apt-get install libapache2-mod-fastcgi php5-fpm
teraz włączyć modów trzeba, i wyłączyć te, które nie:
sudo a2dismod php5 mpm_prefork
sudo a2enmod actions fastcgi alias mpm_worker
Utwórz plik php5.fcgi i dać tego serwera pozwolenie na używanie to.
sudo touch /usr/lib/cgi-bin/php5.fcgi
sudo chown -R www-data:www-data /usr/lib/cgi-bin
Tworzenie globalnej config dla PHP5-FPM
sudo nano /etc/apache2/conf-available/php5-fpm.conf
pasta w następującym (użyjemy gniazdo zamiast adresu 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>
Uwaga: Upewnij się wszystkie pliki konfiguracyjne zastosuj tę samą nową składnię "Wymagaj wszystkich przyznanych"/"Wymagaj odmowy" ... W przeciwnym razie poczujesz ból po ponownym uruchomieniu ...
Włącz php5-fpm conf
sudo a2enconf php5-fpm
restart apache i FPM
sudo service apache2 restart && sudo service php5-fpm restart
Taka konfiguracja zasadniczo tworzy globalną konfigurację fastcgi dla PHP, który używa pliku/etc/php5/FPM/plik php.ini.
Jeśli masz wiele vhosty, że będą potrzebować różnych konfiguracji PHP, nadal z poniższym przykładzie
pierwsze, w /etc/php5/fpm/pool.d dir, znajdziesz domyślny www plik .conf. Skopiuj ten, nazywając to coś, dowiemy się z:
sudo cp /etc/php5/fpm/pool.d/www.conf /etc/php5/fpm/pool.d/domain2.conf
Edytuj plik, zmieniając nazwę basenu:
[...]
[domain2]
[...]
I zmień nazwę gniazda posłuchać czegoś dowiemy się z:
[...]
listen = /var/run/php5-fpm-domain2.sock
[...]
Następnie skopiuj plik /usr/lib/cgi-bin/php5.fcgi, ponownie określając go jako coś odpowiedniego:
cp /usr/lib/cgi-bin/php5.fcgi /usr/lib/cgi-bin/php5-domain2.fcgi
Teraz jesteś gotowy, aby dodać moduł mod_fastcgi do domeny vhost. To prawie taki sam, jak ten opisany powyżej, ale zauważyć zmiany w 'Alias', 'FastCgiServer' i '-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>
Restart apache i FPM
sudo service apache2 restart && sudo service php5-fpm restart
teraz przetestować zmiany.
W nowym pliku /etc/php5/fpm/pool.d/domain2.conf, dodać zmianę wartości php (wybrałem wartość session.name):
[...]
php_admin_value[session.name] = 'DOMAIN2'
[...]
teraz przetestować konfiguracja przed ponownym FPM:
sudo php5-fpm -t
poinformuje Cię, jeśli konfiguracja nie powiedzie się, ale co ważniejsze, powie ci, czy konfiguracja jest w porządku. Wtedy można iść do przodu i ponownie FPM:
sudo service php5-fpm restart
I wreszcie, jeśli chcesz być bardzo pewny wartość php został ustawiony, tworzyć info.php w witrynie, a tylko dodać:
<?php
phpinfo();
?>
Jeśli chodzi o moje doświadczenie: możesz zdefiniować konfiguracje wirtualnego hosta na vhost (na serwerze o nazwie 'vhost.conf'), chociaż mamy 1 php.ini dla całego serwera. – tvgemert