Changes between Version 2 and Version 3 of HowTo/SakuraVpsSetup


Ignore:
Timestamp:
Oct 11, 2010, 5:28:32 PM (14 years ago)
Author:
村山 俊之
Comment:

--

Legend:

Unmodified
Added
Removed
Modified
  • HowTo/SakuraVpsSetup

    v2 v3  
    3030 1. ソフトウェアを最新版にアップデートする。
    3131{{{
    32 $ yum check-update
    33 $ yum update
     32# yum check-update
     33# yum update
    3434}}}
    3535 1. ViM をインストール
    3636{{{
    37 $ yum install vim-enhanced
     37# yum install vim-enhanced
    3838}}}
    3939
     
    5151 1. ユーザーを作成する。
    5252{{{
    53 $ useradd -m -G wheel hoge
    54 $ passwd hoge
     53# useradd -m -G wheel murachi
     54# passwd murachi
    5555}}}
    5656 1. sshd の設定を変更する。
    5757{{{
    58 $ vim /etc/ssh/sshd_config
     58# vim /etc/ssh/sshd_config
    5959
    6060PermitRootLogin no          # root での接続を無効
     
    7373 1. 公開鍵認証ファイルをサーバー上に書き込む。
    7474{{{
    75 $ su - hoge
     75# su - murachi
    7676$ mkdir .ssh
    7777$ chmod 700 .ssh
     
    8484 1. sshd を再起動。
    8585{{{
    86 $ /etc/init.d/sshd restart
     86$ exit  # root に戻る
     87# /etc/init.d/sshd restart
    8788}}}
    8889 1. 一旦ログアウトし、作ったユーザーでログインし直す。
    8990{{{
    90 $ exit
     91# exit
    9192logout
    92 $ ssh -l hoge xxx.xxx.xxx.xx
     93$ ssh -l murachi xxx.xxx.xxx.xx
    9394}}}
    9495   * Windows で Putty の場合は、ホスト名を hoge@xxx.xxx.xxx.xx とかにして接続する。秘密鍵ファイルの指定を忘れずに!
     
    9697{{{
    9798$ su -
    98 $ visudo
     99# visudo
    99100
    100101%wheel  ALL=(ALL)       ALL     # コメントアウトされていたはずなので、コメントを外す
    101102
    102 $ exit
     103# exit
    103104$ sudo su -     # sudo できるか確認
    104105}}}
     
    110111
    111112{{{
    112 $ cd
    113 $ vim .bash_profile
     113$ vim ~/.bash_profile
    114114
    115115# 以下の行を追加
     
    117117
    118118$ sudo su -
    119 $ vim .bash_profile
     119# vim .bash_profile
    120120
    121121# root ユーザーでも日本語表示したい場合はこちらも同様に設定する。
     
    138138{{{
    139139$ sudo su -
    140 $ mkdir -p /var/named/chroot/
    141 $ cd /var/named/chroot
    142 $ chown root:named .
    143 $ chmod 760 .
    144 $ chmod g+s .
    145 $ mkdir -p dev etc var/log var/named var/run/named
    146 $ chmod o-rx * var/* var/run/named
    147 $ chmod g+w var/log var/run/named
     140# mkdir -p /var/named/chroot/
     141# cd /var/named/chroot
     142# chown root:named .
     143# chmod 760 .
     144# chmod g+s .
     145# mkdir -p dev etc var/log var/named var/run/named
     146# chmod o-rx * var/* var/run/named
     147# chmod g+w var/log var/run/named
    148148}}}
    149149 1. 設定ファイルをコピーし、修正する。また、ゾーンファイルを作成する。
    150150{{{
    151 $ cd etc
    152 $ cp /etc/named.conf .
    153 $ cp /etc/localtime .
    154 $ vim named.conf
     151# cd etc
     152# cp /etc/named.conf .
     153# cp /etc/localtime .
     154# vim named.conf
    155155
    156156(設定内容は省略)
     
    159159   * named.root ファイルが必要な場合は、[ftp://ftp.rs.internic.net/domain/named.root このファイル]を wget してしまえばいいと思う。
    160160{{{
    161 $ cd /var/named/chroot/var/named
    162 $ wget ftp://ftp.rs.internic.net/domain/named.root
    163 $ chmod 640 named.root
     161# cd /var/named/chroot/var/named
     162# wget ftp://ftp.rs.internic.net/domain/named.root
     163# chmod 640 named.root
    164164}}}
    165165 1. デバイスファイルを作成する。
    166166{{{
    167 $ cd /var/named/chroot/dev
    168 $ mknod null c 1 3
    169 $ mknod random c 1 8
    170 $ chmod 666 *
     167# cd /var/named/chroot/dev
     168# mknod null c 1 3
     169# mknod random c 1 8
     170# chmod 666 *
    171171}}}
    172172 1. CentOS なので、 chroot が有効になるよう、 /etc/sysconfig/named ファイルを編集する。
    173173{{{
    174 $ vim /etc/sysconfig/named
     174# vim /etc/sysconfig/named
    175175
    176176ROOTDIR="/var/named/chroot"
     
    178178 1. BIND を起動。
    179179{{{
    180 $ /etc/init.d/named start
     180# /etc/init.d/named start
    181181}}}
    182182
     
    184184
    185185{{{
    186 $ /etc/init.d/named stop
     186# /etc/init.d/named stop
    187187}}}
    188188
     
    194194{{{
    195195$ sudo su -
    196 $ vim /etc/sysconfig/iptables-config
     196# vim /etc/sysconfig/iptables-config
    197197
    198198# 以下の行が移転前サーバーと異なっていたが、気にせずそのままにした。
     
    205205   * これは iptables 用に読み込むモジュールの指定で、指定できるモジュールは CentOS の場合、以下のようにすることで調べることができる。
    206206{{{
    207 $ ls /lib/modules/`uname -r`/kernel/net/ipv4/netfilter/
     207# ls /lib/modules/`uname -r`/kernel/net/ipv4/netfilter/
    208208}}}
    209209   * ip_conntrack モジュール (接続情報トラッキング) や ip_conntrack_ftp モジュール (ip_nat_ftp と組み合わせて FTP の PASV モードに対応?) なんかはネットで情報が出てくるが、 ip_conntrack_netbios_ns については、読み込みに失敗したから外しました、といったような情報しか出てこなかった。 Windows マシンからの通信絡みなんだろうとは思うんだが…詳細きぼん… さくらの VPN にもこのモジュールは存在するので指定してもエラーにはならないが、何に使うものかも分からないで指定するのも無意味なので外しておくことにした。
     
    218218$ rsync -ae ssh onaka.harapeko.jp:/home/murachi/iptables .
    219219$ sudo su -
    220 $ chown root:root /home/murachi/iptables
    221 $ mv /home/murachi/iptables /etc/sysconfig/
     220# chown root:root /home/murachi/iptables
     221# mv /home/murachi/iptables /etc/sysconfig/
    222222}}}
    223223 1. /etc/sysconfig/iptables の内容を適宜修正。
    224224{{{
    225 $ vim /etc/sysconfig/iptables
     225# vim /etc/sysconfig/iptables
    226226
    227227# Firewall configuration written by system-config-securitylevel
     
    248248-A RH-Firewall-1-INPUT -m state --state NEW -m multiport -p tcp --dports 22,25,587,995,80,443 -j ACCEPT
    249249# NTP
    250 -A RH-Firewall-1-INPUT -m state --state NEW -m udp -p udp --dport 123 -j ACCEPT
     250# -A RH-Firewall-1-INPUT -m state --state NEW -m udp -p udp --dport 123 -j ACCEPT
    251251# other (reject)
    252252-A RH-Firewall-1-INPUT -j REJECT --reject-with icmp-host-prohibited
     
    255255   * ポート 631 (=Internet Printing Protocol) なんて使わないのでコメントアウト。
    256256   * TCP でしか使わないようなサービス (ssh, SMTP (サブミッションポート含めて), POP3S, HTTP(S)) を multiport モジュールを使って 1行にまとめたらファイルがやたらとコンパクトになって良い感じ。
     257   * NTP も当面は公開しないのでコメントアウト。
    257258   * セキュリティリスクにしかならない FTP と POP3 は未来永劫使う予定無いので思い切って削除。
    258259 1. iptables を再起動する。
    259260{{{
    260 $ /etc/init.d/iptables restart
     261# /etc/init.d/iptables restart
     262}}}
     263
     264== NTP 設定 ==
     265
     266NTP を使って時刻合わせをする。 NTP 自体はすでにインストール済みで、しかも NTPD が動いていたが、設定を修正した。
     267
     268 1. /etc/ntp.conf を修正する。
     269{{{
     270$ sudo vim /etc/ntp.conf
     271
     272# 公開しないので…
     273#restrict default kod nomodify notrap nopeer noquery
     274#restrict -6 default kod nomodify notrap nopeer noquery
     275restrict default ignore
     276
     277# デフォルトでさくらの NTP サーバーが設定されていた。 NICT も追加しておく。
     278server ntp1.sakura.ad.jp
     279server ntp.nict.jp iburst
     280server ntp.nict.jp iburst
     281server ntp.nict.jp iburst
     282}}}
     283 1. NTPD を再起動。
     284{{{
     285$ sudo /etc/init.d/ntpd restart
    261286}}}
    262287
     
    267292 1. デフォルトで入っている Sendmail を停止し、二度と起動しないようにする。
    268293{{{
    269 $ /etc/init.d/sendmail stop
    270 $ chkconfig --del sendmail
     294$ sudo su -
     295# /etc/init.d/sendmail stop
     296# chkconfig --del sendmail
    271297}}}
    272298 1. Postfix をインストール。
    273299{{{
    274 $ sudo su -
    275 $ yum install postfix
     300# yum install postfix
    276301}}}
    277302 1. SMTP-AUTH を利用する為、 SASL をインストールする。
    278303{{{
    279 $ yum install cyrus-sasl
     304# yum install cyrus-sasl
    280305}}}
    281306 1. /etc/postfix/main.cf を書き換える。
    282307{{{
    283 $ vim /etc/postfix/main.cf
     308# vim /etc/postfix/main.cf
    284309
    285310# 以下は既存の項目を書き換え。
     
    318343 1. Maildir/ 形式を利用するので、ホームディレクトリスケルトンに Maildir ディレクトリを作成する。
    319344{{{
    320 $ mkdir -p /etc/skel/Maildir/{new,cur,tmp}
    321 $ chmod -R 700 /etc/skel/Maildir/
     345# mkdir -p /etc/skel/Maildir/{new,cur,tmp}
     346# chmod -R 700 /etc/skel/Maildir/
    322347}}}
    323348 1. /etc/postfix/master.cf を書き換える。
    324349{{{
    325 $ vim /etc/postfix/master.cf
     350# vim /etc/postfix/master.cf
    326351
    327352# サブミッションポートを有効にする
     
    331356 1. システムで使用するサーバー機能を Postfix に切り替える。
    332357{{{
    333 $ alternatives --config mta
     358# alternatives --config mta
    334359
    335360There are 2 programs which provide 'mta'.
     
    344369 1. Postfix を起動し、問題なければサーバー起動時に自動起動するよう設定する。
    345370{{{
    346 $ /etc/init.d/postfix check
    347 $ /etc/init.d/postfix start
    348 $ chkconfig --add postfix
    349 }}}
    350 
    351 
     371# /etc/init.d/postfix check
     372# /etc/init.d/postfix start
     373# chkconfig --add postfix
     374}}}
     375
     376== Web サーバー設定 ==
     377
     378=== Apache のインストールと設定 ===
     379
     380Apache をインストールし、設定する。
     381
     382 1. apache をインストールする。
     383{{{
     384$ sudo su -
     385# yum install httpd
     386}}}
     387 1. /etc/httpd/conf/httpd.conf を編集。
     388{{{
     389# vim /etc/httpd/conf/httpd.conf
     390
     391# サーバー名を明示
     392ServerName www.harapeko.jp:80
     393
     394# ドキュメントルートを変更。特に意味はないが…
     395#DocumentRoot "/var/www/html"
     396DocumentRoot "/var/www/htdocs"
     397
     398# ここも忘れずに修正…
     399#<Directory "/var/www/html">
     400<Directory "/var/www/htdocs">
     401
     402# インデックス表示は行わない
     403#    Options Indexes FollowSymLinks
     404    Options FollowSymLinks
     405
     406# .httpaccess を許容する
     407#    AllowOverride None
     408    AllowOverride All
     409
     410# 日本語を最優先する
     411#LanguagePriority en ca cs da de el eo es et fr he hr it ja ko ltz nl nn no pl pt pt-BR ru sv zh-CN zh-TW
     412LanguagePriority ja en ca cs da de el eo es et fr he hr it ko ltz nl nn no pl pt pt-BR ru sv zh-CN zh-TW
     413
     414# デフォルトの文字セットは指定しない
     415#AddDefaultCharset UTF-8
     416AddDefaultCharset off
     417
     418# バーチャルホストを使用する
     419NameVirtualHost *:80
     420
     421# 会社トップページ http://www.harapeko.jp/
     422<VirtualHost *:80>
     423    ServerAdmin root@harapeko.jp
     424    DocumentRoot /var/www/htdocs
     425    ServerName www.harapeko.jp
     426    ErrorLog logs/www-error_log
     427    CustomLog logs/www-access_log common
     428</VirtualHost>
     429# 会社ブログ http://blog.harapeko.jp/
     430<VirtualHost *:80>
     431    ServerAdmin root@harapeko.jp
     432    DocumentRoot /var/www/vhosts/blog/htdocs
     433    ServerName blog.harapeko.jp
     434    ErrorLog logs/blog-error_log
     435    CustomLog logs/blog-access_log common
     436</VirtualHost>
     437# 村山個人ブログ (http://harapeko.asablo.jp/blog/ ) 用仮設リソース置き場 http://daiyokujo.harapeko.jp/
     438<VirtualHost *:80>
     439    ServerAdmin root@harapeko.jp
     440    DocumentRoot /var/www/vhosts/daiyokujo/htdocs
     441    ServerName daiyokujo.harapeko.jp
     442    ErrorLog logs/daiyokujo-error_log
     443    CustomLog logs/daiyokujo-access_log common
     444</VirtualHost>
     445# 開発用リソース (Trac 等) http://developer.harapeko.jp/
     446<VirtualHost *:80>
     447    ServerAdmin root@harapeko.jp
     448    DocumentRoot /var/www/vhosts/developer/htdocs
     449    ServerName developer.harapeko.jp
     450    ErrorLog logs/developer-error_log
     451    CustomLog logs/developer-access_log common
     452
     453    # Trac を mod_python で動かすための設定
     454    <IfModule mod_python.c>
     455    <Location /trac/original>
     456        SetHandler mod_python
     457        PythonDebug On
     458        PythonHandler trac.web.modpython_frontend
     459        PythonOption TracEnvParentDir /var/Developer/trac/original
     460        PythonOption TracUriRoot /trac/original
     461    </Location>
     462
     463    <Location /trac/original/otoco/login>
     464        AuthType Digest
     465        AuthName realm
     466        AuthUserFile "/var/Developer/trac/original/otoco/.htdigest"
     467        Require valid-user
     468    </Location>
     469
     470    <Location /trac/original/ideanote/login>
     471        AuthType Digest
     472        AuthName realm
     473        AuthUserFile "/var/Developer/trac/original/ideanote/.htdigest"
     474        Require valid-user
     475    </Location>
     476    </IfModule>
     477</VirtualHost>
     478
     479# バーチャルホストに使うディレクトリの設定
     480<Directory /var/www/vhosts/*/htdocs>
     481    Options FollowSymLinks
     482    AllowOverride All
     483    Order allow,deny
     484    Allow from all
     485</Directory>
     486}}}
     487 1. 移転前サーバーの htdocs 等をコピーする
     488{{{
     489# exit  # 一旦 root を抜ける
     490$ cd /var/www
     491$ sudo mkdir htdocs vhosts
     492$ sudo chown murachi:apache htdocs vhosts
     493$ sudo chmod g+s htdocs vhosts
     494$ rsync -ae ssh onaka.harapeko.jp:/var/www/htdocs .
     495$ rsync -ae ssh onaka.harapeko.jp:/var/www/vhosts .
     496}}}
     497 1. とりあえず起動してみる
     498{{{
     499$ sudo /etc/init.d/httpd configtest
     500$ sudo /etc/init.d/httpd start
     501}}}
     502   * クライアント PC が Windows の場合: %windir%\system32\drivers\etc\hosts に www.harapeko.jp のアドレスを追加してから http://www.harapeko.jp/index.php にアクセスすると、 PHP スクリプトのソースが表示されるのが確認できた。
     503 1. デフォルトで起動するように設定する。
     504{{{
     505$ sudo /sbin/chkconfig --add httpd
     506}}}
     507
     508=== Web アプリに使用する各種言語のセットアップ ===
     509
     510必要なのは以下の通り。
     511
     512 * PHP + mod_php ... 会社サイト (自作) と会社ブログ (WordPress) にて使用。
     513 * Python + mod_python ... タスク管理 (Trac) にて使用。
     514 * Perl + mod_perl ... ~~個人的な趣味~~将来的に使用する予定…。
     515
     516まずは PHP をインストールする。
     517
     518 1. PHP をインストールする。
     519{{{
     520$ sudo su -
     521# yum install php           # cli とか common とかも一緒に入る
     522# yum install php-mysql     # MySQL とか pdo 、あと何故か perl-DBI も一緒に入る
     523# yum install php-mbstring  # マルチバイト (日本語) 処理に必要っぽい
     524}}}
     525   * 移転前サーバーではこれ以外に php-pgsql (PostgleSQL 関数) と php-ldap (LDAP 関数) が入っていたが、多分どっちも使わないと思うので入れなかった。
     526 1. PHP の設定。
     527{{{
     528# vim /etc/php.ini
     529
     530# (とはいえ、変更すべき箇所は特になし。 magic_quotes_* シリーズが Off になっているのを確認するぐらい?)
     531}}}
     532 1. mod_php の設定。
     533{{{
     534# vim /etc/httpd/conf.d/php.conf
     535
     536# (こちらも変更すべき箇所は特になし。)
     537}}}
     538 1. Apache を再起動。
     539{{{
     540# /etc/init.d/httpd restart
     541}}}
     542   * トップページが (PHP スクリプトのソースではなく) ちゃんと表示されることを確認。
     543     移転先サーバーによるものであることが判りやすいよう、サイトの内容を若干変更した (住所が引っ越し前のままだったのを修正する等)。
     544
     545次に Python をインストール。
     546
     547 1. Python 自体はすでに入っているので、 mod_python のみをインストール。
     548{{{
     549# yum install mod_python
     550}}}
     551 1. mod_python の設定。
     552{{{
     553# vim /etc/httpd/conf.d/python.conf
     554
     555# (変更すべき箇所は特になし。)
     556}}}
     557 1. Apache を再起動。
     558{{{
     559# /etc/init.d/httpd restart
     560}}}
     561 1. テストプログラムを動かしてみる。面倒くさいので .htaccess を使う方法で。
     562   a. /var/www/htdocs の下にディレクトリ py-test を作り、その下に .htaccess と Python スクリプトを作成する。
     563{{{
     564# exit
     565$ cd /var/www/htdocs
     566$ mkdir py-test
     567$ vim py-test/.htaccess
     568
     569AddHandler mod_python .py
     570PythonHandler mptest        # スクリプトファイルを mptest.py にする場合
     571PythonDebug On
     572
     573$ vim py-test/mptest.py
     574
     575from mod_python import apache
     576
     577def handler(req):
     578    req.write("Hello, World!")
     579    return apache.OK
     580}}}
     581   a. ブラウザから http://www.harapeko.jp/py-test/mptest.py にアクセスし、画面に "Hello, World!" とだけ表示されるのを確認。
     582   a. テストプログラムはもはや不要なので、消しておく。
     583{{{
     584$ rm -rf py-test
     585}}}
     586
     587
     588
     589
     590 1. mod_ssl をインストールする。
     591{{{
     592$ yum install mod_ssl
     593}}}
    352594
    353595