[Linux] CentOS 6サーバ構築メモ その2

  • このエントリーをはてなブックマークに追加

まだまだ設定することあるので、前回の続きです。
Postfix、MySQLを設定し、MovableTypeとCandyCane(えっ?)を動かせるようにします。SSLも導入します。
※CandyCaneは開発中のRedmineのPHP版クローン

Postfix

まずはpostfixを突っ込んで…と思ったらすでにインスコされてました。
環境によってはそのまま起動すれば使えたりしますが、うちで使ってるプロバイダはメール送信を規制しているので、ISPの提供するSMTPサーバーをリレーして送信するようにします。

まずはmain.cfの設定。

cat << _EOS_ >> /etc/postfix/main.cf
myhostname = mydomain.example.org
relayhost = [smtp.example.com]:587
smtp_sasl_auth_enable = yes
smtp_sasl_password_maps = hash:/etc/postfix/relay_password
smtp_sasl_security_options = noanonymous
_EOS_

お次はSMTP認証で使うユーザ名とパスワードの設定。ISPから与えられてるやつです。

cat << _EOS_ > /etc/postfix/relay_password
smtp.example.com:587     username:password
_EOS_

postmap hash:/etc/postfix/relay_password

あとは再読み込みして終わり。

service postfix reload

試しにPHPを経由して送信してみます。

php -r "mail('user@example.org', 'This is Test', 'Test');"

MySQL

いつもどおりyumで取ってきますが、remi版のPHPを入れたので、PHPとの連携はremi版のMySQLに依存します。

yum -y --enablerepo=remi install mysql mysql-server

んで、早速起動。初回起動時にデータの初期化が走ります。

chkconfig mysqld on
service mysqld start

ユーザの設定をします。外部には公開しないのでlocalhostのみとします。
rootと管理権限の無いユーザがひとつあれば十分です。そのユーザをmasterとします。

mysql -u root << _EOS_
DROP DATABASE test;
DELETE FROM mysql.user WHERE User != "root" OR Host != "localhost";
DELETE FROM mysql.db;
FLUSH PRIVILEGES;
SET PASSWORD FOR "root"@"localhost" = PASSWORD("hogehogepassword");
GRANT USAGE ON *.* TO master@"localhost" IDENTIFIED BY "fugafugapassword";
GRANT ALL ON *.* TO master@"localhost";
_EOS_

localhostのユーザしか認めないので当然MySQL用のポートは開けません。かといってphpMyAdminなどは使う気もありません。
SSHトンネリングしてWindowsからGUIのフロントエンドを使うまでです。なのでSSHトンネリングに対応しているHeidiSQLをよく使っています。ただこのアプリ、VARBINARYとかバイナリ系の表示にやや不都合があるんですよね…
TeraTermなどを使う場合はA5:SQL Mk-2などもお勧め。

オレオレSSL

nginxでSSLを使うための鍵と証明書を自身で発行します。もちろんパスフレーズは抜きで。
ここってほとんどテンプレ化されてると言ってもいいくらいなので誰がやっても同じになると思われ…

cd /etc/nginx
openssl genrsa -des3 -out server.key 1024
openssl req -new -key server.key -out server.csr
cp server.key server.key.org
openssl rsa -in server.key.org -out server.key
openssl x509 -req -days 365 -in server.csr -signkey server.key -out server.crt

CSR発行時はインタラクティブに入力する必要があります。適当でOKです。

CandyCane

Redmineもどきを入れます。
まずはMySQLに専用データベース作成。

mysql -u root -phogehogepassword >> _EOS_
CREATE DATABASE candycane;
_EOS_

php-mysqlは必須ですが、念のためphp-mbstringも入れておきます。

yum -y --enablerepo=remi install php-mysql php-mbstring

本体を取ってきて適当なところに設置。ローカルユーザで行います。app/pluginのパーミッションについてはまだreadmeに書かれていないようです。

cd /home/web
wget https://github.com/downloads/yandod/candycane/candycane-v0.8.5.tar.gz
tar zxvf candycane-v0.8.5.tar.gz
mv yandod-candycane-3627e10 candycane
cd candycane
chmod -R 777 app/config
chmod -R 777 app/files
chmod -R 777 app/tmp
chmod -R 777 app/plugin

nginxのバーチャルホスト設定に追記します。

cat << _EOS_ >> /etc/nginx/conf.d/virtual.conf
server {
     listen 443 default ssl;
     ssl on;
     ssl_certificate server.crt;
     ssl_certificate_key server.key;
     server_name candycane.example.com;
     index index.php;
     root /home/web/candycane/app/webroot;

     if (!-e $request_filename) {
          rewrite ^/(.+)$ /index.php?url=$1 last;
          break;
     }

     location ~ \.php$ {
          fastcgi_param HTTPS on;
          fastcgi_intercept_errors on;
          fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
          include fastcgi_params;
          fastcgi_pass app_php;
     }

     location ~ /\.ht {
          deny all;
     }
}
_EOS_

現状だとエラーが起きても出力されないので、PHP-FPMの設定を書き足します。
あと5.3恒例のtimezone設定。

cat << _EOS_ >> /etc/php-fpm.d/www.conf
php_admin_value[display_startup_errors] = on
php_admin_value[display_errors] = on
php_admin_value[error_reporting] = 22527
_EOS_

sed -i -e &quot;s/^;\(date.timezone =\)$/\1 \&quot;Asia\/Tokyo\&quot;/&quot; /etc/php.ini | grep timezone

HTTPSのポートを開けたら仕上げ。

sed -i -e &quot;s/\(^-A INPUT -j REJECT\)/-A INPUT -m state --state NEW -m tcp -p tcp --dport 443 -j ACCEPT\n\1/&quot; /etc/sysconfig/iptables

service iptables restart
service ngnx reload

httpsでブラウザからサーバを叩いてみればCandyCaneのセットアップが立ち上がるはずです。
他のアプリも同様の要領でいけるはず。せっかくnginxなんで静的ファイルはキャッシュさせるといいですね。

そろそろJava動かすべー。
ツッコミなどあればどうぞ!

  • このエントリーをはてなブックマークに追加

SNSでもご購読できます。




コメントを残す