PHP 7.2 FPM auf Ubuntu Webserver installieren und einrichten
Sourcelist erweitern.
sudo apt-get update sudo apt-get upgrade sudo apt-get install python-software-properties sudo add-apt-repository ppa:ondrej/php sudo apt-get update
Alles was mit php7.2 im Paketnamen zu tun hat auflisten um daraus die gewünschten php7.2 Pakete zu installieren.
sudo apt-cache pkgnames | grep php7.2
Alles was mit php7.2 im Paketnamen zu tun hat installieren (ggf. anpassen).
sudo apt-get install php7.2-bz2 php7.2-common php7.2-cgi php7.2-cli php7.2-dba php7.2-dev libphp7.2-embed php7.2-bcmath php7.2-fpm php7.2-gmp php7.2-mysql php7.2-tidy php7.2 php7.2-sqlite3 php7.2-json php7.2-opcache php7.2-sybase php7.2-curl php7.2-ldap php7.2-phpdbg php7.2-imap php7.2-xml php7.2-xsl php7.2-intl php7.2-zip php7.2-odbc php7.2-mbstring php7.2-readline php7.2-gd php7.2-interbase php7.2-snmp php7.2-xmlrpc php7.2-soap php7.2-pspell php7.2-pgsql php7.2-enchant php7.2-recode libapache2-mod-php7.2
APCu und OPcache installieren und activieren.
sudo apt-get install php7.2-opcache php-apcu sudo phpenmod apcu opcache
FPM/FastCGI installieren und die nötigen Module aktivieren.
sudo apt-get install libapache2-mod-fastcgi sudo a2enmod actions fastcgi alias
Restart PHP und Apache2.
sudo systemctl restart php7.2-fpm apache2
Eigene FPM Konfiguration erstellen.
sudo nano /etc/php/7.2/fpm/pool.d/myconfig.conf
Alle Demodaten "myconfig" und "eigenerUser" für die Konfiguration anpassen!
[myconfig] user = eigenerUser group = eigenerUser listen = /run/php/php7.2-fpm-myconfig.sock listen.owner = www-data listen.group = www-data pm = dynamic pm.max_children = 5 pm.start_servers = 2 pm.min_spare_servers = 1 pm.max_spare_servers = 3
PHP FPM neu starten.
sudo service php7.2-fpm restart
Apache2 zur Nutzung von PHP7.2-FPM einrichten.
sudo nano /etc/apache2/conf-available/php7.2-fpm-myconfig.conf
Alle Demodaten "myconfig" für die Konfiguration anpassen!
# Redirect to local php-fpm if mod_php is not available <IfModule !mod_php7.c> <IfModule proxy_fcgi_module> # Enable http authorization headers <IfModule setenvif_module> SetEnvIfNoCase ^Authorization$ "(.+)" HTTP_AUTHORIZATION=$1 </IfModule> <FilesMatch ".+\.ph(ar|p|tml)$"> SetHandler "proxy:unix:/run/php/php7.2-fpm-myconfig.sock|fcgi://localhost" </FilesMatch> # Deny access to raw php sources by default # To re-enable it's recommended to enable access to the files # only in specific virtual host or directory <FilesMatch ".+\.phps$"> Require all denied </FilesMatch> # Deny access to files without filename (e.g. '.php') <FilesMatch "^\.ph(ar|p|ps|tml)$"> Require all denied </FilesMatch> </IfModule> </IfModule>
Module aktiveren, unnötige Module deaktivieren und Service neu starten.
sudo a2dismod php7.2 sudo a2enmod proxy_fcgi setenvif sudo a2enconf php7.2-fpm-myconfig sudo systemctl restart php7.2-fpm apache2
Per Apache (sites-enabled) oder .htacces kann nun die PHP Version und Konfiguration einer Webseite zugewiesen werden.
<FilesMatch ".+\.ph(p[3457]?|t|tml)$"> SetHandler "proxy:unix:/run/php/php7.2-fpm-myconfig.sock|fcgi://localhost" </FilesMatch>