AWS EC2(Amazon Linux)にPHP7.4をインストール
今年からAWSを使う機会が増えてきました。
で、近々PHP 7.4がインストールされたWebサーバーを用意する必要がありそうなので、
事前に検証した内容をまとめておきたいと思います。
2021年2月10日 追記
@yutaro1985様より、EC2へのPHP7.4は以下のコマンドでインストール出来るとご指摘いただきましたので、追記させていただきます。
sudo amazon-linux-extras install php7.4
目標
ブラウザでphpinfo()
の内容を表示して、PHPのバージョンが7.4であることを確認する
1.インスタンスの作成
利用するインスタンスのタイプは「Amazon Linux 2 AMI(HVM), SSD Volume Type」
検証なのでインスタンプのタイプは「t2.nano」にしました。
基本的に設定値はデフォルトにして、セキュリティーグループのインバウンドだけ、
SSHとHTTP(HTTPS)での接続を許可させました。(デフォルトはSSHのみ許可)
2.PHPのインストール
PHPをインストールするためにはSSHでEC2に接続する必要があります。
接続する際はsudo
コマンドが使えるアカウントでログインします。
※こちらの記事が参考になると思います。
ログインして、php -v
を実行するとコマンドがない旨のメッセージが表示されます。
Amazon Linuxはインスタンスを作成した段階では、
PHP
が入っていないようです。
$php -v
-bash: php: command not found
Aamazon Linuxは最初の段階では、パッケージが古い可能性があり、
ログイン時のメッセージでも`sudo yum update`でアップデートするように促されるので、
おとなしく従います。
__| __|_ )
_| ( / Amazon Linux 2 AMI
___|\___|___|
https://aws.amazon.com/amazon-linux-2/
8 package(s) needed for security, out of 17 available
Run "sudo yum update" to apply all updates.
$ sudo yum update -y
PHP
はyum
でインストールするんですが、
sudo yum install php
を素直に実行すると、バージョンが5.4のPHP
がインストールされていまいます。
これは、Amazon Linuxが持っているリポジトリに、バージョン5.4のPHP
しか入っていないためです。
sudo yum install php
Loaded plugins: extras_suggestions, langpacks, priorities, update-motd
amzn2-core | 2.4 kB 00:00:00
Resolving Dependencies
--> Running transaction check
---> Package php.x86_64 0:5.4.16-46.amzn2.0.2 will be installed
--> Processing Dependency: php-cli(x86-64) = 5.4.16-46.amzn2.0.2 for package: php-5.4.16-46.amzn2.0.2.x86_64
--> Processing Dependency: php-common(x86-64) = 5.4.16-46.amzn2.0.2 for package: php-5.4.16-46.amzn2.0.2.x86_64
--> Processing Dependency: httpd-mmn = 20120211x8664 for package: php-5.4.16-46.amzn2.0.2.x86_64
--> Processing Dependency: httpd for package: php-5.4.16-46.amzn2.0.2.x86_64
--> Running transaction check
---> Package httpd.x86_64 0:2.4.41-1.amzn2.0.1 will be installed
--> Processing Dependency: httpd-tools = 2.4.41-1.amzn2.0.1 for package: httpd-2.4.41-1.amzn2.0.1.x86_64
--> Processing Dependency: httpd-filesystem = 2.4.41-1.amzn2.0.1 for package: httpd-2.4.41-1.amzn2.0.1.x86_64
--> Processing Dependency: system-logos-httpd for package: httpd-2.4.41-1.amzn2.0.1.x86_64
--> Processing Dependency: mod_http2 for package: httpd-2.4.41-1.amzn2.0.1.x86_64
--> Processing Dependency: httpd-filesystem for package: httpd-2.4.41-1.amzn2.0.1.x86_64
--> Processing Dependency: /etc/mime.types for package: httpd-2.4.41-1.amzn2.0.1.x86_64
--> Processing Dependency: libaprutil-1.so.0()(64bit) for package: httpd-2.4.41-1.amzn2.0.1.x86_64
--> Processing Dependency: libapr-1.so.0()(64bit) for package: httpd-2.4.41-1.amzn2.0.1.x86_64
---> Package php-cli.x86_64 0:5.4.16-46.amzn2.0.2 will be installed
---> Package php-common.x86_64 0:5.4.16-46.amzn2.0.2 will be installed
--> Processing Dependency: libzip.so.2()(64bit) for package: php-common-5.4.16-46.amzn2.0.2.x86_64
--> Running transaction check
---> Package apr.x86_64 0:1.6.3-5.amzn2.0.2 will be installed
---> Package apr-util.x86_64 0:1.6.1-5.amzn2.0.2 will be installed
--> Processing Dependency: apr-util-bdb(x86-64) = 1.6.1-5.amzn2.0.2 for package: apr-util-1.6.1-5.amzn2.0.2.x86_64
---> Package generic-logos-httpd.noarch 0:18.0.0-4.amzn2 will be installed
---> Package httpd-filesystem.noarch 0:2.4.41-1.amzn2.0.1 will be installed
---> Package httpd-tools.x86_64 0:2.4.41-1.amzn2.0.1 will be installed
---> Package libzip010-compat.x86_64 0:0.10.1-9.amzn2.0.5 will be installed
---> Package mailcap.noarch 0:2.1.41-2.amzn2 will be installed
---> Package mod_http2.x86_64 0:1.15.3-2.amzn2 will be installed
--> Running transaction check
---> Package apr-util-bdb.x86_64 0:1.6.1-5.amzn2.0.2 will be installed
--> Finished Dependency Resolution
Dependencies Resolved
=========================================================================================================================================================================================
Package Arch Version Repository Size
=========================================================================================================================================================================================
Installing:
php x86_64 5.4.16-46.amzn2.0.2 amzn2-core 1.4 M
Installing for dependencies:
apr x86_64 1.6.3-5.amzn2.0.2 amzn2-core 118 k
apr-util x86_64 1.6.1-5.amzn2.0.2 amzn2-core 99 k
apr-util-bdb x86_64 1.6.1-5.amzn2.0.2 amzn2-core 19 k
generic-logos-httpd noarch 18.0.0-4.amzn2 amzn2-core 19 k
httpd x86_64 2.4.41-1.amzn2.0.1 amzn2-core 1.3 M
httpd-filesystem noarch 2.4.41-1.amzn2.0.1 amzn2-core 23 k
httpd-tools x86_64 2.4.41-1.amzn2.0.1 amzn2-core 87 k
libzip010-compat x86_64 0.10.1-9.amzn2.0.5 amzn2-core 30 k
mailcap noarch 2.1.41-2.amzn2 amzn2-core 31 k
mod_http2 x86_64 1.15.3-2.amzn2 amzn2-core 146 k
php-cli x86_64 5.4.16-46.amzn2.0.2 amzn2-core 2.8 M
php-common x86_64 5.4.16-46.amzn2.0.2 amzn2-core 563 k
Transaction Summary
=========================================================================================================================================================================================
Install 1 Package (+12 Dependent packages)
Total download size: 6.6 M
Installed size: 22 M
Is this ok [y/d/N]:
そのため、yum
のリポジトリにPHP7.4が入っているremiリポジトリを使えるようにする必要があります。
※remiリポジトリやepel-releaseパッケージに関しては、こちらの記事が参考になります。
$sudo amazon-linux-extras install epel #Amazon Linux でepel-releaseパッケージをインストール出来るようにする
$sudo yum install epel-release #epel-releaseパッケージをインストール
$sudo rpm -Uvh http://rpms.famillecollet.com/enterprise/remi-release-7.rpm #remiリポジトリを使えるようにする
あとはPHP
をインストールするだけです。
$ sudo yum install -y php74 php74-php php74-php-fpm
$ sudo ln -s /usr/bin/php74 /usr/bin/php
$ php -v
PHP 7.4.1 (cli) (built: Dec 17 2019 16:35:58) ( NTS )
Copyright (c) The PHP Group
Zend Engine v3.4.0, Copyright (c) Zend Technologies
3.確認
今回の目的は、ブラウザからPHPのバージョンを確認することなので、
phpinfo()
を実行するためのPHPファイルを配置していきます。
Webサーバーはapahce
で、ドキュメントルートは/var/www/html
となります。
$ httpd -v
Server version: Apache/2.4.41 ()
Server built: Oct 22 2019 22:59:04
$ cat /etc/httpd/conf/httpd.conf |grep ^DocumentRoot
DocumentRoot "/var/www/html"
$sudo service httpd restart # apacheの再起動
$cat /var/www/html/index.php
<?php
phpinfo();
あとは、EC2サーバーの「パブリック DNS (IPv4)」を、
ブラウザのアドレスに入力して、phpinfo()
の結果が表示されることを確認。
まとめ
今回はPHP7.4のインストールから、確認まで行なってみましたが、
AWSは構築に失敗しても、直ぐに作りなおせるので気軽に試してみることが出来るのがとてもいいです。
手順に不備など有りました、ご指摘いただけると助かります。
Author And Source
この問題について(AWS EC2(Amazon Linux)にPHP7.4をインストール), 我々は、より多くの情報をここで見つけました https://qiita.com/nagahama/items/2fdc820791bee5d564ca著者帰属:元の著者の情報は、元のURLに含まれています。著作権は原作者に属する。
Content is automatically searched and collected through network algorithms . If there is a violation . Please contact us . We will adjust (correct author information ,or delete content ) as soon as possible .