Ubuntu10.04 で、EC-CUBE 2.4.4 と WordPress 3.0.1 が動いているという、今となってはかなり特殊な(レガシーな)環境で動作しているサイトの常時SSL化をいたします。(備忘録)
1.WordPressのデータダンプ
# mysqldump -u root -ppassword wordpress-db > wordpress-db-dump20180918.sql
2.データダンプの書き換え(http ⇒ https)
# 画像ファイルは、http://hoge.com/??? を取る
# URLは書き換え
# wp_options は文字長が入っているので要注意
3.Let’s Encrypt (dehydrated)を入れる
# curl -kLO https://github.com/lukas2511/dehydrated/releases/download/v0.6.2/dehydrated-0.6.2.tar.gz
# tar xf dehydrated-0.6.2.tar.gz
# cd dehydrated-0.6.2
# cp docs/examples/config config
# nano config
WELLKNOWN=”/var/www/dehydrated” #コメントを取る
# mkdir /var/www/dehydrated
# nano /etc/apache2/conf.d/dehydrated.conf
Alias /.well-known/acme-challenge /var/www/dehydrated
# nano domains.txt
hoge.com www.hoge.com
# ./dehydrated –register –accept-terms
# ./dehydrated -c –accept-terms
# crontab -e
0 3 1,15 * * /root/dehydrated-0.6.2/dehydrated –config /root/dehydrated-0.6.2/config –cron >> /tmp/ssl-update.log 2>&1
4.apache2 への組み込み
# nano /etc/apache2/sites-available/default-ssl
NameVirtualhost *:443
ServerName hoge.com
ServerAlias www.hoge.com
DocumentRoot /www/wordpress/
ErrorLog /var/log/apache2/error.log
LogLevel warn
CustomLog /var/log/apache2/ssl_access.log combined
SSLEngine on
SSLCertificateFile /root/dehydrated-0.6.2/certs/hoge.com/fullchain.pem
SSLCertificateKeyFile /root/dehydrated-0.6.2/certs/hoge.com/privkey.pem
SSLCertificateChainFile /root/dehydrated-0.6.2/certs/hoge.com/chain.pem
# a2enmod ssl # sslモジュールを入れる
# a2ensite default-ssl
# service apache2 restart
# netstat -ltup4 # httpsが上がっていることを確認
5..htaccess の書き換え(http ⇒ https)
# nano /www/wordpress/.htaccess
RewriteEngine On
Options +FollowSymLinks
RewriteBase /
#RewriteRule ^index\.php$ – [L]
RewriteCond %{THE_REQUEST} ^.*/index.(html|php)
RewriteRule ^(.*)index.(html|php)$ http://%{HTTP_HOST}/$1 [R=301,L]
RewriteCond %{HTTPS} off
RewriteCond %{HTTP_HOST} ^(www\.)?(hoge\.com)$ [NC]
RewriteRule ^(.*)$ https://%{HTTP_HOST}%{REQUEST_URI} [R=301,L]
# uploaded files
RewriteRule ^files/(.+) wp-includes/ms-files.php?file=$1 [L]
RewriteCond %{REQUEST_FILENAME} -f [OR]
RewriteCond %{REQUEST_FILENAME} -d
RewriteRule ^ – [L]
RewriteRule . index.php [L]
6.データダンプからデータベースを書き換え
# mysql -u root -p
use wordpress-db;
source db1.sql; # httpを書き換えたダンプ(UTFで保存)
7.WordPressテーマの書き換え
httpが直書きされてそうなファイル
# cd /www/wordpress/wp-content/themes/hoge/
functions.php
header.php
loop-index.php
style.css
8.EC-CUBEの書き換え
# nano /home/www/hoge/eccube-2.4.4/data/install.php
define (‘SITE_URL’, ‘https://shop.hoge.com/’);
define (‘SSL_URL’, ‘https://shop.hoge.com/’);
# httpが直書きされてそうなファイル
# nano /home/www/hoge/eccube-2.4.4/html/user_data/include/preview/bloc_preview.tpl
# nano /home/www/hoge/eccube-2.4.4/html/user_data/include/preview/footer.tpl
# nano /home/www/hoge/eccube-2.4.4/html/user_data/include/preview/header.tpl
# nano /home/www/hoge/eccube-2.4.4/html/user_data/packages/default/footer.tpl
# nano /home/www/hoge/eccube-2.4.4/html/user_data/packages/default/header.tpl
# nano /home/www/hoge/eccube-2.4.4/html/user_data/packages/default/bloc/optional.tpl
# nano /home/www/hoge/eccube-2.4.4/html/user_data/packages/default/bloc/other_menu.tpl
# nano /home/www/hoge/eccube-2.4.4/data/Smarty/templates/default/site_frame.tpl
# nano /home/www/hoge/eccube-2.4.4/data/Smarty/templates/default/detail.tpl
# nano /home/www/hoge/eccube-2.4.4/data/Smarty/templates/default/bloc/category.tpl
10.eth0がリネームされ、ネットワークが使えない時
# ifconfig
lo しか有効になっておらず、ネットワークアクセスできない。
# nano /etc/network/interfaces
eth0_rename になってた
# rm /etc/udev/rules.d/70-persistent-.rules
# reboot
これで直った。リネームされた原因不明
11.PostgreSQLが壊れていた場合(pg_xlog不整合でサービスが起動せず)
# su postgres
# cd /usr/lib/postgresql/8.4/bin
# ./pg_resetxlog -f /var/lib/postgresql/8.4/main/
# ./pg_ctl -D /var/lib/postgresql/8.4/main start
これで一応直る(でもDBがなくなってる)
# ./pg_ctl -D /var/lib/postgresql/8.4/main stop
# いろいろやったが結局、PostgreSQL を止めた状態で rsyncで正常に動いているサーバから丸ごと転送かけた
# rsync -rtlzvogpHAX –rsync-path=”/usr/bin/rsync” –block-size=4096 –delete -e “ssh -p 22” /var/lib/postgresql/8.4/ root@1.1.1.4:/var/lib/postgresql/8.4/
12.さくらのVPSでテスト環境を作る
12-1.OSはISOからインストールする
ここ(http://old-releases.ubuntu.com/releases/10.04.0/)からダウンロード
ubuntu-10.04.4-server-amd64.iso
12-2.sftpでサーバーへISOイメージをアップロードする
コントロールパネルから「OSインストール」をクリックして「ISOイメージインストール」を選択
「SFTPアカウントの作成を行う」を選択
FTPで、アップロード
12-3.IPアドレスの設定
Ubuntuの設定で、IPアドレスを設定します
コントロールパネルの情報を転記(IPアドレス、ネットワークマスク、ゲートウェイ、DNSサーバー)
あとで設定は上書きするので、「OpenSSH server」だけ選択
12-4.ログイン
12-5.rootのパスワードを設定
$ sudo passwd root
$ su –
#
12-6.visudo してsudo時にパスワードを聞かれないよう変更
# visudo
%sudo ALL=(ALL:ALL) NOPASSWD: ALL
12-7./etc/ssh/sshd_config を編集
# nano /etc/ssh/sshd_config
Port 22xx
PasswordAuthentication no
12-8.sshサーバを再起動
# service ssh restart
12-9.認証キーを作る
# cd
# mkdir .ssh
# nano .ssh/authorized_keys
# cp -a .ssh/ /home/myuser
# chown -R myuser:myuser /home/myuser/.ssh/
12-10.teratermからsshで入りなおす
XserverにEC-CUBE2.13系をインストール編
サーバ管理サーバーパネル>SSH設定>ONにする
さらに読む
今週検索したTips
Tips何番目系の便利なCSSまとめ
QRCODE作成
※ 検索で一番上に出てくる「”qr.quel.jp”」は変なものを仕込もうとするので要注意!
【WordPress】カスタムメニューのid・classを削除・追加|シンプルにカスタマイズ
既に登録済みの画像を一括リサイズしてくれるプラグイン Regenerate Thumbnails
【コピペOK】GoogleMapの地図をレスポンシブサイトに埋め込む方法
個性的なギャラリーが作れる!WordPressプラグイン「FooGallery」の魅力と使い方
InstagramをWordPressに埋め込むには「Insta Show」プラグインが最適!Instagram Feedより良い!
WordPress アップグレード用の定数
WordPressで自動更新したい時のパーミッション、もしくはFS_METHOD手動設定やめようって話
WordPressのアップグレードやプラグインの更新をFTP画面なしで行う方法
エクセル 文字列を日付に変換する
WordPress画像圧縮プラグイン(無料版) 5つの中でどれが一番圧縮できるかを比較してみた
WordPressのデータをCSVでエクスポート/インポート
WP Tipsエクスポート先に「WP CSV Exporter」プラグインを入れる。
普通に入れる場合は問題ないと思うが、ZIPを自分で展開するときは、以下のフォルダに書き込み属性を付けておく。
CSVファイルは UTF8になっているので、EXCELに入れるときはそのまま読まないでインポートする
EXCELで加工したあと、CSVに書き出す。
この場合、項目が引用符(ダブルコーテーション)で囲まれないので、テキストエディタで適宜加工する。
すでに引用符で囲まれていた場合は、正規表現で置換。
インポート先に「Really Simple CSV Importer」プラグインを入れる。
元データはゴミ箱に入れてから完全削除する。
WordPressのインポート最大容量を増やす
WP Tips大きなデータファイルをインポートする場合、標準の4MBでは足りないことがほとんどです。
nginxとphp-frmを入れている環境で最大値を増やすには次の箇所を確認します。(やれるところはすべてやる)
※ 最後の php-frmの設定以外効いていないのがミソ!
「504 Gateway Time-out」が出るときも同様です。
php.iniの場所確認
php.iniの編集
nginx.confの編集
php-fpm設定の編集
関係あるかどうかわかりませんが、AWS(EC2)のロードバランサーのタイムアウトも延長しておきました。
reloadで十分ですが、念のため再起動します。
ここまでやると、最大値が10MBになります。たぶん。
最後の /etc/php-fpm.d/www.conf を書き換えないで実行するとタイムアウト系のエラーが出ます。
Amazon LinuxにSERPOSCOPEを入れる
Tips, サーバ管理1.Javaのバージョンを確認する
2.yumを更新する(yumリポジトリの更新)
3.Java8をインストールする
4.Javaコマンドのバージョンを切り替える
5.Javaのバージョンを確認する
6.AWS(EC2)のセキュリティグループ(インバウンド)で 7134ポートを開く
7.SERPOSCOPEをダウンロードして動作させる
8.起動時に自動実行させる
レガシー環境で動作しているサイトの常時SSL化
PostgreSQL, TipsUbuntu10.04 で、EC-CUBE 2.4.4 と WordPress 3.0.1 が動いているという、今となってはかなり特殊な(レガシーな)環境で動作しているサイトの常時SSL化をいたします。(備忘録)
1.WordPressのデータダンプ
2.データダンプの書き換え(http ⇒ https)
3.Let’s Encrypt (dehydrated)を入れる
4.apache2 への組み込み
5..htaccess の書き換え(http ⇒ https)
6.データダンプからデータベースを書き換え
7.WordPressテーマの書き換え
8.EC-CUBEの書き換え
10.eth0がリネームされ、ネットワークが使えない時
11.PostgreSQLが壊れていた場合(pg_xlog不整合でサービスが起動せず)
12.さくらのVPSでテスト環境を作る