W końcu znalazłem fajny samouczek mający na celu właśnie to zrobić. Przedstawię kroki, które podjąłem, ponieważ mam już zainstalowany stos LAMP, ale pełny samouczek można znaleźć tutaj .
Uwaga do nowego:
W samouczku zaczyna się od przejścia do użytkownika root za pomocą:
sudo su
W moim przypadku po prostu prefiksowałem te polecenia sudo
zamiast przełączania użytkowników, więc w ten sposób dokumentuję swoje kroki.
Zaczynać
Krok pierwszy: zainstaluj moduł Apache Worker MPM (moduły wieloprocesowe)
sudo apt-get install apache2-mpm-worker
Zastępuje to prefork, który zainstalowałem, który jest domyślny podczas instalacji Apache.
Krok 2: Zainstaluj PHP5 i niezbędne moduły
sudo apt-get install libapache2-mod-fastcgi php5-fpm php5
W tym momencie może pojawić się błąd podczas instalowania „libapache2-mod-fastcgi”:
Reading package lists... Done
Building dependency tree
Reading state information... Done
Package libapache2-mod-fastcgi is not available, but is referred to by another package.
This may mean that the package is missing, has been obsoleted, or is only available from another source
E: Package 'libapache2-mod-fastcgi' has no installation candidate
Ta część nie znajduje się w powyższym samouczku
Aby to pogodzić, multiverse
repozytorium musi zostać dodane do źródeł apt.
Aby to zrobić:
sudo nano /etc/apt/sources.list
Do którego dołączyłem następujące wiersze:
deb http://archive.ubuntu.com/ubuntu precise multiverse
deb http://archive.ubuntu.com/ubuntu precise-updates multiverse
deb http://security.ubuntu.com/ubuntu precise-security multiverse
precise
w tym przypadku odnosi się do mojej wersji Ubuntu „ Precise Pangolin ”.
Teraz zapisz te zmiany i wróć do terminalu:
sudo apt-get update
i jeszcze raz:
sudo apt-get install libapache2-mod-fastcgi php5-fpm php5
które będą (powinny) teraz działać.
Teraz włącz te moduły Apache:
sudo a2enmod actions fastcgi alias
uruchom ponownie apache
sudo service apache2 restart
Krok 3: Konfiguracja Apache
Aby Apache działał z PHP-FPM, potrzebujemy następującej konfiguracji:
<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 -host 127.0.0.1:9000 -pass-header Authorization
<Directory /usr/lib/cgi-bin>
Require all granted
</Directory>
#directory statement mult be on multiple lines
</IfModule>
Uwaga:
Jeśli używasz starszej wersji Apache (2.3.x lub starszej), pomiń linię
<Directory /usr/lib/cgi-bin> Require all granted </Directory>
Możesz sprawdzić zainstalowaną wersję za pomocą polecenia
apache2 -version
Możesz umieścić go w globalnej konfiguracji Apache (więc jest włączony dla wszystkich vhostów), na przykład w /etc/apache2/conf.d/php5-fpm.conf
(ten plik nie istnieje, więc musisz go utworzyć), lub możesz umieścić go w każdym vhostie, który powinien używać PHP-FPM.
Wybieram globalną trasę, więc:
sudo nano /etc/apache2/conf.d/php5-fpm.conf
wklej powyższy blok kodu i zapisz, wyjdź. Ten nowy plik zostanie automatycznie załadowany przez domyślną konfigurację Apache, która ładuje wszystkie pliki w /etc/apache2/conf.d/
katalogu.
uruchom ponownie Apache:
sudo service apache2 restart
Teraz utwórz następujący plik PHP w katalogu głównym dokumentu /var/www
:
sudo nano /var/www/info.php
Dodaj:
<?php phpinfo();
wyjście bezpieczeństwa.
Teraz nazywamy ten plik w przeglądarce (np. http://your-server-ip/info.php
)
W górnej części interfejsu API serwera powinieneś zobaczyć FPM/FastCGI
.
Sukces!
Aby uzyskać więcej informacji, takich jak sposób zmiany PHP-FPM, aby używał gniazda unix zamiast domyślnego portu TCP lub jak skonfigurować to dla indywidualnych hostów wirtualnych zamiast wszystkich, zobacz samouczek źródłowy połączony u góry.