[AWS] Bitnami WordPress構築2 – WP設定編
AWS ( Amazon Web Services )上で、Bitnami WordPress をインストールする手順その2。
前項でAWSの設定を行い、その続き。
Contents
WordPress パスワードを確認
- 「インスタンス」 → 対象インスタンス選択
- 「アクション」 → 「インスタンスの設定」 → 「システムログの取得」
- ログからパスワード確認(ユーザー名はデフォルトで 「user」 )
システムログに書かれたログイン情報は、インスタンス起動後 24 時間だけ確認できる。24 時間をすぎると消える。
システムログから確認できなくなった場合は、 SSH ログインして以下のコマンドで確認できる。
Find Application Credentialscat ./bitnami_credentials
- ユーザー名・パスワード変更
必須ではないが、WP ログイン後、ユーザー名とパスワード変更したほうがいい
<方法1>
新しく管理者権限のユーザーを追加し、デフォルトの 「user」 アカウントを削除する
* デフォルトの 「user」 アカウントが削除できない場合は、パスワードだけでも変えておく<方法2>
データベースで bitnami_wordpress を選択し、SQL を発行する
・パスワードを変更する SQL
ユーザー名を変更する SQLUPDATE wp_users SET user_pass=MD5('NEW-PASSWORD') WHERE ID='1';
UPDATE wp_users SET user_login='NEW-USERNAME' WHERE ID='1';
SSH 接続 ( Mac の場合)
ターミナルを起動し、コマンドを実行する ( Windows の場合デフォルトではターミナルが入っていないため、Tera Term とかをインストールして使う)
- インスタンス作成時にダウンロードした pem ファイルを、「~/.ssh/」 フォルダに移動(またはコピー)する
cp コピー元フォルダ/ファイル名.pem ~/.ssh/ファイル名.pem
- 権限を 600 に設定
sudo chmod 600 ~/.ssh/ファイル名.pem
- SSH ログイン
※ @ の前の 「bitnami」 は、ユーザ名ssh -i ~/.ssh/ファイル名.pem bitnami@SERVER-IP
Amazon マシンイメージ (AMI) で Amazon Linux 系を選択した場合、ユーザー名は 「ec2-user」 、 Ubuntu の場合、 「ubuntu」 or 「root」になる。 前は、 bitnami でも 「ubuntu」 だったので、ログインできない場合は、 Bitnami 公式ドキュメントでユーザー名を確認すること。 Bitnami 公式ドキュメント
- PHPの
mail()
関数を有効にする
Bitnami AMI にはデフォルトでは sendmail が入っておらず、WordPress やサイトからメールの送受信ができないのでインストールするsudo apt-get install sendmail
php.ini を修正
php.ini の場所:/opt/bitnami/php/etc/php.ini
(デフォルトで記載済みなので、コメントアウトを外せば OK )sendmail_path = "env -i /usr/sbin/sendmail -t -i"
php.ini を修正後は apache 再起動だけではダメ。必ず php-fpm も再起動する!
または、 Bitnami サービス全部再起動でも OKsudo /opt/bitnami/ctlscript.sh restart php-fpm sudo /opt/bitnami/ctlscript.sh restart apache
ちなみに、全部再起動だと、https ( apache ) , php-fpm , mysql が再起動するsudo /opt/bitnami/ctlscript.sh restart
php-fpm 再起動時に、 wp-config.php を読みにいっているので、参考:bitnami communitychmod 660
とか、daemon ( = Apache ) で読み込み可にしておくこと! 読込み権限がないと Permission エラーになる.
- Bitnami のロゴを消す
Bitnami WordPress を使うと、右下にロゴマークが現れるのでこれを非表示にする
Apache を再起動するsudo /opt/bitnami/apps/wordpress/bnconfig --disable_banner 1
sudo /opt/bitnami/ctlscript.sh restart apache
phpMyAdmin の有効化
- httpd-app.conf 編集
場所 : /home/bitnami/apps/phpmyadmin/conf/httpd-app.confこう書いてあるのを、
こう書き換えるAllow from 127.0.0.1 Require local
Allow from All Require all granted
- Apache 再起動
sudo /opt/bitnami/ctlscript.sh restart apache
- DBへのログイン情報は wp-config.php で確認する
場所 :/home/bitnami/apps/wordpress/htdocs/wp-config.php
- これで、http(s)://{インスタンスのIP or ドメイン名}/phpmyadmin/ にアクセスすると、phpMyAdminにログインできる
HTTPS 化の設定
- wp-config.php の編集
場所:/opt/bitnami/apps/wordpress/htdocs/wp-config.php
*require_once(ABSPATH . 'wp-settings.php');
の記述よりも前に記述することdefine('FORCE_SSL_ADMIN', true); if (strpos($_SERVER['HTTP_X_FORWARDED_PROTO'], 'https') !== false) $_SERVER['HTTPS']='on';
以下を記述すると、動かなくなった。。。環境によって?、これだとダメらしい。既存コードをコメントアウトして、新たに下記コードを追記
if (isset($_SERVER['HTTP_X_FORWARDED_PROTO']) && $_SERVER['HTTP_X_FORWARDED_PROTO'] == 'https')
$_SERVER['HTTPS'] = 'on';//define('WP_SITEURL', 'http://' . $_SERVER['HTTP_HOST'] . '/'); //define('WP_HOME', 'http://' . $_SERVER['HTTP_HOST'] . '/'); define('WP_SITEURL', 'https://ドメイン名/'); define('WP_HOME', 'https://ドメイン名/');
ファイルパーミッションの設定
- 下記コマンドを実行する
sudo chown bitnami:daemon /opt/bitnami/apps/wordpress/htdocs sudo find /opt/bitnami/apps/wordpress/htdocs/ -type f -exec chmod 664 {} \; sudo find /opt/bitnami/apps/wordpress/htdocs/ -type d -exec chmod 2775 {} \;
WordPress と SFTP の両方からファイル編集や新規作成するためには、Bitnami ユーザーと Apache ユーザーの両方にアクセス権限が必要になる。wp-config.php への修正が終わっていれば、オーナーのみ「読み取り」「書き込み」可能なパーミッションに変更する
( Apache に権限がないと、WordPressの管理画面から、プラグインのインストールや WordPress 本体の更新もできない)
Bitnami では、 Apache グループは「 daemon 」というグループ名になっている。 (通常、Apache グループ名は「 apache 」)chmod 600 /opt/bitnami/apps/wordpress/htdocs/wp-config.php
sendmail の cron 停止
/var/log/syslog
に、下記のログが大量に出力される。
CRON[0010]: (smmsp) CMD (test -x /etc/init.d/sendmail && test -x /usr/share/sendmail/sendmail && test -x /usr/lib/sm.bin/sendmail && /usr/share/sendmail/sendmail cron-msp)
これが何なのかまだよく分からないけれど、ログが出力されなようにこの cron の該当部分をコメントアウトする。
$ sudo vi /etc/cron.d/sendmail
#*/20 * * * * smmsp test -x /etc/init.d/sendmail && test -x /usr/share/sendmail/sendmail && test -x /usr/lib/sm.bin/sendmail && /usr/share/sendmail/sendmail cron-msp