MySQL、PHP、PhpMyAdminの導入と設定

さくらのスタンダードで開いていたWordPressのブログを、さくらのVPSに引っ越すための最後の準備。

WordPressを動かすには必須のPHPと、DBをGUIで操作できるPhpMyAdminの導入と設定をしよう。

  • MySQLの導入と設定
  • PHPの導入と設定
  • PhpMyAdminの導入と設定

さくらのVPS設定シリーズ、下記も良かったらどうぞ。

追記で設定を大きく見直したので、参考にするならそちらが適切かと。

スポンサーリンク

■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のインストールだけ!