急遽さくらVPS上にWordPress環境を作る必要がでたのでメモ。
まずは基礎環境を構築、その後セキュリティを強化し独自ドメインを展開するところまでやりたいと思います。
実際のところ
作業
基礎環境といえる環境をつくるため、下記の手続き
公式ドキュメントはCentOS前提で進んでいますが、色々古く*2使い物にならないためUbuntu16系ですすみます
何につけても、まずはupdateしてパッケージを最新に。
$ sudo apt-get update
apache
$ sudo apt install apache2
接続設定"apache2.conf"をバックアップをとった状態で弄ります
$ sudo cp /etc/apache2/apache2.conf /etc/apache2/apache2.conf.bk $ sudo vi /etc/apache2/apache2.conf
こんな感じで
<Directory /var/www/> Options Indexes FollowSymLinks AllowOverride None Require all granted </Directory> ##上記の下に追記。Wordpress用の設定 <Directory /var/www/html/wordpress> AllowOverride All </Directory>
チェックツールで確認。タイポならここでエラーです
$ sudo apache2ctl configtest Syntax OK
$ sudo a2enmod rewrite $ sudo systemctl restart apache2
MySQL
$ sudo apt-get install mysql-server
MySQLの設定は対話型のアレで進みます。
初回のrootパスワード変更はn、それ以外Yで安全に
$ sudo mysql_secure_installation
MySQLをひらき
$ mysql -u root -p
DBを作成
mysql> CREATE DATABASE wordpress DEFAULT CHARACTER SET utf8 COLLATE utf8_unicode_ci;
php
$ sudo apt-get install php
WordPress本体
Wordpress用CLIツール"wp"を導入
ダウンロード先はtmpにしておきます
$ cd $ wget https://raw.githubusercontent.com/wp-cli/builds/gh-pages/phar/wp-cli.phar $ chmod +x wp-cli.phar $ sudo mv wp-cli.phar /usr/local/bin/wp
"wp"をつかって日本語化済Wordpressを入れます
$ /usr/local/bin/wp core download --locale=ja --path=/tmp/wordpress
下準備が整ったら、いよいよ/var/www以下に移動
管理権限を付加
$ sudo cp -a /tmp/wordpress/. /var/www/html/wordpress $ sudo chown -R root:www-data /var/www/html/wordpress
$ sudo chmod g+w /var/www/html/wordpress/wp-content $ sudo chmod -R g+w /var/www/html/wordpress/wp-content/themes $ sudo chmod -R g+w /var/www/html/wordpress/wp-content/plugins
Wordpress公式が提供しているランダムキーを入手します
こんな感じの文字列が出てくるはずです
$ cd $ wget https://api.wordpress.org/secret-key/1.1/salt/ $ cat index.html less index.html.3 define('AUTH_KEY', 'd;|+qwm(j9/VF,fO6@@ yaU~K|+2nxrE_|Df1: +tB.+3Nps2/%KfpId4fH @Hoc'); define('SECURE_AUTH_KEY', 'tpW>OY-H-s-1|-:~f}m&alHuA7yn-3st,((#Y(?6R(_4!@BpdwT~)yj`-2m/u9cU'); define('LOGGED_IN_KEY', ']<4:2kb;]jenicI<ze:g:PLhcS:WCbRt0C3^i(Anr3%(7{#dM),i2fGMNo[n^mf3'); define('NONCE_KEY', 'fo]FB#Gif o|TEccU-pq$ZY-9MlH-J~(p|(y0wmd Q-+&Clv.[d)L!xiv/.y2v@7'); define('AUTH_SALT', 'ltr26/3L^X9)gUrE*wZnnjDJcvRCQxSA {mSq|][sp+ncAAaPcM}JFi^wJPsKgN}'); define('SECURE_AUTH_SALT', 'i;met;A:&3b{?Efuz_|/EetWm@>xE~UB&r9|:z+$B9|IMyP+1]aq#|ZVf{41]D;Q'); define('LOGGED_IN_SALT', 'E,1%9^W|e-4K2h]dzk w#|<7qgVQy&M_:Q67MUCx.L]:u0-l:X4:|L,@[O8xS5jj'); define('NONCE_SALT', '9{.~F<@#kP@+|A~d^SXiC:%l.3p2pZd 9-|E/^R~ cpfA-~7;wM+5]PsW25tCYA');
これを、wp-config.phpの当該部分と置き換えます
$ cd /var/www/wordpres $ vi wp-config.php
VirtualHost
$ sudo cp /etc/apache2/sites-available/000-default.conf /etc/apache2/sites-available/010-wordpress.conf
<VirtualHost *:80> # ドメインがあれば設定、無い場合はコメントアウトのまま #ServerName www.example.com ServerAdmin webmaster@localhost DocumentRoot /var/www/html/wordpress ErrorLog ${APACHE_LOG_DIR}/error.log CustomLog ${APACHE_LOG_DIR}/access.log combined </VirtualHost>
$ sudo a2dissite 000-default $ sudo a2ensite 010-wordpress $ sudo systemctl restart apache2
外向きに開放する(IPTable/ufw)
肝心な設定がここ。
ここが終わってないと、外から確認できません。
私はここで2時間詰みました
$ sudo vi /etc/iptables/iptables.rules
真ん中の2行を追加し、外向きポートを開けます
でないと、真っ当に動きません
*filter :INPUT ACCEPT [0:0] :FORWARD ACCEPT [0:0] :OUTPUT ACCEPT [0:0] -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT -A INPUT -p icmp -j ACCEPT -A INPUT -i lo -j ACCEPT -A INPUT -m state --state NEW -m tcp -p tcp --dport 22 -j ACCEPT -A INPUT -p tcp --dport 80 -j ACCEPT -A INPUT -p tcp --dport 443 -j ACCEPT -A INPUT -j REJECT --reject-with icmp-host-prohibited -A FORWARD -j REJECT --reject-with icmp-host-prohibited COMMIT
更に
$ sudo ufw app list Available applications: Apache Apache Full Apache Secure OpenSSH
無事終わると
http://{{さくらVPSインスタンスのIP}}/にアクセスすると
待ちに待ったwordpress画面が