AWSのEC2 Amazon Linux 2で環境をつくるときにPHPのバージョン8.0はすんなり作成可能ですが、バージョン8.1をいれるとすんなり動きません。
composerでlaravelの9をいれるとphp8.0では動作しないのでphp8.1が必要になり変更しようとしてとても苦労したのでphp8.1の変更部分のみやり方を残しておきます。
■MySQL、Apache、をインストール
1 |
sudo yum -y install mysql git httpd curl |
■Apacheを起動
1 |
sudo systemctl start httpd |
■Extras Library からEPELをインストール
1 |
sudo amazon-linux-extras install epel |
■Remi Repositoryを追加
1 |
sudo yum install http://rpms.remirepo.net/enterprise/remi-release-7.rpm |
■yumパッケージからphp8.1関連を探す
1 |
sudo yum search php81 |
■必要なphp8.1関連をインストールする
1 |
sudo yum install php81 php81-php-mbstring php81-php-mysqlnd php81-php-gd php81-php-xml php81-php-fpm |
■phpが正しくインストールされたか確認と8.1のコマンド変更
1 |
php -v |
インストールしたはずなのにphpのコマンドがありません。
phpコマンドではなくphp81となっているので、phpコマンドで動くように変更する
1 |
sudo alternatives --install /usr/bin/php php /usr/bin/php81 1 |
1 |
php -v |
正しく8.1が認識されています
■apacheでphpが動作するか確認
移動
1 |
cd /var/www/html |
phpinfoのファイルを作成します
1 |
sudo vi phpinfo.php |
ブラウザで確認すると文字として表示されてしまい、PHPとして動作していません
コマンドとしてphpが動いているにも関わらずブラウザで動作しない状態にとても困りました。いろいろネットで調べていてFPMを正しく動く状態にすることにたどり着きました。
■FPM ( FastCGI Process Manager ) が動くように設定する
www.confを編集します
1 |
sudo vi /etc/opt/remi/php81/php-fpm.d/www.conf |
以下の記述を追加します
listen = /var/run/php-fpm/php-fpm.sock
listen.owner = apache
listen.group = apache
listen.mode = 0660
以下はコメントアウトします
listen=127.0.0.1:9000
ディレクトリの作成
1 |
sudo mkdir /var/run/php-fpm |
fpmサービスの起動
1 2 3 |
sudo systemctl start php81-php-fpm.service sudo systemctl enable php81-php-fpm.service sudo systemctl start php81-php-fpm |
httpd.confの編集
1 |
sudo vi /etc/httpd/conf/httpd.conf |
以下を最後の行に追加します
<Directory “/var/www/html”>
<FilesMatch \.(html|php)$>
SetHandler “proxy:unix:/var/run/php-fpm/php-fpm.sock|fcgi://localhost”
</FilesMatch>
</Directory>
apacheの再起動
1 |
sudo systemctl restart httpd |
ブラウザでphpが8.1で動作することを無事確認