WordPressをhttps化すると too many redirect が管理画面で発生

WordPressをhttps化したらおかしくなったのでメモ

サーバーはAWS、ssl証明書は導入済み、WordPressを新規にインストール、
管理画面でURLをhttpsに変えたら、too many redirect ..で画面にアクセスできず..
options-general.phpをredirectしまくってるようですが、phpが悪いわけではなさそう

Apacheの設定見なおしたりしましたが、
管理画面での SSL 通信 - WordPress Codex 日本語版

define('FORCE_SSL_ADMIN', true);
if ( ! empty( $_SERVER['HTTP_X_FORWARDED_PROTO'] ) && $_SERVER['HTTP_X_FORWARDED_PROTO'] == 'https' ) {
       $_SERVER['HTTPS']='on';
}

を試したら直りました

WordPressを新しいサーバーで動かしてみる

動いているWordpress v.4.6 を違うサーバーで動かしてみました
はまったところだけ紹介します

Ubuntu 14.04
Apache 2.4
PHP 7.1 -> 5.6へのちほど変更(7.1はWordpressがまだ対応してませんでした)
のサーバーを用意

ディレクトリ一式をコピー
wp_config.phpの一部を新しい環境に合わせて書き換えます

define('DB_NAME', 'database');
define('DB_USER', 'user');
define('DB_PASSWORD', 'password');
define('DB_HOST', 'database_address');

データベースのダンプを取って新しいデータベースへインポート
設定を一部変更します
2行目は、Static S3のプラグイン用です

// URL変更
update wp_options set option_value = 'http://sample.com' where option_name = 'siteurl' or option_name = 'home'; 
// Static S3のプラグイン用
update wp_options set option_value  = '/var/www/html/static/' where option_name = 'StaticPress::static dir';
// 画像などのURL変更
UPDATE wp_options SET option_value = replace(option_value, 'http://sample.jp/', 'http://sample.com/') WHERE option_name = 'home' OR option_name = 'siteurl';
UPDATE wp_posts SET guid = replace(guid, 'http://sample.jp/', 'http://sample.com/');
UPDATE wp_posts SET post_content = replace(post_content, 'http://sample.jp/', 'http://sample.com/');
UPDATE wp_postmeta SET meta_value = replace(meta_value,'http://sample.jp/', 'http://sample.com/');

画面にアクセス、エラーが発生

Warning: Parameter 1 to wp_default_styles() expected to be a reference, value given in /var/www/html/wp-includes/plugin.php on line 600
Warning: Parameter 1 to multibyte_patch::wplink_js() expected to be a reference, value given in /var/www/html/wp-includes/plugin.php on line 600
Warning: Parameter 1 to wp_default_scripts() expected to be a reference, value given in /var/www/html/wp-includes/plugin.php on line 600

調べてみるとWordpress 4.6は php 7.1 に対応してないようです
php 5.6に入れ替えると、無事画面が表示されました

ApacheでInvalid command ‘Header’のエラー

Ubuntu 14.04 で Apache + WordPress を動かそうとしたらエラーが

$ tail /var/log/apache2/error.log

Invalid command 'Header', perhaps misspelled or defined by a module not included in the server configuration

Headers moduleが無効のようなので、

$ sudo a2enmod headers

これで有効になったので、Apache再起動

$ sudo service apache2 restart

これでエラーが取れました

WordPressのサブディレクトリにもうひとつWordPressを入れる

あんまり検索しててもヒットしないのでメモ
(なにか問題ある方法なんだろうか..)

WordPressサイトを運営していて、実験的にもうひとつのWordPressを同じサーバーに入れたかったので

http://sample.com/ が既存のサイトとすると
http://sample.com/sample でもうひとつWordPressが動くようにしてみました

元のサイトで http://sample.com/sample/〜 のURLを使っているとアウトなのでかぶらないものにします

簡易的に既存のWordPressをコピー

$ cd /var/www/html
$ cp -r wordpress sample
$ mv sample wordpress

.htaccessを修正
RewriteBaseをサブディレクトリに変えます

$ vim sample/.htaccess

<IfModule mod_rewrite.c>                                                        
RewriteEngine On                                                                
RewriteBase /sample/                                                       
RewriteRule ^index\.php$ - [L]                                                  
RewriteCond %{REQUEST_FILENAME} !-f                                             
RewriteCond %{REQUEST_FILENAME} !-d                                             
RewriteRule . index.php [L]                                                     
</IfModule> 

WordPressのサイト設定を追記します

$ vim sample/wp-config.php

define ('WP_SITEURL', 'http://sample.com/sample/'); 
define ('WP_HOME', 'http://sample.com/sample/'); 

これで
http://sample.com/sample
にアクセスできました

あとはデータベースを変えてあげれば、違うWordPressが使えるようになります