• 投稿日:2023年06月07日 23時00分07秒
  • 更新日:2023年06月07日 23時10分00秒
Ubuntuに古いphp7.1をインストールする

Ubuntuに古いphp7.1をインストールする

詳細

ここではphp7.1をインストールし、apacheと連携させます。

古いバージョンのphpをインストール

php7.1のリポジトリを追加

apt install -y software-properties-common

add-apt-repository ppa:ondrej/php

apt update

インストールと切替

apt install php7.1 php7.1-fpm php7.1-mysql

update-alternatives --list php

update-alternatives --config php

apacheを使う場合は「php7.1」、Nginxを使う場合は「 php7.1-fpm」をインストールしてください。
私の環境には両方入っているので両方入れています。

「update-alternatives –config php」を打つと現在インストールされているphpからバージョンを選択しろって言われます。左に記載されている番号を入力してenterで選択となります。

WordPressを使う場合

WordPressを使う場合は以下モジュールもインストールして、php.iniに使うことを記載しなくてはいけません。

apt install php7.1-mbstring

nano /etc/php/7.1/apache2/php.ini

Nginxを使っている場合は「/etc/php/7.1/fpm/php.ini」です。

元々記載はあるのですが、コメントアウトされているので解除します。

;extension=php_mbstring.dll
↓
extension=php_mbstring.dll

最後はapacheの再起動です。

systemctl restart apache2.server

apacheと連携

a2dissiteコマンドで無効、a2ensiteコマンドで有効になります。

a2dissite php7.4

a2ensite php7.1

systemctl restart apache2.server

後はいつも通りsystemctlでapacheを再起動してください。

Nginxと連携

/etc/nginx/sites-available/にある設定ファイルを変更してください。

現在必要ではないので省略

MySQLと連携

MySQL8を使っていると、デフォルトの認証方法の違いからMySQLとつながらなくなります。これはユーザの認証方法を変えることで対応できます。

mysql -u root -p
use mysql

select user, host, plugin from user;

alter user '[ユーザ名]'@'localhost' identified with mysql_native_password by '[パスワード]';

exit

MySQL8のデフォルト認証方法は「caching_sha2_password」でphp7.1が使う認証方法は「mysql_native_password」です。

今回はMySQLのデフォルト認証方法をphp7.1に合わせることで対応しました。
というよりこれ以外の方法を知りません。

SPECIAL THANKS

  1. ubuntu20.04.1 phpのバージョンを切り替える -mebee-
  2. 【MySQL】PHPで接続できないとき SQLSTATE[HY000] [2054] The server requested authentication method unknown to the client -困った時に思い出したい-
【Laravel】configファイルについて
Laravel Sailでサクッと環境構築
Ubuntuからインストーラを使ってインストールしたNode.jsを削除する
Laravelを使って開発したものを本番環境へ
Laravelをインストールし開発環境を整備する
Laravelのコマンドを色々まとめ
無料でサイトをSSL化する
MySQLでよく使うSQL-ユーザ関係-