さくらVPS設定その2 Apache+MySQL+WordPress

さくらVPS設定まとめ の子エントリになります。


目次

                                                                      • -

Apache

ユーザ・SSH・ファイアウォールの最低限の設定を終えれば、次はWebサイト等を公開したいのでApacheを設定します。インストール作業と、セキュリティで不安な部分を除去する設定を行った後、Apache起動を起動します。

% yum install httpd -y                # yumからhttpd(apache) インストール
% yum info httpd                      # インストールしたhttpdの情報を確認
% vi /etc/httpd/conf/httpd.conf       # httpdの設定を編集
  ServerTokens Prod                   # サーバー応答ヘッダの内容を制限
  ServerName hostname.sakura.ne.jp:80 # サーバー名をとりあえず設定
                                      # Indexes削除(ファイル一覧を非表示)
  Options Includes ExecCGI FollowSymLinks 
  AllowOverride All                   # .htaccessによる上書き許可
  ServerSignature Off                 # エラー出力時にフッター情報を非表示
  <Directory "/var/www/icons">
    ... Options MultiViews ...        # /var/www/icons/のIndexed削除
  </Directory>
  # AddDefaultCharset UTF-8           # デフォルト文字コードを設定しない
  AddHandler cgi-script .cgi .pl      # CGIで.cgiと.plを有効化
% apachectl configtest                # 設定に構文誤りがないかチェック
% apachectl start                     # A p a c h e、始 動
% chkconfig httpd on                  # httpdサービスを自動起動設定
% chkconfig --list httpd              # 設定反映を確認

MySQL

次はMySQLの設定を行います。これは特別な設定を行わなくても、インストールして起動させるだけでも普通にOKですね。文字コードの設定で困ることが多いので、default-charaset-setを設定しておきます。後はブラウザでMySQLを操作出来るphpmyadminを導入します。

% yum -y install mysql-server         # yumからMySQLインストール
                                      # MySQLの元の設定のバックアップをとります
% cp /etc/my.cnf /etc/my.cnf.yyyymmdd_default
% vi /etc/my.cnf                      # MySQLの設定を編集
  [client]                            # ここから下を追加します
  default-character-set=utf8
  
  [mysql]
  default-character-set=utf8
  
  [mysqldump]
  default-character-set=utf8
% /etc/rc.d/init.d/mysqld start       # MySQLサービスを開始
% chkconfig mysqld on                 # MySQLサービスを自動起動設定
% chkconfig --list mysqld              # 設定反映を確認
% mysql_secure_installation           # パスワード等の設定をウィザード形式で行う
                                      # new passwordの設定以外はEnter連打でOK
                                      # phpmyadminを導入します
                                      # phpと、phpmyadminに必要なものを導入
% yum install php php-mbstring php-mcrypt
% cd /tmp                             # サイトからダウンロードしてきます
% wget http://sourceforge.net/projects/phpmyadmin/files%2FphpMyAdmin%2F2.11.11.1%2FphpMyAdmin-2.11.11.1-all-languages.zip
% unzip phpMyAdmin-2.11.11.1-all-languages.zip
% mv phpMyAdmin-2.11.11.1-all-languages /var/www/phpmyadmin
% rm -f phpMyAdmin-2.11.11.1-all-languages.zip
% cd /var/www/phpmyadmin              # /var/www/以下に置くことにします
                                      # サンプルを元に設定ファイルを作成
% cp config.sample.inc.php config.inc.php
                                      # apacheグループのapacheユーザ所有に変更
% chown -R apache.apache /var/www/phpmyadmin/
% chmod 660 config.inc.php            # 所有者とグループに読み書き権限を付与
% yum -y install expect               # ランダム文字列自動作成ソフトを導入
% mkpasswd -l 46                      # 46文字のランダムな文字列を生成
  hogefuga...
% config.inc.php                      # 設定ファイルを編集
                                      # 暗号生成用文字列にランダムな文字列を設定
  $cfg['blowfish_secret'] = '...';    # これでログイン時にパスワードを聞かれます
  $cfg['Lang'] = 'ja-utf-8';          # 言語を日本語でUTF-8に設定
% vi /etc/httpd/conf.d/phpmyadmin.conf# phpmyadmin向けのApacheの設定ファイルを作成
  Alias /phpmyadmin /var/www/phpmyadmin # http://<servername>/phpmyadmin へのアクセスをphpmyadminの実体がある場所へ誘導
% /etc/rc.d/init.d/httpd reload       # Apache再始動
                                      # http://<servername>/phpmyadmin へアクセスして確認してみましょう

WordPress

WordPressを使う人は多いと思うので導入してみます。PHPは書けないので個人的にブログシステムはRailsで作られたLokkaとかを利用したいのですが、仕事の依頼が来たときにパパっとWordPressで構築できると素敵ですね。導入方法としては、ダウンロードして適切な場所に置いてDBを作成してあげるだけです。DBは普段rootユーザしか使ってなかったので、新規にwordpressユーザを作るあたりで少し調べました。サービスごとにユーザを作ってあげるのが運用的には良いのでしょうか。ここらへんもまだまだ学ばないといけないことは多いですね。

$ mysql -u root -p                    # MySQLにログインしてWordPress用DBを作成します
mysql> show databases;                # まあ既存のDBでも確認しておきましょう
mysql> create database wordpress;     # wordpress というDBを作成
                                      # パスワード付きのwordpressユーザを作成して上記DBに権限を与えます
mysql> grant all privileges on wordpress.* to wordpress@localhost identified by 'password';
$ su -
% yum -y install php-mysql            # PHP用のMySQLドライバを導入
% cd /tmp                             # WordPressを公式からダウンロード
% wget http://ja.wordpress.org/wordpress-3.0.4-ja.zip
% unzip wordpress-3.0.4-ja.zip
% rm -f wordpress-3.0.4-ja.zip
% mv wordpress /var/www               # /var/www 以下に配置
% cd /var/www                         # サンプルを元に設定ファイルを作成
% cp wp-config-sample.php wp-config.php
% vi /var/www/wordpress/wp-config.php # 設定ファイルを編集
  DB_NAME => 'wordpress'              # wordpress用DBの名前を入力
  DB_USER => 'wordpress'              # DB用ユーザ名を入力
  DB_PASSWORD => 'password'           # DB用パスワードを入力
% vi /etc/httpd/conf.d/wordpress.conf # wordpress向けのApache設定ファイルを作成
  Alias /blog /var/www/wordpress      # phpmyadmin同様Aliasを張る
% /etc/rc.d/init.d/httpd reload       # Apache再始動
                                      # /wordpressへアクセスして確認してみましょう