PHP7.3のインストール (Amazon Linux 2)
amazon-linux-extrasを利用して、PHP7.3をインストールします。
1. amazon-linux-extrasによるインストール
(1) phpのインストール
まずインストールすることのできるソフトウェアおよびバージョンを確認します。
$ sudo amazon-linux-extras
0 ansible2 available \
[ =2.4.2 =2.4.6 =2.8 =stable ]
2 httpd_modules available [ =1.0 =stable ]
3 memcached1.5 available \
[ =1.5.1 =1.5.16 =1.5.17 ]
5 postgresql9.6 available \
[ =9.6.6 =9.6.8 =stable ]
6 postgresql10 available [ =10 =stable ]
9 R3.4 available [ =3.4.3 =stable ]
10 rust1 available \
[ =1.22.1 =1.26.0 =1.26.1 =1.27.2 =1.31.0 =1.38.0
=stable ]
11 vim available [ =8.0 =stable ]
15 php7.2 available \
[ =7.2.0 =7.2.4 =7.2.5 =7.2.8 =7.2.11 =7.2.13 =7.2.14
=7.2.16 =7.2.17 =7.2.19 =7.2.21 =7.2.22 =7.2.23
=7.2.24 =7.2.26 =stable ]
17 lamp-mariadb10.2-php7.2 available \
[ =10.2.10_7.2.0 =10.2.10_7.2.4 =10.2.10_7.2.5
=10.2.10_7.2.8 =10.2.10_7.2.11 =10.2.10_7.2.13
=10.2.10_7.2.14 =10.2.10_7.2.16 =10.2.10_7.2.17
=10.2.10_7.2.19 =10.2.10_7.2.22 =10.2.10_7.2.23
=10.2.10_7.2.24 =stable ]
18 libreoffice available \
[ =5.0.6.2_15 =5.3.6.1 =stable ]
19 gimp available [ =2.8.22 ]
20 docker=latest enabled \
[ =17.12.1 =18.03.1 =18.06.1 =18.09.9 =stable ]
21 mate-desktop1.x available \
[ =1.19.0 =1.20.0 =stable ]
22 GraphicsMagick1.3 available \
[ =1.3.29 =1.3.32 =1.3.34 =stable ]
23 tomcat8.5 available \
[ =8.5.31 =8.5.32 =8.5.38 =8.5.40 =8.5.42 =8.5.50
=stable ]
24 epel=latest enabled [ =7.11 =stable ]
25 testing available [ =1.0 =stable ]
26 ecs available [ =stable ]
27 corretto8 available \
[ =1.8.0_192 =1.8.0_202 =1.8.0_212 =1.8.0_222 =1.8.0_232
=1.8.0_242 =stable ]
28 firecracker available [ =0.11 =stable ]
29 golang1.11 available \
[ =1.11.3 =1.11.11 =1.11.13 =stable ]
30 squid4 available [ =4 =stable ]
31 php7.3 available \
[ =7.3.2 =7.3.3 =7.3.4 =7.3.6 =7.3.8 =7.3.9 =7.3.10
=7.3.11 =7.3.13 =stable ]
32 lustre2.10 available \
[ =2.10.5 =2.10.8 =stable ]
33 java-openjdk11 available [ =11 =stable ]
34 lynis available [ =stable ]
35 kernel-ng available [ =stable ]
36 BCC available [ =0.x =stable ]
37 mono available [ =5.x =stable ]
38 nginx1 available [ =stable ]
39 ruby2.6 available [ =2.6 =stable ]
40 mock available [ =stable ]
41 postgresql11 available [ =11 =stable ]
42 php7.4 available [ =stable ]
43 livepatch available [ =stable ]
44 python3.8 available [ =stable ]
45 haproxy2 available [ =stable ]
46 collectd available [ =stable ]
47 aws-nitro-enclaves-cli available [ =stable ]
48 R4 available [ =stable ]
49 kernel-5.4 available [ =stable ]
50 selinux-ng available [ =stable ]
51 php8.0 available [ =stable ]
52 tomcat9 available [ =stable ]
53 unbound1.13 available [ =stable ]
54 mariadb10.5 available [ =stable ]
55 kernel-5.10 available [ =stable ]
56 redis6 available [ =stable ]
57 ruby3.0 available [ =stable ]
58 postgresql12 available [ =stable ]
59 postgresql13 available [ =stable ]
60 mock2 available [ =stable ]
61 dnsmasq2.85 available [ =stable ]
ここで31の「php7.3」の最新バージョンの「7.3.13」をインストールします。
$ sudo amazon-linux-extras install php7.3=7.3.13
(2) php-develのインストール
$ sudo yum install --enablerepo=epel,remi,remi-php73 php-devel
2. 関連モジュールのインストール
(1) libmcryptのインストール
$ sudo yum install --enablerepo=epel libmcrypt
(2) libargon2のインストール
php-pdoをインストールする場合に必要です。
$ sudo yum install --enablerepo=epel libargon2
$ sudo yum install --enablerepo=epel libargon2-devel
3. PHPの設定
(1) PHPのモジュールのインストール
追加でPHPのモジュールをインストールします。
$ sudo yum install php-mysqlnd
$ sudo yum install php-mbstring
$ sudo yum install php-gd
$ sudo yum install php-xml
$ sudo yum install php-xmlrpc
$ sudo yum install php-opcache
$ sudo yum install php-pecl-zip
$ sudo yum install php-pear
$ sudo yum install php-pecl-mcrypt
(2) php.iniの編集
; Log errors to specified file. PHP's default behavior is to leave this value
; empty.
; http://php.net/error-log
; Example:
;error_log = php_errors.log
; Log errors to syslog.
;error_log = syslog
※php-fpmを利用している場合には、エラーログは「/var/log/php-fpm/www-error.log」に書き込まれます。(当初はこのファイルは存在しません。エラーが発生すると自動的に作成されます。)
「/etc/php-fpm.d/www.conf」にログファイル名が記載されています。
upload_max_filesize = 20M
date.timezone = "Asia/Tokyo"
session.gc_maxlifetime = 7200
mbstring.language = Japanese
mbstring.internal_encoding = UTF-8
mbstring.http_input = pass
mbstring.http_output = pass
(4) Apacheの再起動
Apacheを再起動して、PHPを有効にします。
$ sudo systemctl restart httpd.service
(5) php-fpmサービスの起動
$ sudo systemctl enable php-fpm.service
$ sudo systemctl restart php-fpm.service
4. HTMLページをPHPとして動作させる場合の設定
通常、HTMLページをPHPとして動作させる場合には、.htaccessに
<FilesMatch \.html$>
AddHandler application/x-httpd-php
</FilesMatch>
と記述すれば動作するはずですが、php-fpmを利用している場合には、設定が無効になる場合があります。
その場合には、以下のように設定します。
(1) .htacces
「/etc/httpd/conf.d/php.conf」において
# Redirect to local php-fpm (no mod_php in default configuration)
<IfModule !mod_php5.c>
<IfModule !mod_php7.c>
(略)
<FilesMatch \.(php|phar)$>
SetHandler "proxy:unix:/run/php-fpm/www.sock|fcgi://localhost"
</FilesMatch>
</IfModule>
</IfModule>
というような記述があります。
そこで、同様にfpmに処理を引き渡す必要があるので、以下のように.htaccessを記述します。
<FilesMatch \.html$>
SetHandler "proxy:unix:/run/php-fpm/www.sock|fcgi://localhost"
</FilesMatch>
(2) /etc/php-fpm.d/www.conf
デフォルトでは、PHPコードを実行可能なファイル拡張子が「.php」のみに制限されているため、「.html」も使用できるように設定します。
; Limits the extensions of the main script FPM will allow to parse. This can
; prevent configuration mistakes on the web server side. You should only limit
; FPM to .php extensions to prevent malicious users to use other extensions to
; exectute php code.
; Note: set an empty value to allow all extensions.
; Default Value: .php
;security.limit_extensions = .php .php3 .php4 .php5 .php7
の箇所の「security.limit_extensions」の項目を以下のように変更します。
security.limit_extensions = .php .html
php-fpmを再起動します。
# systemctl restart php-fpm.service
最終更新:2021年10月02日 10:04