前書き
なぜか最新のバージョンでないPHP5.4をインストールしてしまっていたので、PHP7.1をインストールし直しました。
備忘録としてここに残します。
私自身、PHPをちゃんと書きはじめて3ヶ月程度のペーペーなので、おかしい箇所がいくつかあるかもしれませんがその際はご指摘いただけると幸いです。
環境
CentOS 7.4.1708
Apache 2.4.6
手順
1. epelリポジトリ、remiリポジトリをインストール
まずepel?remi?リポジトリ?って感じですが、こちらによると
レポジトリとは動作の確認できているコンパイル済みのバイナリファイルを集めたストレージのことで、自分でわざわざソースコードの入手・コンパイルなどを行わなくても簡単に導入できます。
またソフトウェアが必要としているソフトウェアの依存性も自動的に検出して、必要な物も一緒にインストールしてくれます。
とのことです。
つまり、そのままPHPをインストールしようとするとソースコードを入手したりコンパイルをしたりしなければなりませんが、
epelやremiを使えば、そういった煩わしい手順を省いて簡単にインストールができるということですね。
ということでまず最初にインストールします。
$ sudo yum install epel-release
$ rpm -Uvh http://rpms.famillecollet.com/enterprise/remi-release-7.rpm
2. バージョンの確認
$ rpm -qa | grep php
php-cli-5.4.16-43.el7_4.x86_64
php-pdo-5.4.16-43.el7_4.x86_64
php-common-5.4.16-43.el7_4.x86_64
php-mbstring-5.4.16-43.el7_4.x86_64
php-mysqlnd-5.4.16-43.el7_4.x86_64
php-5.4.16-43.el7_4.x86_64
5.4.1が入っています。
3. 念のため設定ファイルを避難
$ cp /etc/php.ini /tmp
4. 古いバージョンのPHPを削除
$ sudo yum remove php-*
削除しました:
php.x86_64 0:5.4.16-43.el7_4 php-cli.x86_64 0:5.4.16-43.el7_4
php-common.x86_64 0:5.4.16-43.el7_4 php-mbstring.x86_64 0:5.4.16-43.el7_4
php-mysqlnd.x86_64 0:5.4.16-43.el7_4 php-pdo.x86_64 0:5.4.16-43.el7_4
3. PHP7.1をダウンロード
$ sudo yum install --disablerepo=* --enablerepo=remi,remi-php71 php php-devel php-mbstring php-pdo php-gd php-xml php-mcrypt
よしこれで完了だ!ということで動作確認をしてみると、MysqlのPDOが使えず、could not find driverと出てしまう。
phpinfo()で確認してみると…
driverにmysqlがない!
てことでmysqlndパッケージをインストールしてみる。
$ sudo yum install --enablerepo=remi-php70 php-mysqlnd
Apache再起動。
$ sudo systemctl restart httpd
で、ようやくちゃんと動きました。
ただダウンロードするだけでなくいろいろパッケージを入れておかねばならないんですね。
参考
http://zudoh.com/archives/144
https://qiita.com/ozawan/items/caf6e7ddec7c6b31f01e
https://qiita.com/toriiico/items/e2d951bc7e598d7609fb