ウェブサーバーとして使うVPSの設定(その2) Webサーバー構築編

どうも最近Mac book air 11inchとNexus10を手に入れた一稀です。

今回はCloudCore VPS CV01で登録して、Webサーバーを構築してみました。

以下、続きを読むより。

 Remiレポジトリを追加

まずは何も追加レポジトリを追加していない状態でアップデートします。勿論Root権限でやってください。

yum update

スクリーンショット 2013-03-25 19.54.43

出てくる選択肢には全部yで答えます。しばらく時間がかかるので気長に待ちましょう。

アップデートが終わったらレポジトリの追加に入ります。

rpm -Uvh http://ftp.riken.jp/Linux/fedora/epel/6/x86_64/epel-release-6-8.noarch.rpm
rpm -Uvh http://rpms.famillecollet.com/enterprise/remi-release-6.rpm
rpm -Uvh http://pkgs.repoforge.org/rpmforge-release/rpmforge-release-0.5.3-1.el6.rf.x86_64.rpm

インストールはこれで完了です。エラーが出ていないか確認しましょう。

Remiレポジトリはデフォルトでは有効になっていないので、yumの設定ファイルを編集して有効化します。

vi /etc/yum.repos.d/remi.repo
[remi]
name=Les RPM de remi pour Enterprise Linux 6 - $basearch
#baseurl=http://rpms.famillecollet.com/enterprise/6/remi/$basearch/
mirrorlist=http://rpms.famillecollet.com/enterprise/6/remi/mirror
enabled=1
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-remi

enabled=0だったのをenabled=1に変更して保存します。

これで追加レポジトリの導入は完了です。

Webサーバーの構築に必要なソフトをインストール

yum install httpd php php-gd php-cgi php-mysql mysql-server mod_fcgid

インストール時にyで答える選択肢が増えてますが気にせず全部yを入力してEnterです。

ただ、Apacheに付いてくるsuexecが標準のもののままだと、設定上CGIスクリプトが動かなくなってしまうので、カスタマイズしたものを導入します。(僕がコンパイルオプションを変えてコンパイルしたApacheからsuexecだけ取ってきました)

wget http://repo.jisakuroom.net/suexec
cp suexec /usr/sbin/suexec

準備が終わった所で設定ファイルの編集に入りましょう。

vi /etc/httpd/conf/httpd.conf
#
# KeepAlive: Whether or not to allow persistent connections (more than
# one request per connection). Set to "Off" to deactivate.
#
KeepAlive On

# prefork MPM
# StartServers: number of server processes to start
# MinSpareServers: minimum number of server processes which are kept spare
# MaxSpareServers: maximum number of server processes which are kept spare
# ServerLimit: maximum value for MaxClients for the lifetime of the server
# MaxClients: maximum number of server processes allowed to start
# MaxRequestsPerChild: maximum number of requests a server process serves

StartServers       10
MinSpareServers    5
MaxSpareServers   20
ServerLimit      256
MaxClients       40
MaxRequestsPerChild  4000

#
# ServerAdmin: Your address, where problems with the server should be
# e-mailed.  This address appears on some server-generated pages, such
# as error documents.  e.g. admin@your-domain.com
#
ServerAdmin hogehoge@hogehoge.com

#
# DirectoryIndex: sets the file that Apache will serve if a directory
# is requested.
#
# The index.html.var file (a type-map) is used to deliver content-
# negotiated documents.  The MultiViews Option can be used for the
# same purpose, but it is much slower.
#
DirectoryIndex index.htm index.html index.php index.cgi

#
# Specify a default charset for all content served; this enables
# interpretation of all content as UTF-8 by default.  To use the
# default browser choice (ISO-8859-1), or to allow the META tags
# in HTML content to override this choice, comment out this
# directive:
#
#AddDefaultCharset UTF-8

#
# Use name-based virtual hosting.
#
NameVirtualHost *:80
#↑コメントアウトを外す

ハイライトした部分を変更してください。変更したら保存しましょう。(該当部分をviエディターの検索機能で探すか自力で探し出しましょう)

続いてPHPをユーザー権限で動かす為の設定をします。

vi /etc/httpd/conf.d/fcgid.conf
# This is the Apache server configuration file for providing FastCGI support
# through mod_fcgid
#
# Documentation is available at
# http://httpd.apache.org/mod_fcgid/mod/mod_fcgid.html

LoadModule fcgid_module modules/mod_fcgid.so

# Use FastCGI to process .fcg .fcgi & .fpl scripts
AddHandler fcgid-script fcg fcgi fpl

# Sane place to put sockets and shared memory file
FcgidIPCDir /var/run/mod_fcgid
FcgidProcessTableFile /var/run/mod_fcgid/fcgid_shm
#Upload to 1000MB
FcgidMaxRequestLen 1048576000

16行目に書いてある設定を追加します。これをしないとアップロード容量制限が異常に小さい値になってしまうので、1000MBまで上げます。

設定をしたら保存しましょう。

次に公開用のディレクトリを作ります。

mkdir /etc/skel/public_html
chmod 755 /etc/skel/public_html
mkdir /etc/skel/.bin
chmod 755 /etc/skel/.bin

ディレクトリを作ったらラッパースクリプトを作ります。

vi /etc/skel/.bin/php-cgi
#!/bin/sh
exec /usr/bin/php-cgi

そのままコピペすれば大丈夫です。貼り付けたら保存しましょう。

chmod 755 /etc/skel/.bin/php-cgi

パーミッションを変更したら完了です。あとは公開用のユーザーを作成してVirtualhostの設定をすればApacheの構築は完了です。

useradd hogehoge
passwd hogehoge

2番目のコマンドはパスワードを設定するコマンドなので、ここでログインに使うパスワードを設定します。

vi /etc/httpd/conf.d/virtualhost.conf

ここで割り当てるドメインの設定をします。

<Directory /home/*/public_html>
    AllowOverride All
    Options Includes ExecCGI FollowSymLinks
    Order allow,deny
    Allow from all
</Directory>
#IPアドレスでのアクセスを拒否
<VirtualHost *:80>
     ServerName any
     <Location />
         Order deny,allow
         Deny from all
     </Location>
</VirtualHost>
#ドメインごとに実行ユーザー
<VirtualHost *:80>
    SuexecUserGroup hogehoge hogehoge
    ServerName www.hogehoge.net
    DocumentRoot /home/hogehoge/public_html
    #PHP-CGI
    RemoveHandler .php
    RemoveType .php
    <FilesMatch \.php$>
        SetHandler fcgid-script
    </FilesMatch>
    AddHandler fcgid-script .php
    FCGIWrapper /home/hogehoge/.bin/php-cgi .php
</VirtualHost>

hogehogeを各環境に合わせて書き換えてください。他はそのままコピペで大丈夫ですので、編集が終わったら保存してサービスの設定に移ります。

service httpd configtest
service httpd start
chkconfig httpd on

一番目のコマンドで設定ファイルのミスをチェックします。エラーがでなければ(Syntax OK.)、次の2つのコマンドを入れればApacheの構築は完了です。

次回はMySQLの設定をしたいと思います。

投稿者:

一稀

パソコンのことなどを書いていきたいと思います。 最近、抹茶オーレとAKB48にハマっています。