概要
Docker 上の Almalinux8 や CentOS7 で PHP8.0 を動作させるまでに躓いた点を走り書き程度にメモしておきます。
メモ
少しカスタマイズして起動しようとしたら起動しなかった。
Could not retrieve mirrorlist http://mirrorlist.centos.org/?release=7&arch=x86_64&repo=os&infra=container error was
Could not retrieve mirrorlist http://mirrorlist.centos.org/?release=7&arch=x86_64&repo=os&infra=container error was
もう一回やり直したらできた。たまたまかもしれない。
参考
rpm dev.mysql.com key
rpm で MySQL Community をインストールしようとしてPGPキーのせいでコケたので。
# rpm --import https://repo.mysql.com/RPM-GPG-KEY-mysql-{年数}
基本是でOK。ただし3/3時点で RPM-GPG-KEY-mysql-2023
がないので RPM-GPG-KEY-mysql-2022
で実行。
参考
- MySQL :: MySQL 8.0 リファレンスマニュアル :: 2.5.1 MySQL Yum リポジトリを使用して MySQL を Linux にインストールする
- GPGキーの関係でmysqlがインストールできない時の対処法 – Qiita
No such file or directory: AH02454: FCGI: attempt to connect to Unix domain socket /run/php-fpm/www.sock (*) failed
[Www Mmm dd hh:ii:ss.xxxxxx yyyy] [proxy:error] [pid 105] (2)No such file or directory: AH02454: FCGI: attempt to connect to Unix domain socket /run/php-fpm/www.sock (*) failed
[Www Mmm dd hh:ii:ss.xxxxxx yyyy] [proxy_fcgi:error] [pid 105] [client 172.20.0.1:46956] AH01079: failed to make connection to backend: httpd-UDS
Docker の Almalinux8 + Apache + PHP8.0 環境にしたところ、このエラーが表示されて PHP が実行されない現象に遭遇。画面では Apache の Service Unavailable (503) が表示される状態。
RUN mkdir -p /run/php-fpm
RUN chown apache:apache /run/php-fpm
この辺りを加えてみたが変化なし。
# PHP
/usr/sbin/php-fpm &
エントリポイントのシェルスクリプトで PHP-FPM を実行したところすんなり動いた。
参考
- Error FCGI: attempt to connect to Unix domain socket /var/lib/php5-fpm/web9.sock (*) failed | Howtoforge – Linux Howtos and Tutorials
- Docker上でphp-fpmが立ち上がらない件 – Hack Note
- apache – No such file or directory: AH02454: FCGI: attempt to connect to Unix domain socket /var/run/php/php5.6-fpm.sock (*) failed – Stack Overflow
- CentOSにApacheとPHP入れてPHPファイルを表示しようとしたら503エラー Output48
- apache2.4でphp-fpm を使用したい。(httpd error code AH02454, AH01079)
- docker で nginx と php-fpm 環境を構築してみる – Qiita
- php-fpm再起動手順 – Qiita
- php-fpm の操作(起動、再起動、停止) at softelメモ
Docker で PHP のバージョンの切替
これで行けるのでは、と思った(できた)。
PHP Startup: Use of mbstring.internal_encoding is deprecated in Unknown on line 0
PHP Deprecated: PHP Startup: Use of mbstring.internal_encoding is deprecated in Unknown on line 0
このようなログが記録されていた。
;mbstring.internal_encoding = "UTF-8"
default_charset= = "UTF-8"
パラメータのキーを書き換えて対処。
参考
Xdebug のパラメータキーが違うと怒られる
このドキュメントを見て置換。
CentOS7 + PHP8のときにPHPのソースが見えてしまう
php.conf
# mod_php options
#<IfModule mod_php7.c>
<IfModule mod_php.c>
たったこれだけの差でPHPが動作しなかった……。
参考
- CentOS 8 標準の Apache と PHP の関係について – ラボラジアン
- PHP8(PHP-FPM)のメモ – Qiita
- Apache PHP8 php_moduleがダウンロードされない
これで php.conf
の中のバージョンに関する数字の記述では?と感づくことができた。
参考(にならなかった)
- centos7.9@ec2にapache2.4+php8+git2+composer2+laravel8+SQLite(MySQL)をインストールしてみた。なんて面倒なんだ…。久々にやったけど、lightsailやレンタルサーバのありがたみが分かるな。 | メサイア・ワークス
- PHP8 を CentOS7 と CentOS8 にインストールする