PHP 8のインストール・設定方法
PHPと関連モジュールのインストール
dnfの部分は、CentOS7以前ならyum、Ubuntu系ならapt-getを使って下さい
Linux系でのOS付属のPHPのインストール
OSのディストリビューション付属の版になるので、最新ではない可能性はあります。
但し、OSディストリビューション側が責任を持って、アップデートを他のソフトと合わせて稼働する様に管理してくれます。
sudo dnf -y install php; sudo dnf -y install php-bcmath php-cli php-curl php-devel php-fpm php-gd php-json php-ldap php-mbstring php-mysqlnd php-xml php-odbc php-opcache php-pdo php-pear php-pgsql php-soap php-xml php-xmlrpc php-zip;
Linux系でのPHP公式配布のPHPインストール
公式が配布するもの=最新版なので、一般的にOSディストリビューション付属のPHPよりも新しい版が提供されます。
自分は最新版を機能・性能面で使いたいので、こちらの方法でインストールしています。
デメリットとしては、OSディストリビューション付属を使ってのインストールだったら
dnf -y update
とOSアップデートをかけると、PHPにもアップデートがあったら一緒にアップデートされますが、PHP公式から直接アップデートすると、以後のPHP公式のアップデートを自分でフォローし、必要性を判断して更新していく必要性が出てきます。
そうした、運用面のデメリットも考慮した上で、どちらが良いか考えてやりましょう。
# CentO8の場合。OS・バージョンによって異なるので、詳しくはhttp://rpms.remirepo.net/enterprise/を見て自分の環境に該当するものを見つけて下さい # # インストール対象は2020/11現在最新のPHP8.0の場合 # OSVER=8; PHPVER=80; sudo dnf -y install http://rpms.remirepo.net/enterprise/remi-release-$OSVER.rpm; sudo dnf -y install epel-release yum-utils; sudo dnf config-manager --set-enabled PowerTools; sudo dnf -y install php$PHPVER*; sudo yum -y install php$PHPVER-php-bcmath php$PHPVER-php-cli php$PHPVER-php-curl php$PHPVER-php-devel php$PHPVER-php-fpm php$PHPVER-php-gd php$PHPVER-php-json php$PHPVER-php-ldap php$PHPVER-php-mbstring php$PHPVER-php-mysqlnd php$PHPVER-php-xml php$PHPVER-php-odbc php$PHPVER-php-opcache php$PHPVER-php-pdo php$PHPVER-php-pear php$PHPVER-php-pgsql php$PHPVER-php-soap php$PHPVER-php-xml php$PHPVER-php-xmlrpc php$PHPVER-php-zip; sudo update-alternatives \ --install /usr/bin/php php /opt/remi/php$PHPVER/root/usr/bin/php 0 \ --slave /usr/bin/php-cgi php-cgi /opt/remi/php$PHPVER/root/usr/bin/php-cgi \ --slave /usr/bin/pear pear /opt/remi/php$PHPVER/root/usr/bin/pear \ --slave /usr/bin/phar.phar phar /opt/remi/php$PHPVER/root/usr/bin/phar.phar;
なお上記の方法でupdate-alternativesを複数のバージョンに対してやっている場合
sudo alternatives --config php;
で、PHPの複数のバージョンの切り替えを行う事が出来る。
There are 2 programs which provide 'php'. Selection Command ----------------------------------------------- *+ 1 /opt/remi/php74/root/usr/bin/php 2 /opt/remi/php80/root/usr/bin/php
といったものが表示されるので、自分が使いたいバージョンの番号を打つ。
自分の場合はPHP8.0を使いたかったので、2と打つ。
php -v;
と打って、PHPのバージョンを確認
PHP 8.0.0 (cli) (built: Nov 24 2020 17:04:03) ( NTS gcc x86_64 ) Copyright (c) The PHP Group Zend Engine v4.0.0-dev, Copyright (c) Zend Technologies with Zend OPcache v8.0.0, Copyright (c), by Zend Technologies
それで自分がインストールしたいPHPの版が正常にインストールされている事を確認する。
composerのインストール
sudo dnf -y install composer;
もしもcomposerがOS側からパッケージとして提供されてなければ
https://getcomposer.org/download/
手順にそってインストール
実行したディレクトリにcomposer.pharがダウンロードされている状態になるので
mv composer.phar /usr/local/bin/;
という形で動かして、どのディレクトリからでも実行できるようにする
PHP-FPMのインストール・設定
インストール
PHPVER=80; dnf install -y php$PHPVER-php-fpm; systemctl enable php$PHPVER-php-fpm; systemctl start php$PHPVER-php-fpm;
configファイルの設定
/etc/opt/remi/php$PHPVER/php-fpm.d/www.conf
を編集する
TCPポートでの接続を可能にするには
#listen = /var/opt/remi/php$PHPVER/run/php-fpm/www.sock listen = 127.0.0.1:9000
と書き換え
また、Apacheではなく、nginxと連携させて動かす場合には
#group = apache group = nginx #user = apache user = nginx
と書き換え
php-fpmでtmpフォルダのmkdir絡みでエラー(失敗)する場合
/lib/systemd/system/php$PHPVER-php-fpm.service
の
PrivateTmpの値をfalseにして
systemctl daemon-reload; systemctl restart php$VER-php-fpm;
で反映
おまけ: MacでのPHPのインストール
homebrew
https://brew.sh/
をインストールしてあれば
brew install php;
と打つだけでインストール可能。
但し、homebrew経由のインストールではPHP7がデフォルトの現状で、PHP8系をそれでも使いたければ
brew update&&brew tap shivammathur/php&&brew install shivammathur/php/php@8.0&&brew link --overwrite --force php@8.0
と打つと
/usr/local/bin/php
がPHP8になる