呟く茸の日記帳HOMEBLOGABOUTCONTACT呟く茸の日記帳ホームブログソフトウェアphp5.6からphp7.0への移行php5.6からphp7.0への移行2016-09-11ソフトウェアHiratakeこんにちは、ヒラタケです。php5.6をインストールして使用して動かしていたのですが、7.0のほうが速いし新しいしつよそうということで移行作業を行いました。その関係で、昨日の夕方くらいにサイトにアクセスできない時間がございました。事前の通知無しでの気まぐれな作業を行ったことをお詫び申し上げます。今後、またphp5.6から7.0への移行作業を行う機会がありそうなので、まだ覚えてるうちになんとなく行った作業を書いておこうと思います。移行作業は、こちらのサイト様を参考にさせていただきました。こちらが行った手順はだいたい同じですので、私が途中でつまった点を中心に書いていきます。詳しい手順はそちらをご参照ください。今回移行を行ったサーバの環境は以下のとおりです。5.6php7.0のインストールまず、以前インストールしたphp5.6のアンインストールを行いました。インストール済みのパッケージ一覧を表示するとびっくりするくらい大量の文字が出てきましたが、それをコピーして全部まとめて削除しました。絶対使わないのありそう、詳しくないからわかんないけど。次に、php7.0のインストールを行いました。リポジトリの設定が面倒だったので、以下のコマンドを使用しました。php-tcpdfインストールするものは環境によって異なるかと思います。なんかすごいたくさんあったのですが、削除するときに指定したものを全部コピペしました。ファイルが壊れているとかなんとかでうまく削除できませんでしたので、「-skip-broken」をyumの後ろに付けて実行しました(上記のコマンドには既につけてあります)。このときに表示された、スキップされたパッケージをメモしておきます。今回うまくインストールができなかったのは「php-pear」というものでした。他のパッケージのインストールが終わった後に以下のコマンドを実行すると普通に出来ました。php-pearその後「php-fpm」と「nginx」を起動します。この際、php-fpmの自動起動設定を行いました。php-fpmここまでやればphp7.0が動くかと思ったのですが、エラーが出てページが上手く表示されませんでしたのでなんとかしました。インストール後の設定まずはphp-fpmの設定を見直します。rpmを実行した際に「www.conf.rpmsave」というファイルが作成されており、以前の設定が残っていたのでそれと見比べながら「www.conf」を書き換えていきます。www.confユーザが初期状態だと「apache」になっており、使用しているサーバではnginxが動いているのでうまく動かなかったようです。apacheになっていたところをnginxに直すととりあえず表示されるようになりました。次にphp.iniも同じように修正していきます。ここで注意しなければいけない点は、php7.0になったことで増えている項目があったり、逆に減っている項目があったりすることです。mysqlの項目が消え、mysqliだけになっていたところは見間違えて色々書き換えそうになりましたので注意しましょう。php.ini書き換えたらphp-fpmとnginxの再起動をします。phpMyAdminの設定php7.0に移行して、Wordpressで作られたこのサイトが表示されることは確認できたのですが、phpMyAdminを開くとエラーが出て使うことができませんでした。この機会に最新バージョンをダウンロードして入れなおしをすることにしました。それについても書いていきます。phpmyadminの設定はこちらのサイト様を参考にさせていただきました。この記事では色々省略して書いていくので、詳しくはそちらをご参照ください。入れたいディレクトリに移動し、phpmyadmin本体をダウンロードします。ここでは、「/var/www/」に入れることとします。最新バージョンの確認はこちらで行い、ファイル名などを書き換えてコマンドを実行してください。phpMyAdmin-4.6.4-all-languages.tar.gz以前入れた、古いバージョンのphpmyadminを「phpmyadmin-old」になおして残しておきます。新しい方はディレクトリの名前を「phpmyadmin」に書き換えます。ここの書き換えは、人によって異なると思いますので好きなものを入れてください。所有ユーザを「nginx」に書き換えておきます。phpmyadminその後、ダウンロードしたphpmyadminの中にあるSQLスクリプトを使用して設定を行います。バージョンが新しくなったからなのか、参考にさせていただいたサイトに記載されていたものとスクリプトの場所が変わっていたので、そこを書き換えて実行します。exitデータベースの作成が完了したら、config.inc.phpを作成して編集します。config.inc.phpこのファイルの編集については、参考にさせていただいたこちらのサイトで行っていることとほぼ同じです。「blowfish_secret」のランダムな文字列が32文字以下だと怒られちゃうので、それより多い文字数のものを使用するようにします。ここまでやってnginxの再起動を行いましたが、うまく動きませんでした。sessionのところでエラーが出ているようだったので調べていると、php.iniでsessionディレクトリの指定がなくて動かなかったという記事を見つけて確認してみました。sessionディレクトリの指定はされていましたが、よく見てみると指定していたディレクトリの所有グループが「apache」になっていました。なんで今まで動いていたのかと疑問に思いながらもとりあえずnginxに変更。するとphpmyadminが使えるようになりました。最後に、残しておいた以前のphpmyadminを削除して完了。はてブHiratakeCSSとプリキュアがすき。