sunnuntai 26. joulukuuta 2021

PHP FPM-moduulin asennus Amazon Linux 1:ssä

FPM-moduuli antaa mahdollisuuden ajaa samalla palvelimella rinnakkain useita PHP:n versioita. Jos palvelimella on aiemmin käytetty mod_php:ta, niin alla olevilla ohjeilla vaihdat mod_php:n FPM:ään. Komennot on testatty PHP versiossa 7.3 ja Amazon Linux 1:llä.

1. Asenna FPM moduuli

sudo yum install php73-fpm

2. Avaa tiedosto /etc/httpd/conf.modules.d/15-php.conf editoriin

sudo vim /etc/httpd/conf.modules.d/15-php.conf

Jos tiedostossa on tekstiä, niin poista kaikki: mod_php-moduulia ei enää käytetä.

3. Avaa tiedosto /etc/httpd/conf.modules.d/00-proxy.conf editoriin

sudo vim /etc/httpd/conf.modules.d/00-proxy.conf

Varmista, että seuraavien rivien alussa ei ole risuaitamerkkiä

LoadModule proxy_module modules/mod_proxy.so
LoadModule proxy_fcgi_module modules/mod_proxy_fcgi.so

4. Avaa tiedosto /etc/httpd/conf.d/php.conf editoriin

sudo vim /etc/httpd/conf.d/php.conf

Poista tiedoston vanha sisältö ja kopioi tiedoston sisällöksi teksti

AddType text/html .php
DirectoryIndex index.php index.html
SetEnvIfNoCase ^Authorization$ "(.+)" HTTP_AUTHORIZATION=$1
<FilesMatch \.php$>
    SetHandler "proxy:unix:/var/run/php-fpm/www.sock|fcgi://localhost/"
</FilesMatch>

5. Käynnistä PHP-FPM komennolla

sudo service php-fpm start

6. Käynnistä Apache uudelleen

sudo service httpd restart

Luo phpinfo-sivu ja tarkista, että sivulta Server API on FPM/FastCGI. Jos kaikki toimii OK, niin jatka seuraavaan kohtaan.

7. Aseta php-fpm käynnistymään bootissa

sudo chkconfig php-fpm on

PHP-päivitys EC2:ssa (Amazon Linux 1)

PHP:n päivittäminen versioon 7.3 Amazon Linux 1:ssä vaatii, että poistat ensin edellisen PHP-version ja asennat sitten uuden version.

1. Tarkista ensimmäiseksi, mitkä PHP-moduulit on asennettu palvelimelle

sudo yum list installed | grep php

Komento tulostaa listauksen, esimerkiksi:

php71.x86_64                         7.1.33-1.43.amzn1             @amzn-updates
php71-cli.x86_64                     7.1.33-1.43.amzn1             @amzn-updates
php71-common.x86_64                  7.1.33-1.43.amzn1             @amzn-updates
php71-gd.x86_64                      7.1.33-1.43.amzn1             @amzn-updates
php71-json.x86_64                    7.1.33-1.43.amzn1             @amzn-updates
php71-mbstring.x86_64                7.1.33-1.43.amzn1             @amzn-updates
php71-mysqlnd.x86_64                 7.1.33-1.43.amzn1             @amzn-updates
php71-opcache.x86_64                 7.1.33-1.43.amzn1             @amzn-updates
php71-pdo.x86_64                     7.1.33-1.43.amzn1             @amzn-updates
php71-pecl-apcu.x86_64               5.1.8-2.5.amzn1               @amzn-main   
php71-process.x86_64                 7.1.33-1.43.amzn1             @amzn-updates
php71-soap.x86_64                    7.1.33-1.43.amzn1             @amzn-updates
php71-xml.x86_64                     7.1.33-1.43.amzn1             @amzn-updates

2. Ota listaus talteen ja poista kaikki asennetut PHP-paketit

sudo yum remove 'php71*'

3. Asenna PHP 7.3 Amazonin omasta pakettivalikoimasta

sudo yum install php73 php73-gd php73-mbstring php73-mysqlnd php73-pdo php73-opcache php73-soap

4. Asenna APCu pecl:n avulla

sudo yum search php73-devel sudo yum install php7-pear sudo pecl7 install apcu

5. Luo tiedosto /etc/php-7.3.d/20-apc.ini

sudo vim /etc/php-7.3.d/20-apcu.ini

ja liitä tiedostoon koodi

extension=apcu.so
apc.enabled=1
apc.enable_cli=1
apc.ttl=60

6. Käynnistä Apache uudelleen

sudo service httpd restart

Luo phpinfo-sivu jonnekkin webbihakemistoon ja tarkista tulosteesta, että apcu on käytössä.