WordPress を PHP7.0 にアップデート(Raspberry Pi + Nginx 環境)
PHP7.0 にアップデートしました。
前々から試みてはプラグインが動作しない問題で挫折していたため、中途半端な状態からの開始… とりあえずの作業記録。
目次
準備
サーバのバックアップ
Raspberry Pi ★ rsync でバックアップ(外付けHDD)
phpinfo
PHPの確認をするのにサーバのルートに phpinfo.php を作成し下記を記述
1 2 3 |
<?php phpinfo(); ?> |
今後も置いておくため、NginxでIP制限をかけておく
1 2 3 4 5 6 7 8 9 10 11 12 13 |
$ sudo vi /usr/local/nginx/conf.d/80.conf server { listen 80; server_name homemadegarbage.0t0.jp; (中略) # phpinfo location /phpinfo.php { allow 自分のローカルIP; deny all; proxy_pass http://backend; } (中略) } |
構文チェック・再起動
1 2 3 4 |
$ sudo nginx -t nginx: the configuration file /usr/local/nginx/conf/nginx.conf syntax is ok nginx: configuration file /usr/local/nginx/conf/nginx.conf test is successful $ sudo service nginx restart |
phpinfoの画面(PHP7.0にアップデート後)
PHP7 インストール
apt-get update
1 |
$ sudo apt-get update |
PHP7.0 インストール
1 |
$ sudo apt-get install php7.0 php7.0-dev php7.0-fpm |
Nginx の設定変更
php5-fpm.sock を php7.0-fpm.sock に変更
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 |
$ cat /usr/local/nginx/conf.d/8080.conf server { listen 8080; server_name localhost; (その他設定中略) location ~ /phpmyadmin/.*\.php$ { fastcgi_pass unix:/var/run/php/php7.0-fpm.sock; # fastcgi_pass unix:/var/run/php5-fpm.sock; fastcgi_index index.php; fastcgi_param SCRIPT_FILENAME /usr/share/$uri; include fastcgi_params; } # pass the PHP scripts to FastCGI server listening on 127.0.0.1:9000 # location ~ \.php$ { fastcgi_pass unix:/var/run/php/php7.0-fpm.sock; # fastcgi_pass unix:/var/run/php5-fpm.sock; fastcgi_index index.php; fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; include fastcgi_params; } } |
構文チェック・再起動
1 2 3 4 |
$ sudo nginx -t nginx: the configuration file /usr/local/nginx/conf/nginx.conf syntax is ok nginx: configuration file /usr/local/nginx/conf/nginx.conf test is successful $ sudo service nginx restart |
WP プラグイン関連
WP管理画面やウェブサイトは無事表示されるものの、プラグイン関連で色々と表示されないところがある。
管理画面からプラグインを「無効」しようとしたら、ボタンを押した後に500 Error となってしまう。
ひとまずSSHでプラグインディレクトリの名前を変更して強制的に無効化していく。
デバッグモードON
WordPress のデバッグオードをONにする
1 |
sudo vi /WPパス/wp-config.php |
WP_DEBUG の false を true へ 変更
1 |
define('WP_DEBUG', true); |
WP Multibyte Patch
再度プラグインページへアクセスし、プラグインの無効/有効ボタンを押すと、 WP Multibyte Patch のエラーが出ていた。
1 2 |
Fatal error: Uncaught Error: Call to undefined function mb_convert_kana() in /WPパスs/wp-content/plugins/wp-multibyte-patch/ext/ja/class.php:147 ・・・・(以下略) |
mbstring をインストール
1 |
sudo apt-get install php7.0-mbstring |
再起動
1 |
sudo service nginx restart |
phpinfo.php で確認すると「Zend Multibyte Support」の項目が provided by mbstring になった。
変更したプラグイン名を直し、WP Multibyte Patch を 有効化。
Amazon JS
Amazon JS が動かない。php7.0-xml が必要な模様。
php7.0-xml インストール
1 |
sudo apt-get install php7.0-xml |
nginx 再起動
1 |
sudo service nginx restart |
WordPress Popular Posts
Popular Posts プラグインの画像が表示されなかった。ImageMagik のインストールが上手くいかず調べていたところ php7.0-gd があれば動くとのこと。
php7.0-gd インストール
1 |
sudo apt-get install php7.0-gd |
nginx 再起動
1 |
sudo service nginx restart |
PHP7.0にした結果
だいぶ早くなりました!!
表示が遅いため、WPログイン外からのアクセスにはリバースプロキシを使っていましたが、これならキャッシュ無しでも表示いけそう✌✌✌
リバースプロキシを設定したときの記事はこちらです。
Raspberry Pi 2 サーバー ★ 高速化 ② Nginx の Proxy Cashe を設定
捕捉メモ:ImageMagikについて
最初、ImageMagik をインストールしたけどそれでは Popular Posts プラグインの画像は表示されず…ちょっと理由がわからないのでとりあえずそのままにしている。
ImageMagik インストール
下記から最新バージョンをDL
http://www.imagemagick.org/download/
1 2 3 4 5 6 7 |
cd /usr/local/src/ sudo wget http://www.imagemagick.org/download/ImageMagick-7.0.6-0.tar.gz sudo tar xvfz ImageMagick-7.0.6-0.tar.gz cd ImageMagick-7.0.6-0 ./configure make make install |
make に結構時間がかかります。
Imagick インストール
1 2 3 4 5 |
cd /usr/local/src sudo git clone -b phpseven --depth 1 https://github.com/mkoppanen/imagick cd imagick sudo phpize sudo ./configure |
./configure の段階で下記エラー。
1 2 3 4 5 6 7 8 |
$ sudo ./configure (中略) checking ImageMagick MagickWand API configuration program... checking Testing /usr/local/bin/MagickWand-config... Doesn't exist checking Testing /usr/bin/MagickWand-config... Doesn't exist checking Testing /usr/sbin/bin/MagickWand-config... Doesn't exist checking Testing /opt/bin/MagickWand-config... Doesn't exist checking Testing /opt/local/bin/MagickWand-config... Doesn't exist configure: error: not found. Please provide a path to MagickWand-config or Wand-config program. |
libmagickwand-dev をインストール
1 |
sudo apt-get install libmagickwand-dev |
再度 ./configure
1 2 3 4 |
$ sudo ./configure (中略) config.status: creating config.h config.status: executing libtool commands |
make & install
1 2 |
sudo make sudo make install |
php.ini に追加
1 2 3 4 |
$ sudo vi /etc/php/7.0/fpm/php.ini (略) extension=imagick.so (略) |
再起動
1 2 |
sudo service php7.0-fpm restart sudo service nginx restart |
phpinfoにも表示されたけど、Popular Posts プラグインの画像は表示されず。
最後に…PHP5関連の削除
本来最初にやっておくべきなのか… この項目はあやふや、とりあえず記録。
dpkg -l | grep php で出てきた、PHP5関連を remove
1 2 3 |
sudo apt-get --purge remove php5 sudo apt-get --purge remove php5-* sudo apt-get autoremove |
途中、phpmyadmin の「phpmyadmin 用データベースの再設定を dbconfig-common で行いますか? 」といったメッセージが出てきて、SSHから「はい」「いいえ」が選べず、Tab とか 矢印キー押しても変わらず…。スペースキー押したら進んで焦った… 大丈夫だったけどどうやってカーソル動かすんだ…。
dpkg -l | grep php でPHP5が出てこなくなったから大丈夫だと思う。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 |
$ dpkg -l | grep php ii php-common 1:49~bpo8+1 all Common files for PHP packages ii php7.0 7.0.18-1~bpo8+1 all server-side, HTML-embedded scripting language (metapackage) ii php7.0-cli 7.0.20-1~bpo8+1 armhf command-line interpreter for the PHP scripting language ii php7.0-common 7.0.20-1~bpo8+1 armhf documentation, examples and common module for PHP ii php7.0-dev 7.0.20-1~bpo8+1 armhf Files for PHP7.0 module development ii php7.0-fpm 7.0.20-1~bpo8+1 armhf server-side, HTML-embedded scripting language (FPM-CGI binary) ii php7.0-gd 7.0.20-1~bpo8+1 armhf GD module for PHP ii php7.0-json 7.0.20-1~bpo8+1 armhf JSON module for PHP ii php7.0-mbstring 7.0.20-1~bpo8+1 armhf MBSTRING module for PHP ii php7.0-mysql 7.0.20-1~bpo8+1 armhf MySQL module for PHP ii php7.0-opcache 7.0.20-1~bpo8+1 armhf Zend OpCache module for PHP ii php7.0-readline 7.0.20-1~bpo8+1 armhf readline module for PHP ii php7.0-xml 7.0.20-1~bpo8+1 armhf DOM, SimpleXML, WDDX, XML, and XSL module for PHP rc phpmyadmin 4:4.2.12-2+deb8u2 all MySQL web administration tool |
(※あと php-pearと dh-php も動かないので削除した。)
サーバの再起動も問題ない。