さくらのスタンダードで開いていたWordPressのブログを、さくらのVPSに引っ越すための最後の準備。
WordPressを動かすには必須のPHPと、DBをGUIで操作できるPhpMyAdminの導入と設定をしよう。
- MySQLの導入と設定
- PHPの導入と設定
- PhpMyAdminの導入と設定
さくらのVPS設定シリーズ、下記も良かったらどうぞ。
- VPSでOSを再インストールしたので丁寧にメモ
- さくらのVPSでSFTPする
- Nginxの導入と設定(マルチドメイン&カスタムパーマリンク)
- MySQL、PHP、PhpMyAdminの導入と設定 ←この記事
- 劇遅サーバの設定を見直したら劇的に改善した
- 【追記】さくらのVPS+WordPress+PHP+Nginxのまとめ
- 【追記】さくらのVPS+WordPress+PHP+Nginxのまとめ2(実設定)
追記で設定を大きく見直したので、参考にするならそちらが適切かと。
■MySQLの導入と設定
DB関連のインストール
$ sudo yum -y install mysql-server
DBを起動させる。
$ sudo /etc/rc.d/init.d/mysqld start
インストールプログラムを走らせて、初期設定をする。 ここでDBのrootパスワードも設定する。
$ sudo mysql_secure_installation
設定が終わったら、自動起動の設定と確認。
$ sudo chkconfig mysqld on
$ chkconfig –list mysqld
そのうち余裕ができたら、MySQLのチューニングもしてみたいな。 チェックスクリプトを入手して実行すると、アレコレ改善点がオススメされる。
$ wget //raw.github.com/rackerhacker/MySQLTuner-perl/master/mysqltuner.pl
$ chmod +x mysqltuner.pl
$ sudo ./mysqltuner.pl
この実行結果を基に設定ファイルを書き換えるんだけど、まぁ運用を始めてしばらくしてからココでも見ながらやってみよう。
$ sudo vim /etc/my.cnf
さっき設定したrootのパスワードを使ってDBにログインして、WordPress用にDBを作成しておく。
$ mysql -u root -p
例えば、下記の設定でDBを作るとする。 ちなみに、ここは自分で好きな名前を設定すれば良し。
DB名称: YourDBname
ユーザ名: UserName
パスワード: Password
この設定だと、MySQLへのコマンドはこうなる。
mysql> create database YourDBname;
mysql> grant all privileges on YourDBname.* to UserName@localhost identified by “Password“;
mysql> flush privileges;
DBの準備はこれで終わり。
■PHPの導入と設定
まずは関連パッケージのインストール。 何回か試してみたんだけど、このタイミングでmcryptとgdをインストールしておかないと、後では依存性エラーでインストールできなかった。
$ sudo yum -y install php php-fpm php-mcrypt.x86_64 php-gd
$ sudo yum -y install –enablerepo=remi php-cli php-mbstring php-mysql php-pecl-apc php-fpm
設定ファイルを編集する。
$ sudo vim /etc/php-fpm.d/www.conf
Nginx用にユーザ名を設定。
; RPM: apache Choosed to be able to access some dir as httpd
user = apache
↓
user = nginx
同じくグループ名も変更する。
; RPM: Keep a group allowed to write in log dir.
group = apache
↓
group = nginx
使っていて504 Gateway Time Outが出るようだったら下記も。
;request_terminate_timeout = 0
↓
request_terminate_timeout = 300
最下行のあたりに下記を追加して、上書き保存。
php_admin_flag[expose_php] = off
php設定ファイルの編集。 この設定ファイルは長いので、[/]に続いて検索語を入力して探しながら修正すると楽ちん。
$ sudo vim /etc/php.ini
セキュリティ的に怖いので、PHPのバージョン情報などは隠す。
expose_php = On
↓
expose_php = Off
504 Gateway Time Outが出るようだったら下記も。 この設定はNGINXTIPSを参照した。
max_execution_time = 30
↓
max_execution_time = 300
タイムゾーンを東京に。
;date.timezone =
↓
date.timezone = Asia/Tokyo
メモリの最大値。
memory_limit = 128M
↓
memory_limit = 1024M
POSTフォームでアップロードできる容量制限の緩和。
post_max_size = 8M
↓
post_max_size = 12M
最大でアップロードできるファイル容量制限の緩和。
upload_max_filesize = 2M
↓
upload_max_filesize = 12M
もちろん日本語仕様で。
;mbstring.language = Japanese
↓
mbstring.language = Japanese
文字コードの指定。
;mbstring.internal_encoding = EUC-JP
↓
mbstring.internal_encoding = UTF-8
マルチバイト文字の入力を扱う設定。 autoだと問題があるのでpassを薦めるサイトもあるけど、特に問題は発生していない。
;mbstring.http_input = auto
↓
mbstring.http_input = auto
同様に出力側もautoで。 文字化けとか問題があるようならpassを試しても良いかも。
;mbstring.http_output = SJIS
↓
mbstring.http_output = auto
以下を最終行の;End:の上あたりに追記して、上書き保存して終了。
apc.enabled = 1
apc.shm_size = 288M
apc.max_file_size = 144M
apc.gc_ttl = 3600
apc.ttl = 7200
phpが問題無く起動したら、自動起動を設定して確認。
$ sudo /etc/init.d/php-fpm start
$ sudo chkconfig php-fpm on
$ sudo chkconfig –list php-fpm
■PhpMyAdminの導入と設定
GUIが無くてもコマンドで設定とかゴリゴリできる人は無くても良いかもしれないけど、やっぱりGUIは便利なのでPHP関連の操作ができるPhpMyAdminもインストールする。
$ sudo yum -y install phpmyadmin
DNSのAレコードにサブドメイン名を登録する。 自分でアクセスしやすい名前にしておけば良いだろう。
pma.nakayan.jp
Nginxにマルチドメイン設定ファイルを作る。
$ sudo vim /usr/local/nginx/conf/sites-available/pma.conf
設定内容はこんな感じで。 赤字の部分は自分のサイトに合わせて書き換える。
# For pma.nakayan.jp server { ??? listen 80; ??? server_name pma.nakayan.jp; ??? access_log? /var/log/nginx/access.pma.log; ??? location / { ??????? root?? /usr/share/phpmyadmin; ??????? index? index.php; ??? } ??? location ~ \.php$ { ??????? root?????????? html; ??????? fastcgi_pass?? 127.0.0.1:9000; ??????? fastcgi_index? index.php; ??????? fastcgi_param? SCRIPT_FILENAME? /usr/share/phpmyadmin$fastcgi_script_name; ??????? include??????? fastcgi_params; ??? } }
マルチドメイン公開用のディレクトリに、作成したファイルへのリンクを張る。
$ sudo ln -s /usr/local/nginx/conf/sites-available/pma.conf /usr/local/nginx/conf/sites-enable/
NginxがPHPと連携して動作するように、ユーザ権限の付与。
$ sudo chown -R nginx.nginx /var/lib/php/session/
$ sudo chown -R nginx:nginx /usr/share/phpmyadmin/
サンプル設定ファイルをコピーして、本番用の設定ファイルにする。
$ sudo cp /usr/share/phpmyadmin/config.sample.inc.php /usr/share/phpmyadmin/config.inc.php
これでPhpMyAdminが表示されると思うけど、こんなエラーが出る。
設定ファイルが秘密のパスフレーズ(blowfish_secret)を必要とするようになりました
さっきコピーした設定ファイルを編集して、秘密のパスフレーズを46桁くらい記入する。
$ sudo vim /usr/share/phpmyadmin/config.inc.php
パスフレーズは適当に決めても良いし、パスワード自動生成サイト等で生成してもいい。
$cfg[‘blowfish_secret’] = ”; /* YOU MUST FILL IN THIS FOR COOKIE AUTH! */
↓
$cfg[‘blowfish_secret’] = ‘CCRvpmgpngyKg8zis7WfNVG7Kzmq5Efo7PbcQCeNrjlBPq‘;
上書き保存して再度アクセスする。
最初のDB操作で、wordpress用で作ったユーザでログインできたらOK。
さぁ、後はWordPressのインストールだけ!