以前にも似たような記事を書いて、はてブが結構集まったりしていたのだけど、今回また再構築したので作業ログ。
CentOS5.5のインストール
今回はさくらVPSの管理画面からカスタムOSインストールにした。CentOS5.5はデフォルトなのでカスタムでやる必要はないのだが、ネットワークの設定とかホスト名とかもまとめてやれるし。ホスト名は、前もって逆引きを設定しておくと、デフォルトでホスト名が決まる。
SSH設定
/etc/ssh/sshd_config
Port 99922 #デフォルトの22から変える
ユーザの追加
useradd hoge
passwd hoge
公開鍵の設定
mkdir .ssh
chmod 700 .ssh
cd .ssh
vi authorized_keys #PuTTYgenで作った公開鍵をコピペ
chmod 600 authorized_keys
これでSSHに再ログインした後で、sshd_configをさらに編集。
PermitRootLogin off
PasswordAuthentication no
iptablesの設定
/etc/sysconfig/iptables
*filter
:INPUT ACCEPT [0:0]
:FORWARD ACCEPT [0:0]
:OUTPUT ACCEPT [0:0]
:RH-Firewall-1-INPUT - [0:0]
-A INPUT -j RH-Firewall-1-INPUT
-A FORWARD -j RH-Firewall-1-INPUT
-A RH-Firewall-1-INPUT -i lo -j ACCEPT
-A RH-Firewall-1-INPUT -p icmp --icmp-type any -j ACCEPT
-A RH-Firewall-1-INPUT -p 50 -j ACCEPT
-A RH-Firewall-1-INPUT -p 51 -j ACCEPT
-A RH-Firewall-1-INPUT -p udp --dport 5353 -d 224.0.0.251 -j ACCEPT
-A RH-Firewall-1-INPUT -p udp -m udp --dport 631 -j ACCEPT
-A RH-Firewall-1-INPUT -p tcp -m tcp --dport 631 -j ACCEPT
-A RH-Firewall-1-INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
-A RH-Firewall-1-INPUT -m state --state NEW -m tcp -p tcp --dport 25 -j ACCEPT
-A RH-Firewall-1-INPUT -m state --state NEW -m tcp -p tcp --dport 587 -j ACCEPT
-A RH-Firewall-1-INPUT -m state --state NEW -m tcp -p tcp --dport 80 -j ACCEPT
-A RH-Firewall-1-INPUT -s (IPアドレス) -m state --state NEW -m tcp -p tcp --dport 99922 -j ACCEPT
-A RH-Firewall-1-INPUT -s (IPアドレス) -m state --state NEW -m tcp -p tcp --dport 21 -j ACCEPT
-A RH-Firewall-1-INPUT -s (IPアドレス) -m state --state NEW -m tcp -p tcp --dport 5901 -j ACCEPT
-A RH-Firewall-1-INPUT -j REJECT --reject-with icmp-host-prohibited
COMMIT
ついでにSMTP、FTP、VNCサーバの設定もやっておく。FTPに関しては、/etc/sysconfig/iptable-config
も
IPTABLES_MODULES="ip_conntrack_ftp"
ここまでやったら、
service iptables start
不要なデーモンを落とす
さくらVPSのデフォルトでも、それほど多くのデーモンは立ち上がっていない。さくらVPSではIPv6はサポートされていないので、ip6tablesの設定はしない。
chkconfig acpid off
chkconfig ip6tables off
sudo
usermod -G wheel hoge
visudo # %wheel ALL=(ALL) ALL のコメントを外す
メッセージの日本語化
/etc/sysconfig/i18n
LANG = 'ja_JP.utf-8'
screen
yum install screen
~/.screenrc
は、screenを初めて使うためのチュートリアル – Unix的なアレを参照。
sendmail
思いっきり楽をするために、メールを全部Gmailに転送するという設定だけ。
yum install sendmail-cf
/etc/mail/sendmail.mc
dnl DAEMON_OPTIONS(`Port=smtp,Addr=127.0.0.1, Name=MTA')dnl
m4 sendmail.mc > sendmail.cf
/etc/mail/local-host-names
にメールアドレスとして使うドメインを指定
inoccu.net
/etc/aliases
root: hoge
hoge: (転送先メールアドレス)
最後に、
newaliases
service sendmail restart
vsftpd
yum install vsftpd
service vsftpd start
chkconfig vsftpd on
Firewallの設定は、さっきやってる。
Apache
yum install httpd mod_ssl
service httpd start
chkconfig httpd on
php / MySQL
今回はまりまくったのがここ。もう、やだ!でも、これが今のところの正解ですよ。
remiから入れるので、執筆時点ではPHP5.3.5になります。
rpm -Uvh http://download.fedora.redhat.com/pub/epel/5/i386/epel-release-5-4.noarch.rpm
rpm -Uvh http://rpms.famillecollet.com/enterprise/remi-release-5.rpm
vi /etc/yum.repo.d/remi.repo #enabled=1にする
yum --enablerepo=remi,epel install php php-mbstring php-mysql mysql-server
service mysqld start #ここでデータベースの設定が行われる。```無事に起動すれば成功
chkconfig mysqld on
あと、MySQLでの日本語の取り扱いをうまくやるために/etc/my.cnf
で、
[mysqld]
default-character-set = utf8
[mysql]
default-character-set = utf8
さらにskip-character-set-client-handshake
説があるが、なくても問題ない。
apc
PHPの動作を高速化するAPC。ここもかなり躓いた。
remiから入れることになるので、執筆時点ではAPC3.1.7betaになります。うちの実績では、PHP5.3.5+APC3.1.7betaがいちばん安定して動きます。
yum install php-pecl-apc
あとは、phpMyAdminとか、WordPressとかをふつうに入れちゃいましょう!