さくら VPS + CentOS のチューニングや高速化もっとこうすれば良かった作業まとめ | ウェブル

はじめてのさくら VPS + CentOS の初期設定からチューニングなどの作業まとめで一般的なサーバーの設定方法を紹介しましたが、この設定の中でもっとこうすれば良かったと思ったところ、APC の入れ方や nginx の入れ方など追記に当たる物をここに書いておきます。

今回は以下の記事を参考にさせて頂きました。ここに全てがあるので私の記事では作業をシンプルに紹介していきます。ここに書いてない物についてはこの記事で書いてみます。

CentOS 5.6 へアップグレードする

さくら VPS はこのブログを書いている現時点で契約した状態だと CentOS 5.5 がインストールされています。そのため CentOS を 5,6 にアップデートします。

まず自分の環境が CentOS 5.5 なのかを調べます。

1
rpm -qa | grep centos-release

以下のように出ると CentOS 5.5 ですね。

12
centos-release-notes-5.5-0centos-release-5-5.el5.centos

以下のようにしてアップデートします。

1
yum upgrade

yum のリポジトリを追加してインストールできるソフトウェアのバリエーションを増やす

wget でリポジトリをダウンロードします。それぞれ URL がなくなった場合は元の記事で新しい URL をさがす方法がありますので参考にしてみてください。

123
wget http://download.fedora.redhat.com/pub/epel/5/x86_64/epel-release-5-4.noarch.rpmwget http://rpms.famillecollet.com/el5.x86_64/remi-release-5-8.el5.remi.noarch.rpmwget 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 にします。

12345678
[epel]name=Extra Packages for Enterprise Linux 5 - $basearch#baseurl=http://download.fedoraproject.org/pub/epel/5/$basearchmirrorlist=http://mirrors.fedoraproject.org/mirrorlist?repo=epel-5&arch=$basearchfailovermethod=priorityenabled=1gpgcheck=1gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-EPEL

RPMForge を無効にします。

1
vi /etc/yum.repos.d/rpmforge.repo

以下のように rpmforge を enabled=0 にします。

123456789
[rpmforge]name = RHEL $releasever - RPMforge.net - dagbaseurl = http://apt.sw.be/redhat/el5/en/$basearch/rpmforgemirrorlist = http://apt.sw.be/redhat/el5/en/mirrors-rpmforge#mirrorlist = file:///etc/yum.repos.d/mirrors-rpmforgeenabled = 0protect = 0gpgkey = file:///etc/pki/rpm-gpg/RPM-GPG-KEY-rpmforge-daggpgcheck = 1

LAMP 環境を一発で構築する

phpMyAdmin は自分で入れるのでそれ以外をインストールします。
Apache と PHP と MySQL が自動的にインストールされます。

1
yum --enablerepo=remi,epel,rpmforge install httpd-devel php-devel php-pear mysql-server

Apache のモジュールを停止する

Apache の設定は以下でやります。

1
sudo vi /etc/httpd/conf/httpd.conf

私もひとつずつ調べならが停止したら参考記事のようなモジュール設定になりました。

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152
#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.soLoadModule 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.soLoadModule 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.soLoadModule setenvif_module modules/mod_setenvif.soLoadModule mime_module modules/mod_mime.so#LoadModule dav_module modules/mod_dav.soLoadModule 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.soLoadModule negotiation_module modules/mod_negotiation.soLoadModule 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.soLoadModule alias_module modules/mod_alias.soLoadModule 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 で囲います。

592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658
<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 のインストール

まず以下のようにしてファイルをダウンロードして展開します。

123
wget http://stderr.net/apache/rpaf/download/mod_rpaf-0.6.tar.gztar xvzf mod_rpaf-0.6.tar.gzcd mod_rpaf-0.6

次に Makefile を編集します。

1
vi Makefile

以下のようになっているところを。

1
APXS2=$(shell which apxs2)

以下のように変更します。

1
APXS2=/usr/sbin/apxs

以下のコマンドを実行すればインストール完了です。

12
make rpaf-2.0sudo make install-2.0

nginx のインストール

epel リポジトリから yum でインストールします。

1
sudo yum --enablerepo=remi,epel,rpmforge install nginx

nginx の設定ファイルを編集します。

1
sudo vi /etc/nginx/nginx.conf

以下のようになっている部分を。

1234567891011
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 を書き換えておきました。

1234567891011121314151617181920
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

中にサンプルがありますので、それらと参考サイトを参考に以下のように書きます。

12345678910111213141516
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/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

以下のサイトが大変参考になりました。

その他参考になるページ

広告

コメントを残す

以下に詳細を記入するか、アイコンをクリックしてログインしてください。

WordPress.com ロゴ

WordPress.com アカウントを使ってコメントしています。 ログアウト / 変更 )

Twitter 画像

Twitter アカウントを使ってコメントしています。 ログアウト / 変更 )

Facebook の写真

Facebook アカウントを使ってコメントしています。 ログアウト / 変更 )

Google+ フォト

Google+ アカウントを使ってコメントしています。 ログアウト / 変更 )

%s と連携中