VCCWのPHPをUpdateしてWordPressのCocoonをインストールするのにかなり苦労しました。ようやく上手く行ったので備忘録として残しておきます。
※Local by Flyweelが古いMac(サーバとして活用)で使用できず、VCCWでWordPress環境を構築しています。
VCCWの環境構築については、こちらの記事に記載しています。
vagrant起動(ホストOS)
VCCW用のディレクトリ(例:wpbiboip)に移動します。
$ cd /Users/<User Name>/Vagrant/wpbiboip
vagrantを起動します。
$ vagrant up
PHPのUpdate(ゲストOS)
使用している端末からSSHでゲストOSにログインします。(vagrantユーザ)
$ ssh vagrant@192.168.xxx.xxx
※デフォルトのパスワードはvagrantです。
※Windowsであれば、定番のTeratermが便利です。
PHPのバージョン確認
vagrant@192:~$ php -v
PHP 7.0.26-2+ubuntu16.04.1+deb.sury.org+2 (cli) (built: Dec 7 2017 20:09:40) ( NTS )
Copyright (c) 1997-2017 The PHP Group
Zend Engine v3.0.0, Copyright (c) 1998-2017 Zend Technologies
with Zend OPcache v7.0.26-2+ubuntu16.04.1+deb.sury.org+2, Copyright (c) 1999-2017, by Zend Technologies
with Xdebug v2.5.5, Copyright (c) 2002-2017, by Derick Rethans
リポジトリのインストール
$ sudo apt install software-properties-common
$ sudo add-apt-repository ppa:ondrej/php
$ sudo apt-get update
PHP 7.4 & 主要モジュールをインストール
$ sudo apt install -y php7.4 php7.4-fpm php7.4-mysql php7.4-gd php7.4-imagick php7.4-intl php7.4-curl php7.4-mbstring php7.4-zip php7.4-xml php7.4-bz2 php7.4-apcu libapache2-mod-php7.4
※ curlをUpdateしないとCocoonインストールでうまくいかないです。
※ libapache2-mod-php7.4 はApacheのphpモジュール
Apacheの旧phpモジュールのバージョンをdisable
$ sudo a2dismod php7.0
Apacheの新phpモジュールのバージョンをenable
$ sudo a2enmod php7.4
Apache再起動
$ sudo service apache2 restart
PHPのバージョン確認
vagrant@192:~$ php -v
PHP 7.4.7 (cli) (built: Jun 12 2020 07:43:48) ( NTS )
Copyright (c) The PHP Group
Zend Engine v3.4.0, Copyright (c) Zend Technologies
with Zend OPcache v7.4.7, Copyright (c), by Zend Technologies
DBのテーブル確認
phpMyAdminのインストール
phpMyAdminをインストールしていない場合は、インストールしておくことをおすすめします。こちらからダウンロードしてプロジェクトルート内のwordpressフォルダ直下に配置します。
以下はダウンロードしたphpMyAdmin-5.0.2-all-languages.zip(例)を解凍したフォルダ例です。
$ pwd
/Users/git/Vagrant/wpbiboip/wordpress/phpMyAdmin
ブラウザからphpmyadminにアクセスします。192.168.xxx.xxxはゲストOSのIPアドレス(/Users/git/Vagrant/wpbiboip/site.ymlに設定した値)
http://192.168.xxx.xxx/phpmyadmin/
VCCWのMySQL、rootの初期パスワードはwordpressになります。
◇PHPが切り替わっていない場合、ブラウザに以下のメッセージが表示されます。
PHP 7.1.3+ is required.
Currently installed version is: 7.0.33-29+ubuntu16.04.1+deb.sury.org+1
ターミナルからテーブル確認
ターミナルからテーブル確認する場合は、以下のようになります。
ログイン
[vagrant@192 ~]$ mysql -u root -p
Enter password: wordpress
データベースの表示
mysql> SHOW DATABASES;
+--------------------+
| Database |
+--------------------+
| information_schema |
| mysql |
| performance_schema |
| sys |
| wordpress |
+--------------------+
5 rows in set (0.00 sec)
テーブル情報の表示
mysql> SHOW TABLES FROM wordpress;
+-----------------------+
| Tables_in_wordpress |
+-----------------------+
| wp_commentmeta |
| wp_comments |
| wp_links |
| wp_options |
| wp_postmeta |
| wp_posts |
| wp_term_relationships |
| wp_term_taxonomy |
| wp_termmeta |
| wp_terms |
| wp_usermeta |
| wp_users |
+-----------------------+
12 rows in set (0.00 sec)
カラム情報の表示
mysql> SHOW COLUMNS FROM wp_posts FROM wordpress;
+-----------------------+---------------------+------+-----+---------------------+----------------+
| Field | Type | Null | Key | Default | Extra |
+-----------------------+---------------------+------+-----+---------------------+----------------+
| ID | bigint(20) unsigned | NO | PRI | NULL | auto_increment |
| post_author | bigint(20) unsigned | NO | MUL | 0 | |
| post_date | datetime | NO | | 0000-00-00 00:00:00 | |
| post_date_gmt | datetime | NO | | 0000-00-00 00:00:00 | |
| post_content | longtext | NO | | NULL | |
| post_title | text | NO | | NULL | |
| post_excerpt | text | NO | | NULL | |
| post_status | varchar(20) | NO | | publish | |
| comment_status | varchar(20) | NO | | open | |
| ping_status | varchar(20) | NO | | open | |
| post_password | varchar(255) | NO | | | |
| post_name | varchar(200) | NO | MUL | | |
| to_ping | text | NO | | NULL | |
| pinged | text | NO | | NULL | |
| post_modified | datetime | NO | | 0000-00-00 00:00:00 | |
| post_modified_gmt | datetime | NO | | 0000-00-00 00:00:00 | |
| post_content_filtered | longtext | NO | | NULL | |
| post_parent | bigint(20) unsigned | NO | MUL | 0 | |
| guid | varchar(255) | NO | | | |
| menu_order | int(11) | NO | | 0 | |
| post_type | varchar(20) | NO | MUL | post | |
| post_mime_type | varchar(100) | NO | | | |
| comment_count | bigint(20) | NO | | 0 | |
+-----------------------+---------------------+------+-----+---------------------+----------------+
23 rows in set (0.00 sec)
Databaseの切り替え
mysql> USE wordpress
Reading table information for completion of table and column names
You can turn off this feature to get a quicker startup with -A
Database changed
SELECT文の例
mysql> SELECT post_title FROM wp_posts WHERE LENGTH(post_name) < 20;
+-----------------+
| post_title |
+-----------------+
| Hello world! |
| Sample Page |
| Privacy Policy |
+-----------------+
3 rows in set (0.00 sec)
MySql終了
mysql> EXIT
Bye
php.iniの編集
php.iniのファイルパスを調べる方法
いくつか方法はありますが、簡単な方法を1つ記述しておきます。
/Users/git/Vagrant/wpbiboip/wordpress/phpinfo.php
を作成し、ファイルの内容に
<?php phpinfo(); ?>
を記述し、保存します。
ブラウザから<ゲストOSのIPアドレス>/phpinfo.php にアクセスします。
http://192.168.xxx.xxx/phpinfo.php
Loaded Configuration Fileの値を確認します。
/etc/php/7.4/apache2/php.ini
php.iniを編集
vagrant@192:~$ cd /etc/php/7.4/apache2
vagrant@192:~$ sudo vi php.ini
上記はviコマンドの例ですが、テキストエディタなどを使用して編集しても良いです。
以下のように変更します。
POSTデータに許可される最大サイズ(バイト単位)
post_max_size = 8M
↓
post_max_size = 128M
アップロード最大サイズ(バイト単位)
upload_max_filesize = 2M
↓
upload_max_filesize = 128M
Apache再起動
$ sudo service apache2 restart
テーマ(Cocoon)インストール
こちらからテーマをダウンロードします。今回使用したバージョンは以下となります。
親テーマ : cocoon-master-2.1.9.1.zip
子テーマ : cocoon-child-master-1.1.2.zip
WordPressにログインしてダウンロードしたテーマを、親テーマ、子テーマの順にアップロードして、子テーマを有効化します。
※ php.iniの設定で、アップロードできるファイルの容量を増やしておかないと、「辿ったリンクは期限が切れています。」のインストールエラーが発生します。
※以下のテーブルが無いよエラーが出ることがありますが、phpMyAdminで見るとテーブルができていました。とりあえず問題がないので放置しています。
WordPress データベースエラー: [Table 'wordpress.wp_cocoon_speech_balloons' doesn't exist]
SELECT COUNT(id) FROM wp_cocoon_speech_balloons
WordPress データベースエラー: [Table 'wordpress.wp_cocoon_function_texts' doesn't exist]
SELECT COUNT(id) FROM wp_cocoon_function_texts
WordPress データベースエラー: [Table 'wordpress.wp_cocoon_affiliate_tags' doesn't exist]
SELECT COUNT(id) FROM wp_cocoon_affiliate_tags
WordPress データベースエラー: [Table 'wordpress.wp_cocoon_item_rankings' doesn't exist]
SELECT COUNT(id) FROM wp_cocoon_item_rankings
※ curlが古いとCocoonのインストールが失敗します。php7.4-curlを事前にインストールしたところ、上手くいきました。
インストールが正常終了したら、作業完了です。
後片付け
SSH終了
vagrant@192:~$ logout
Connection to 192.168.xxx.xxx closed.
vagrant停止
$ pwd
/Users/git/Vagrant/wpbiboip
$ vagrant halt
==> 192.168.xxx.xxx: Attempting graceful shutdown of VM...
==> 192.168.xxx.xxx: [vagrant-hostsupdater] Removing hosts