サーバー設定 · 1 min read · Oct 08, 2025
完璧なサーバー - CentOS 6.3 x86_64 (nginx, Dovecot, ISPConfig 3) - ページ 4
11 Dovecotのインストール
Dovecotは以下のようにインストールできます:
yum install dovecot dovecot-mysql次に、システム起動リンクを作成し、Dovecotを起動します:
chkconfig –levels 235 dovecot on
/etc/init.d/dovecot start
12 Postfixのインストール
Postfixは以下のようにインストールできます:
yum install postfix次に、Sendmailをオフにし、Postfixを起動します:
chkconfig –levels 235 sendmail off
chkconfig –levels 235 postfix on
/etc/init.d/sendmail stop
/etc/init.d/postfix restart
13 Getmailのインストール
Getmailは以下のようにインストールできます:
yum install getmail14 Amavisd-new、SpamAssassin、およびClamAVのインストール
amavisd-new、spamassassin、およびclamavをインストールするには、以下のコマンドを実行します:
yum install amavisd-new spamassassin clamav clamd unzip bzip2 unrar perl-DBD-mysql次に、freshclam、amavisd、およびclamd.amavisdを起動します:
sa-update
chkconfig –levels 235 amavisd on
chkconfig –del clamd
chkconfig –levels 235 clamd.amavisd on
/usr/bin/freshclam
/etc/init.d/amavisd start
/etc/init.d/clamd.amavisd start
15 Nginx、PHP5 (PHP-FPM)、およびFcgiwrapのインストール
NginxはCentOS 6.3用のパッケージとして利用可能で、以下のようにインストールできます:
yum install nginxもしApache2がすでにシステムにインストールされている場合は、今すぐ停止します…
/etc/init.d/httpd stop… そしてApacheのシステム起動リンクを削除します:
chkconfig --del httpd次に、nginxのシステム起動リンクを作成し、起動します:
chkconfig –levels 235 nginx on
/etc/init.d/nginx start
(もしApache2とnginxの両方がインストールされている場合、ISPConfig 3のインストーラーはどちらを使用するか尋ねます - この場合はnginxと答えてください。これらのうちの1つだけがインストールされている場合、ISPConfigは必要な設定を自動的に行います。)
PHP5をnginxで動作させるために、PHP-FPMを使用します (PHP-FPM (FastCGI Process Manager)は、あらゆる規模のサイト、特により忙しいサイトに役立つ追加機能を持つPHPの代替FastCGI実装です)。PHP-FPMをphp-cliや、MySQLをPHPスクリプトから使用するために必要なphp-mysqlなどのいくつかのPHP5モジュールと一緒にインストールできます:
yum install php-fpm php-cli php-mysql php-gd php-imap php-ldap php-odbc php-pear php-xml php-xmlrpc php-pecl-apc php-magickwand php-mbstring php-mcrypt php-mssql php-shout php-snmp php-soap php-tidy次に、/etc/php.iniを開きます…
vi /etc/php.ini… そしてエラーレポートを変更します (通知が表示されないように):
| [...] ;error_reporting = E_ALL & ~E_DEPRECATED error_reporting = E_ALL & ~E_NOTICE [...] |
また、cgi.fix_pathinfo=0を設定します:
vi /etc/php.ini| [...] ; cgi.fix_pathinfoはCGIのための*本物の* PATH_INFO/PATH_TRANSLATEDサポートを提供します。PHPの ; 以前の動作はPATH_TRANSLATEDをSCRIPT_FILENAMEに設定し、PATH_INFOが何であるかを理解しませんでした。 ; PATH_INFOに関する詳細はcgi仕様を参照してください。これを1に設定すると、PHP CGIは仕様に従ってパスを修正します。0に設定すると、PHPは以前のように動作します。デフォルトは1です。スクリプトを修正して ; PATH_TRANSLATEDではなくSCRIPT_FILENAMEを使用する必要があります。 ; http://www.php.net/manual/en/ini.core.php#ini.cgi.fix-pathinfo cgi.fix_pathinfo=0 [...] |
(なぜこれを行うべきかについてはhttp://wiki.nginx.org/Pitfallsをお読みください。)
さらに、次のようなエラーを回避するために:
[08-Aug-2011 18:07:08] PHP Warning: phpinfo(): システムのタイムゾーン設定に依存するのは安全ではありません。date.timezone設定またはdate_default_timezone_set()関数を使用する必要があります。これらの方法のいずれかを使用した場合、まだこの警告が表示される場合は、タイムゾーン識別子を誤って入力した可能性があります。代わりに、/usr/share/nginx/html/info.phpの2行目で'CEST/2.0/DST'のために'Europe/Berlin'を選択しました。… ブラウザでPHPスクリプトを呼び出すときに/var/log/php-fpm/www-error.logに表示される場合、/etc/php.iniでdate.timezoneを設定する必要があります:
| [...] [Date] ; 日付関数で使用されるデフォルトのタイムゾーンを定義します ; http://www.php.net/manual/en/datetime.configuration.php#ini.date.timezone date.timezone = "Europe/Berlin" [...] |
システムに正しいタイムゾーンを見つけるには、次のコマンドを実行します:
cat /etc/sysconfig/clock[root@server1 tmp]# cat /etc/sysconfig/clock
ZONE=”Europe/Berlin”
[root@server1 tmp]#
次に、php-fpmのシステム起動リンクを作成し、起動します:
chkconfig –levels 235 php-fpm on
/etc/init.d/php-fpm start
PHP-FPMはデーモンプロセスであり (/etc/init.d/php-fpmのinitスクリプトを持ち)、ポート9000でFastCGIサーバーを実行します。
nginxでCGIサポートを得るために、Fcgiwrapをインストールします。
FcgiwrapはCGIラッパーであり、複雑なCGIスクリプトにも対応し、各vhostが独自のcgi-binディレクトリを使用できるため、共有ホスティング環境で使用できます。
CentOS 6.3用のfcgiwrapパッケージがないため、自分でビルドする必要があります。まず、いくつかの前提条件をインストールします:
yum install fcgi-devel次に、以下のようにfcgiwrapをビルドできます:
cd /usr/local/src/
git clone git://github.com/gnosek/fcgiwrap.git
cd fcgiwrap
autoreconf -i
./configure
make
make install
これにより、fcgiwrapが/usr/local/sbin/fcgiwrapにインストールされます。
次に、fcgiwrapをデーモンとして実行できるspawn-fcgiパッケージをインストールします:
yum install spawn-fcgi/etc/sysconfig/spawn-fcgiを開きます…
vi /etc/sysconfig/spawn-fcgi… そしてファイルを以下のように修正します:
| # "spawn-fcgi"サービスが機能する前に、いくつかの作業オプションを設定する必要があります。 # SOCKETがファイルを指している場合、このファイルはinitスクリプトによってクリーンアップされます。 # # すべての可能なオプションについてはspawn-fcgi(1)を参照してください。 # # 例 : #SOCKET=/var/run/php-fcgi.sock #OPTIONS="-u apache -g apache -s $SOCKET -S -M 0600 -C 32 -F 1 -P /var/run/spawn-fcgi.pid -- /usr/bin/php-cgi" FCGI_SOCKET=/var/run/fcgiwrap.socket FCGI_PROGRAM=/usr/local/sbin/fcgiwrap FCGI_USER=apache FCGI_GROUP=apache FCGI_EXTRA_OPTIONS="-M 0770" OPTIONS="-u $FCGI_USER -g $FCGI_GROUP -s $FCGI_SOCKET -S $FCGI_EXTRA_OPTIONS -F 1 -P /var/run/spawn-fcgi.pid -- $FCGI_PROGRAM" |
次に、nginxユーザーをapacheグループに追加します:
usermod -a -G apache nginxspawn-fcgiのシステム起動リンクを作成します…
chkconfig --levels 235 spawn-fcgi on… そして次のように起動します:
/etc/init.d/spawn-fcgi startこれで、/var/run/fcgiwrap.socketにfcgiwrapソケットが見つかるはずで、所有者とグループはapacheです (一部のスクリプト、例えばMailmanは、apacheユーザー/グループによって実行されることを期待しているため、nginxユーザー/グループとしてspawn-fcgiを実行するのではなく、nginxをapacheグループに追加します)。
新しい投稿を受信箱で受け取る
スパムはありません。いつでも購読を解除できます。