使えるねっとからServersMan VPS@dtiに引越し
使えるねっとのVPSは結構安定してたんだけど、かけてる値段ほど使い切ってなかったので月額490円のdtiに引っ越すことにした。
使えるねっとでは
- zabbixサーバー
- zencartを使ったショッピングサイトのテストサーバー
- sendmailを使ったメール配信サービスのテストサーバー
を運用してたので、これらを移行することにする。
契約したのはServersMan VPS Entryプランのシンプルプラン。
何はともあれ最新版に
yum -y update
暫定でのセキュリティ対策
後々かっちりやるけど設定が完了するまでの暫定セキュリティを。
sshdをpubkeyauthに
RSAAuthentication yes PubkeyAuthentication yes AuthorizedKeysFile .ssh/authorized_keys PermitRootLogin no
リモートログイン用のアカウントの作成と公開鍵の登録
useradd remoteuser passwd remoteuser su remoteuser cd ~ mkdir .ssh chmod 700 .ssh echo '<putty-genで作った公開鍵>' >id_rsa.pub ssh-keygen -i -f id_rsa.pub >>authorized_keys chmod 400 authorized_keys
rpmforgeリポジトリのインストール
rpm --import http://dag.wieers.com/rpm/packages/RPM-GPG-KEY.dag.txt wget http://packages.sw.be/rpmforge-release/rpmforge-release-0.3.6-1.el5.rf.i386.rpm rpm -ivh rpmforge-release-0.3.6-1.el5.rf.i386.rpm
/etc/yum.repos.d/rpmforge.repo のenabledは0に設定しておく。
mysqldとphpのインストール
mysqlサーバーとphpをインストール。ついでにmod_sslも。
yum install php mysql-server php-pear mod_ssl
yum install -y pecl php-devel httpd-devel pecl install APC echo 'extension=apc.so' >/etc/php.d/apc.ini
mysqlの設定
mysqlサーバーの設定をしておく
/etc/my.cnf
[mysqld] datadir=/var/lib/mysql socket=/var/lib/mysql/mysql.sock user=mysql old_passwords=1 default-character-set = utf8 [mysql.server] user=mysql basedir=/var/lib default-character-set = utf8 [mysqld_safe] log-error=/var/log/mysqld.log pid-file=/var/run/mysqld/mysqld.pid
default-character-setを設定する。
mysqlの起動とパスワードの設定
mysqladmin -u root password 'mysqlpassword'
phpmyadminのインストールと設定
yum install --enablerepo=rpmforge -y phpmyadmin
/usr/share/phpmyadmin/config.inc.phpの$cfg['blowfish_secret']に適当な文字列を入力しておく。
sslでのみ使えるようにhttp/httpsのディレクトリを分けておく。
mkdir -p /var/www/htmls chown -R apache.apache /var/www/htmls
DocumentRoot "/var/www/htmls"
で、シンボリックリンクを。
ln -s /usr/share/phpmyadmin /var/www/htmls/phpmyadmin
このままだとsession_startでPermission deniedが出る
[Sat Aug 14 13:33:07 2010] [error] [client 202.32.230.207] PHP Warning: session_start() [<a href='function.session-start'>function.session-start</a>]: open(/var/lib/php/session/sess_pqic2r8at6tgfmubgoinpa26t654olrt, O_RDWR) failed: Permission denied (13) in /usr/share/phpmyadmin/libraries/session.inc.php on line 87 [Sat Aug 14 13:33:07 2010] [error] [client 202.32.230.207] PHP Warning: Unknown: open(/var/lib/php/session/sess_pqic2r8at6tgfmubgoinpa26t654olrt, O_RDWR) failed: Permission denied (13) in Unknown on line 0 [Sat Aug 14 13:33:07 2010] [error] [client 202.32.230.207] PHP Warning: Unknown: Failed to write session data (files). Please verify that the current setting of session.save_path is correct (/var/lib/php/session) in Unknown on line 0
これは/var/lib/php/sessionがroot.apache-770で、apacheの起動ユーザーがdaemonになっててアンマッチになってるから。
ここはapacheの起動ユーザーをいじることに。
/etc/httpd/conf/httpd.conf
# # If you wish httpd to run as a different user or group, you must run # httpd as root initially and it will switch. # # User/Group: The name (or #number) of the user/group to run httpd as. # . On SCO (ODT 3) use "User nouser" and "Group nogroup". # . On HPUX you may not be able to use shared memory as nobody, and the # suggested workaround is to create a user www and use that user. # NOTE that some kernels refuse to setgid(Group) or semctl(IPC_SET) # when the value of (unsigned)Group is above 60000; # don't use Group #-1 on these systems! # User apache Group apache
で、apache再起動。
/etc/init.d/httpd restart
httpdの設定とVirtualHost
httpdをざざっと設定していく
<Directory "/var/www/html"> #httpd2以降からAllowOverrideのデフォルトがNoneになってるらしい。 AllowOverride All </Directory> #virtualHost用のホスト設定 NameVirtualHost 182.163.78.148:80 NameVirtualHost 182.163.78.148:443
続いてVirtualHostを設定していく。
設定ルールとして、
- ドメインの追加は vhost.<ドメイン名>.confファイルに
- VirtualHostのルートは/var/www/vhosts/<ドメイン名>に
- SSLのVirtualHostのルートは/var/www/svhosts/<ドメイン名>に
- VirtualHostのログは/var/log/httpd/<ドメイン名>/に落とす
- IPアドレスや未登録ホストから来た時の設定は default.vhost.confに*1
- 基本NameVirtualHostで指定しワイルドカードは使用しない。
ってとこで。
まずはデフォルト設定
/etc/httpd/conf.d/default.vhost.conf
<VirtualHost 182.163.78.148:80> ServerAdmin qyen.org@gmail.com DocumentRoot /var/www/html ServerName v-182-163-78-148.ub-freebit.net </VirtualHost> <VirtualHost *:443> ServerName v-182-163-78-148.ub-freebit.net SSLEngine off Redirect permanent / http://182.163.78.148/ </VirtualHost>
匿名でSSLにアクセスしてきたらデフォルトにリダイレクトするように設定。
mod_sslのVirtualHostの設定を殺す
/etc/httpd/conf.d/ssl.confのVirtualHostディレクティブをまるごと消す。
次にVirtualHostを設定
/etc/httpd/conf.d/vhost.nick-ziele.info.conf
<VirtualHost 182.163.78.148:80> ServerName www.nick-ziele.info ServerAlias www.nick-ziele.info nick-ziele.info CustomLog /var/log/httpd/nick-ziele.info/access_log combined DocumentRoot "/var/www/vhosts/nick-ziele.info" <Directory "/var/www/vhosts/nick-ziele.info"> AllowOverride All allow from all Options Indexes Includes ExecCGI FollowSymLinks </Directory> </VirtualHost> <VirtualHost 182.163.78.148:443> ServerName www.nick-ziele.info ServerAlias www.nick-ziele.info nick-ziele.info SSLEngine off # SSLProtocol all -SSLv2 # SSLCipherSuite ALL:!ADH:!EXPORT56:RC4+RSA:+HIGH:+MEDIUM:+LOW:+SSLv2:+EXP # SSLCertificateFile /etc/httpd/ssl/nick-ziele.info/ssl.crt # SSLCertificateKeyFile /etc/httpd/ssl/nick-ziele.info/ssl.key # SSLCACertificateFile /etc/httpd/ssl/nick-ziele.info/ca.pem # SSLCertificateChainFile /etc/httpd/ssl/nick-jaguar.com/sub.class1.server.pem SetEnvIf User-Agent ".*MSIE.*" nokeepalive ssl-unclean-shutdown ErrorLog /var/log/httpd/nick-ziele.info/ssl_error_log CustomLog /var/log/httpd/nick-ziele.info/ssl_access_log combined DocumentRoot "/var/www/svhosts/nick-ziele.info" <Directory "/var/www/svhosts/nick-ziele.info"> AllowOverride All allow from all Options Indexes Includes ExecCGI FollowSymLinks </Directory> </VirtualHost>
SSLのキーが用意できるまでSSLEngineをoffで動作させとく。
ディレクトリを作成
mkdir -p /var/www/vhosts/nick-ziele.info mkdir -p /var/www/svhosts/nick-ziele.info mkdir -p /var/log/httpd/nick-ziele.info
サーバーを再起動。
/etc/init.d/httpd restart