Changes between Version 2 and Version 3 of HowTo/SakuraVpsSetup
- Timestamp:
- Oct 11, 2010, 5:28:32 PM (14 years ago)
Legend:
- Unmodified
- Added
- Removed
- Modified
-
HowTo/SakuraVpsSetup
v2 v3 30 30 1. ソフトウェアを最新版にアップデートする。 31 31 {{{ 32 $yum check-update33 $yum update32 # yum check-update 33 # yum update 34 34 }}} 35 35 1. ViM をインストール 36 36 {{{ 37 $yum install vim-enhanced37 # yum install vim-enhanced 38 38 }}} 39 39 … … 51 51 1. ユーザーを作成する。 52 52 {{{ 53 $ useradd -m -G wheel hoge 54 $ passwd hoge 53 # useradd -m -G wheel murachi 54 # passwd murachi 55 55 }}} 56 56 1. sshd の設定を変更する。 57 57 {{{ 58 $vim /etc/ssh/sshd_config58 # vim /etc/ssh/sshd_config 59 59 60 60 PermitRootLogin no # root での接続を無効 … … 73 73 1. 公開鍵認証ファイルをサーバー上に書き込む。 74 74 {{{ 75 $ su - hoge 75 # su - murachi 76 76 $ mkdir .ssh 77 77 $ chmod 700 .ssh … … 84 84 1. sshd を再起動。 85 85 {{{ 86 $ /etc/init.d/sshd restart 86 $ exit # root に戻る 87 # /etc/init.d/sshd restart 87 88 }}} 88 89 1. 一旦ログアウトし、作ったユーザーでログインし直す。 89 90 {{{ 90 $exit91 # exit 91 92 logout 92 $ ssh -l hogexxx.xxx.xxx.xx93 $ ssh -l murachi xxx.xxx.xxx.xx 93 94 }}} 94 95 * Windows で Putty の場合は、ホスト名を hoge@xxx.xxx.xxx.xx とかにして接続する。秘密鍵ファイルの指定を忘れずに! … … 96 97 {{{ 97 98 $ su - 98 $visudo99 # visudo 99 100 100 101 %wheel ALL=(ALL) ALL # コメントアウトされていたはずなので、コメントを外す 101 102 102 $exit103 # exit 103 104 $ sudo su - # sudo できるか確認 104 105 }}} … … 110 111 111 112 {{{ 112 $ cd 113 $ vim .bash_profile 113 $ vim ~/.bash_profile 114 114 115 115 # 以下の行を追加 … … 117 117 118 118 $ sudo su - 119 $vim .bash_profile119 # vim .bash_profile 120 120 121 121 # root ユーザーでも日本語表示したい場合はこちらも同様に設定する。 … … 138 138 {{{ 139 139 $ sudo su - 140 $mkdir -p /var/named/chroot/141 $cd /var/named/chroot142 $chown root:named .143 $chmod 760 .144 $chmod g+s .145 $mkdir -p dev etc var/log var/named var/run/named146 $chmod o-rx * var/* var/run/named147 $chmod g+w var/log var/run/named140 # 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 148 148 }}} 149 149 1. 設定ファイルをコピーし、修正する。また、ゾーンファイルを作成する。 150 150 {{{ 151 $cd etc152 $cp /etc/named.conf .153 $cp /etc/localtime .154 $vim named.conf151 # cd etc 152 # cp /etc/named.conf . 153 # cp /etc/localtime . 154 # vim named.conf 155 155 156 156 (設定内容は省略) … … 159 159 * named.root ファイルが必要な場合は、[ftp://ftp.rs.internic.net/domain/named.root このファイル]を wget してしまえばいいと思う。 160 160 {{{ 161 $cd /var/named/chroot/var/named162 $wget ftp://ftp.rs.internic.net/domain/named.root163 $chmod 640 named.root161 # cd /var/named/chroot/var/named 162 # wget ftp://ftp.rs.internic.net/domain/named.root 163 # chmod 640 named.root 164 164 }}} 165 165 1. デバイスファイルを作成する。 166 166 {{{ 167 $cd /var/named/chroot/dev168 $mknod null c 1 3169 $mknod random c 1 8170 $chmod 666 *167 # cd /var/named/chroot/dev 168 # mknod null c 1 3 169 # mknod random c 1 8 170 # chmod 666 * 171 171 }}} 172 172 1. CentOS なので、 chroot が有効になるよう、 /etc/sysconfig/named ファイルを編集する。 173 173 {{{ 174 $vim /etc/sysconfig/named174 # vim /etc/sysconfig/named 175 175 176 176 ROOTDIR="/var/named/chroot" … … 178 178 1. BIND を起動。 179 179 {{{ 180 $/etc/init.d/named start180 # /etc/init.d/named start 181 181 }}} 182 182 … … 184 184 185 185 {{{ 186 $/etc/init.d/named stop186 # /etc/init.d/named stop 187 187 }}} 188 188 … … 194 194 {{{ 195 195 $ sudo su - 196 $vim /etc/sysconfig/iptables-config196 # vim /etc/sysconfig/iptables-config 197 197 198 198 # 以下の行が移転前サーバーと異なっていたが、気にせずそのままにした。 … … 205 205 * これは iptables 用に読み込むモジュールの指定で、指定できるモジュールは CentOS の場合、以下のようにすることで調べることができる。 206 206 {{{ 207 $ls /lib/modules/`uname -r`/kernel/net/ipv4/netfilter/207 # ls /lib/modules/`uname -r`/kernel/net/ipv4/netfilter/ 208 208 }}} 209 209 * ip_conntrack モジュール (接続情報トラッキング) や ip_conntrack_ftp モジュール (ip_nat_ftp と組み合わせて FTP の PASV モードに対応?) なんかはネットで情報が出てくるが、 ip_conntrack_netbios_ns については、読み込みに失敗したから外しました、といったような情報しか出てこなかった。 Windows マシンからの通信絡みなんだろうとは思うんだが…詳細きぼん… さくらの VPN にもこのモジュールは存在するので指定してもエラーにはならないが、何に使うものかも分からないで指定するのも無意味なので外しておくことにした。 … … 218 218 $ rsync -ae ssh onaka.harapeko.jp:/home/murachi/iptables . 219 219 $ sudo su - 220 $chown root:root /home/murachi/iptables221 $mv /home/murachi/iptables /etc/sysconfig/220 # chown root:root /home/murachi/iptables 221 # mv /home/murachi/iptables /etc/sysconfig/ 222 222 }}} 223 223 1. /etc/sysconfig/iptables の内容を適宜修正。 224 224 {{{ 225 $vim /etc/sysconfig/iptables225 # vim /etc/sysconfig/iptables 226 226 227 227 # Firewall configuration written by system-config-securitylevel … … 248 248 -A RH-Firewall-1-INPUT -m state --state NEW -m multiport -p tcp --dports 22,25,587,995,80,443 -j ACCEPT 249 249 # NTP 250 -A RH-Firewall-1-INPUT -m state --state NEW -m udp -p udp --dport 123 -j ACCEPT250 # -A RH-Firewall-1-INPUT -m state --state NEW -m udp -p udp --dport 123 -j ACCEPT 251 251 # other (reject) 252 252 -A RH-Firewall-1-INPUT -j REJECT --reject-with icmp-host-prohibited … … 255 255 * ポート 631 (=Internet Printing Protocol) なんて使わないのでコメントアウト。 256 256 * TCP でしか使わないようなサービス (ssh, SMTP (サブミッションポート含めて), POP3S, HTTP(S)) を multiport モジュールを使って 1行にまとめたらファイルがやたらとコンパクトになって良い感じ。 257 * NTP も当面は公開しないのでコメントアウト。 257 258 * セキュリティリスクにしかならない FTP と POP3 は未来永劫使う予定無いので思い切って削除。 258 259 1. iptables を再起動する。 259 260 {{{ 260 $ /etc/init.d/iptables restart 261 # /etc/init.d/iptables restart 262 }}} 263 264 == NTP 設定 == 265 266 NTP を使って時刻合わせをする。 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 275 restrict default ignore 276 277 # デフォルトでさくらの NTP サーバーが設定されていた。 NICT も追加しておく。 278 server ntp1.sakura.ad.jp 279 server ntp.nict.jp iburst 280 server ntp.nict.jp iburst 281 server ntp.nict.jp iburst 282 }}} 283 1. NTPD を再起動。 284 {{{ 285 $ sudo /etc/init.d/ntpd restart 261 286 }}} 262 287 … … 267 292 1. デフォルトで入っている Sendmail を停止し、二度と起動しないようにする。 268 293 {{{ 269 $ /etc/init.d/sendmail stop 270 $ chkconfig --del sendmail 294 $ sudo su - 295 # /etc/init.d/sendmail stop 296 # chkconfig --del sendmail 271 297 }}} 272 298 1. Postfix をインストール。 273 299 {{{ 274 $ sudo su - 275 $ yum install postfix 300 # yum install postfix 276 301 }}} 277 302 1. SMTP-AUTH を利用する為、 SASL をインストールする。 278 303 {{{ 279 $yum install cyrus-sasl304 # yum install cyrus-sasl 280 305 }}} 281 306 1. /etc/postfix/main.cf を書き換える。 282 307 {{{ 283 $vim /etc/postfix/main.cf308 # vim /etc/postfix/main.cf 284 309 285 310 # 以下は既存の項目を書き換え。 … … 318 343 1. Maildir/ 形式を利用するので、ホームディレクトリスケルトンに Maildir ディレクトリを作成する。 319 344 {{{ 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/ 322 347 }}} 323 348 1. /etc/postfix/master.cf を書き換える。 324 349 {{{ 325 $vim /etc/postfix/master.cf350 # vim /etc/postfix/master.cf 326 351 327 352 # サブミッションポートを有効にする … … 331 356 1. システムで使用するサーバー機能を Postfix に切り替える。 332 357 {{{ 333 $alternatives --config mta358 # alternatives --config mta 334 359 335 360 There are 2 programs which provide 'mta'. … … 344 369 1. Postfix を起動し、問題なければサーバー起動時に自動起動するよう設定する。 345 370 {{{ 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 380 Apache をインストールし、設定する。 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 # サーバー名を明示 392 ServerName www.harapeko.jp:80 393 394 # ドキュメントルートを変更。特に意味はないが… 395 #DocumentRoot "/var/www/html" 396 DocumentRoot "/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 412 LanguagePriority 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 416 AddDefaultCharset off 417 418 # バーチャルホストを使用する 419 NameVirtualHost *: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 569 AddHandler mod_python .py 570 PythonHandler mptest # スクリプトファイルを mptest.py にする場合 571 PythonDebug On 572 573 $ vim py-test/mptest.py 574 575 from mod_python import apache 576 577 def 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 }}} 352 594 353 595