はじめてのさくら VPS + CentOS の初期設定からチューニングなどの作業まとめで一般的なサーバーの設定方法を紹介しましたが、さくらのVPS の設定の中で APC の入れ方や nginx の入れ方などは試せなかったので追記としてメモしておきます。
今回も以下の記事を参考にさせて頂きました。ここに全てがあるので私の記事では作業をシンプルに紹介していきます。ここに書いてない物についてはこの記事で書いてみます。
CentOS 5.6 へアップグレードする
さくら VPS はこのブログを書いている現時点で契約した状態だと CentOS 5.5 がインストールされています。そのため CentOS を 5,6 にアップデートします。
まず自分の環境が CentOS 5.5 なのかを調べます。
1 | rpm -qa | grep centos-release |
以下のように出ると CentOS 5.5 ですね。
1 2 | centos-release-notes-5.5-0 centos-release-5-5.el5.centos |
以下のようにしてアップデートします。
1 | yum upgrade |
yum のリポジトリを追加してインストールできるソフトウェアのバリエーションを増やす
wget でリポジトリをダウンロードします。それぞれ URL がなくなった場合は元の記事で新しい URL をさがす方法がありますので参考にしてみてください。
1 2 3 | wget http://download.fedora.redhat.com/pub/epel/5/x86_64/epel-release-5-4.noarch.rpm wget http://rpms.famillecollet.com/el5.x86_64/remi-release-5-8.el5.remi.noarch.rpm wget http://packages.sw.be/rpmforge-release/rpmforge-release-0.5.2-2.el5.rf.x86_64.rpm |
wget でダウンロードしたリポジトリを以下のように追加します。
1 | rpm -Uvh epel-release-5-4.noarch.rpm remi-release-5-8.el5.remi.noarch.rpm rpmforge-release-0.5.2-2.el5.rf.x86_64.rpm |
Fedora EPEL を無効化します。
1 | vi /etc/yum.repos.d/epel.repo |
以下のように epel を enabled=0 にします。
1 2 3 4 5 6 7 8 | [epel] name=Extra Packages for Enterprise Linux 5 - $basearch #baseurl=http://download.fedoraproject.org/pub/epel/5/$basearch mirrorlist=http://mirrors.fedoraproject.org/mirrorlist?repo=epel-5&arch=$basearch failovermethod=priority enabled=1 gpgcheck=1 gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-EPEL |
RPMForge を無効にします。
1 | vi /etc/yum.repos.d/rpmforge.repo |
以下のように rpmforge を enabled=0 にします。
1 2 3 4 5 6 7 8 9 | [rpmforge] name = RHEL $releasever - RPMforge.net - dag baseurl = http://apt.sw.be/redhat/el5/en/$basearch/rpmforge mirrorlist = http://apt.sw.be/redhat/el5/en/mirrors-rpmforge #mirrorlist = file:///etc/yum.repos.d/mirrors-rpmforge enabled = 0 protect = 0 gpgkey = file:///etc/pki/rpm-gpg/RPM-GPG-KEY-rpmforge-dag gpgcheck = 1 |
LAMP 環境を一発で構築する
phpMyAdmin は自分で入れるのでそれ以外をインストールします。
Apache と PHP と MySQL が自動的にインストールされます。
1 | yum --enablerepo=remi,epel,rpmforge install httpd-devel php-devel php-mysql php-pear mysql-server |
Apache のモジュールを停止する
Apache の設定は以下でやります。
1 | sudo vi /etc/httpd/conf/httpd.conf |
私もひとつずつ調べならが停止したら参考記事のようなモジュール設定になりました。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 | #LoadModule auth_basic_module modules/mod_auth_basic.so #LoadModule auth_digest_module modules/mod_auth_digest.so #LoadModule authn_file_module modules/mod_authn_file.so #LoadModule authn_alias_module modules/mod_authn_alias.so #LoadModule authn_anon_module modules/mod_authn_anon.so #LoadModule authn_dbm_module modules/mod_authn_dbm.so #LoadModule authn_default_module modules/mod_authn_default.so LoadModule authz_host_module modules/mod_authz_host.so #LoadModule authz_user_module modules/mod_authz_user.so #LoadModule authz_owner_module modules/mod_authz_owner.so #LoadModule authz_groupfile_module modules/mod_authz_groupfile.so #LoadModule authz_dbm_module modules/mod_authz_dbm.so #LoadModule authz_default_module modules/mod_authz_default.so #LoadModule ldap_module modules/mod_ldap.so #LoadModule authnz_ldap_module modules/mod_authnz_ldap.so #LoadModule include_module modules/mod_include.so LoadModule log_config_module modules/mod_log_config.so #LoadModule logio_module modules/mod_logio.so #LoadModule env_module modules/mod_env.so #LoadModule ext_filter_module modules/mod_ext_filter.so #LoadModule mime_magic_module modules/mod_mime_magic.so LoadModule expires_module modules/mod_expires.so #LoadModule deflate_module modules/mod_deflate.so LoadModule headers_module modules/mod_headers.so #LoadModule usertrack_module modules/mod_usertrack.so LoadModule setenvif_module modules/mod_setenvif.so LoadModule mime_module modules/mod_mime.so #LoadModule dav_module modules/mod_dav.so LoadModule status_module modules/mod_status.so #LoadModule autoindex_module modules/mod_autoindex.so #LoadModule info_module modules/mod_info.so #LoadModule dav_fs_module modules/mod_dav_fs.so #LoadModule vhost_alias_module modules/mod_vhost_alias.so LoadModule negotiation_module modules/mod_negotiation.so LoadModule dir_module modules/mod_dir.so #LoadModule actions_module modules/mod_actions.so #LoadModule speling_module modules/mod_speling.so #LoadModule userdir_module modules/mod_userdir.so LoadModule alias_module modules/mod_alias.so LoadModule rewrite_module modules/mod_rewrite.so #LoadModule proxy_module modules/mod_proxy.so #LoadModule proxy_balancer_module modules/mod_proxy_balancer.so #LoadModule proxy_ftp_module modules/mod_proxy_ftp.so #LoadModule proxy_http_module modules/mod_proxy_http.so #LoadModule proxy_connect_module modules/mod_proxy_connect.so #LoadModule cache_module modules/mod_cache.so #LoadModule suexec_module modules/mod_suexec.so #LoadModule disk_cache_module modules/mod_disk_cache.so #LoadModule file_cache_module modules/mod_file_cache.so #LoadModule mem_cache_module modules/mod_mem_cache.so #LoadModule cgi_module modules/mod_cgi.so #LoadModule version_module modules/mod_version.so |
mod_autoindex を無効にしたので以下のように関連項目を ifModule で囲います。
592 593 594 595 596 597 598 599 600 601 602 603 604 605 606 607 608 609 610 611 612 613 614 615 616 617 618 619 620 621 622 623 624 625 626 627 628 629 630 631 632 633 634 635 636 637 638 639 640 641 642 643 644 645 646 647 648 649 650 651 652 653 654 655 656 657 658 | <IfModule mod_autoindex.c> IndexOptions FancyIndexing VersionSort NameWidth=* HTMLTable # # AddIcon* directives tell the server which icon to show for different # files or filename extensions. These are only displayed for # FancyIndexed directories. # AddIconByEncoding (CMP,/icons/compressed.gif) x-compress x-gzip AddIconByType (TXT,/icons/text.gif) text/* AddIconByType (IMG,/icons/image2.gif) image/* AddIconByType (SND,/icons/sound2.gif) audio/* AddIconByType (VID,/icons/movie.gif) video/* AddIcon /icons/binary.gif .bin .exe AddIcon /icons/binhex.gif .hqx AddIcon /icons/tar.gif .tar AddIcon /icons/world2.gif .wrl .wrl.gz .vrml .vrm .iv AddIcon /icons/compressed.gif .Z .z .tgz .gz .zip AddIcon /icons/a.gif .ps .ai .eps AddIcon /icons/layout.gif .html .shtml .htm .pdf AddIcon /icons/text.gif .txt AddIcon /icons/c.gif .c AddIcon /icons/p.gif .pl .py AddIcon /icons/f.gif .for AddIcon /icons/dvi.gif .dvi AddIcon /icons/uuencoded.gif .uu AddIcon /icons/script.gif .conf .sh .shar .csh .ksh .tcl AddIcon /icons/tex.gif .tex AddIcon /icons/bomb.gif core AddIcon /icons/back.gif .. AddIcon /icons/hand.right.gif README AddIcon /icons/folder.gif ^^DIRECTORY^^ AddIcon /icons/blank.gif ^^BLANKICON^^ # # DefaultIcon is which icon to show for files which do not have an icon # explicitly set. # DefaultIcon /icons/unknown.gif # # AddDescription allows you to place a short description after a file in # server-generated indexes. These are only displayed for FancyIndexed # directories. # Format: AddDescription "description" filename # #AddDescription "GZIP compressed document" .gz #AddDescription "tar archive" .tar #AddDescription "GZIP compressed tar archive" .tgz # # ReadmeName is the name of the README file the server will look for by # default, and append to directory listings. # # HeaderName is the name of a file which should be prepended to # directory indexes. ReadmeName README.html HeaderName HEADER.html # # IndexIgnore is a set of filenames which directory indexing should ignore # and not include in the listing. Shell-style wildcarding is permitted. # IndexIgnore .??* *~ *# HEADER* README* RCS CVS *,v *,t </IfModule> |
mod_proxy を無効にしたので以下のコマンドを実行します。
1 | mv /etc/httpd/conf.d/proxy_ajp.conf /etc/httpd/conf.d/proxy_ajp.conf.stop |
APC をインストールする
APC は PHP の中間コードのキャッシュや最適化を行う拡張モジュールだそうです。まず以下のコマンドでインストールします。
1 | pecl install APC |
いろいろ聞かれるので進めていくと以下のようなメッセージが表示されます。
Build process completed successfully
Installing ‘/usr/lib64/php/modules/apc.so’
Installing ‘/usr/include/php/ext/apc/apc_serializer.h’
install ok: channel://pecl.php.net/APC-3.1.9
configuration option “php_ini” is not set to php.ini location
You should add “extension=apc.so” to php.ini
php.ini に extension=apc.so という記述を追加しろとのころです。
1 | sudo vi /etc/php.ini |
どこでも良いですが末尾に記述を追加します。
1 | extension=apc.so |
以下のコマンドでアップグレードできます。
1 | sudo pecl upgrade apc |
使わないときは先ほど php.ini に追加した行を削除すれば問題ないと思います。
nginx をインストールする
Apache で動的部分を処理して、静的ファイルは nginx で処理するようにできます。
mod_rpaf のインストール
まず以下のようにしてファイルをダウンロードして展開します。
1 2 3 | wget http://stderr.net/apache/rpaf/download/mod_rpaf-0.6.tar.gz tar xvzf mod_rpaf-0.6.tar.gz cd mod_rpaf-0.6 |
次に Makefile を編集します。
1 | vi Makefile |
以下のようになっているところを。
1 | APXS2=$(shell which apxs2) |
以下のように変更します。
1 | APXS2=/usr/sbin/apxs |
以下のコマンドを実行すればインストール完了です。
1 2 | make rpaf-2.0 sudo make install-2.0 |
nginx のインストール
epel リポジトリから yum でインストールします。
1 | sudo yum --enablerepo=remi,epel,rpmforge install nginx |
nginx の設定ファイルを編集します。
1 | sudo vi /etc/nginx/nginx.conf |
以下のようになっている部分を。
1 2 3 4 5 6 7 8 9 10 11 | listen 80; server_name _; #charset koi8-r; #access_log logs/host.access.log main; location / { root /usr/share/nginx/html; index index.html index.htm; } |
以下のように設定します。server_name と location の root を書き換えておきました。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 | listen 80; server_name example.com; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_set_header Host $http_host; proxy_redirect off; proxy_max_temp_file_size 0; location ~ .*\.(jpg|JPG|gif|GIF|png|PNG|swf|SWF|css|CSS|js|JS|inc|INC|ico|ICO) { root /var/www/; index index.html; ssi on; break; } location / { proxy_pass http://127.0.0.1:8080; break; } |
nginx のバーチャルホスト設定
以下のファイルを編集します。
1 | sudo vi /etc/nginx/conf.d/virtual.conf |
中にサンプルがありますので、それらと参考サイトを参考に以下のように書きます。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 | server { listen 80; server_name weble.org; location ~ .*\.(jpg|JPG|gif|GIF|png|PNG|swf|SWF|css|CSS|js|JS|inc|INC|ico|ICO) { root /var/www/vhosts/weble.org; index index.html; ssi on; break; } location / { proxy_pass http://127.0.0.1:8080; break; } } |
設定が終わったら nginx を起動します。
1 | sudo /etc/init.d/nginx start |
以下のサイトが大変参考になりました。
- nginx+apacheでちょっぴり快適なWebサーバーを目指してみる(CentOS さくらのVPS) ::ハブろぐ
- 軽量高速Webサーバのnginxで静的コンテンツ配信とキャッシュコントロール | KRAY Inc
コメント