さくらVPSでWordPressを動かすまでの作業ログ

以前にも似たような記事を書いて、はてブが結構集まったりしていたのだけど、今回また再構築したので作業ログ。

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とかをふつうに入れちゃいましょう!

この記事を書いた人

井上 研一

株式会社ビビンコ代表取締役、ITエンジニア/経済産業省推進資格ITコーディネータ。AI・IoTに強いITコーディネータとして活動。画像認識モデルを活用したアプリや、生成AIを業務に組み込むためのサービス「Gen2Go」の開発などを行っている。近著に「使ってわかった AWSのAI」、「ワトソンで体感する人工知能」。日本全国でセミナー・研修講師としての登壇も多数。