サーバー設定 · 3 min read · Jan 19, 2026
完璧なサーバー - CentOS 6.0 x86_64 [ISPConfig 2] - ページ 5
12 Apache2 と PHP、Ruby、Python、WebDAV
今、PHP(これは PHP 5.3.2 です)を使って Apache をインストールします:
yum install php php-devel php-gd php-imap php-ldap php-mysql php-odbc php-pear php-xml php-xmlrpc curl curl-devel perl-libwww-perl ImageMagick libxml2 libxml2-devel次に /etc/httpd/conf/httpd.conf を編集します:
vi /etc/httpd/conf/httpd.confそして DirectoryIndex を変更します
| [...] DirectoryIndex index.html index.htm index.shtml index.cgi index.php index.php3 index.pl [...] |
今、システムを設定してブート時に Apache を起動するようにします:
chkconfig --levels 235 httpd onApache を起動します:
/etc/init.d/httpd start12.1 PHP をグローバルに無効にする
(このサーバーに ISPConfig をインストールする予定がない場合は、このセクションをスキップしてください!)
ISPConfig では、ウェブサイトごとに PHP を設定します。つまり、どのウェブサイトが PHP スクリプトを実行できるか、どれができないかを指定できます。これは、PHP がグローバルに無効になっている場合にのみ機能します。そうでないと、すべてのウェブサイトが PHP スクリプトを実行できてしまいます。
PHP をグローバルに無効にするには、/etc/httpd/conf.d/php.conf を編集し、AddHandler と AddType の行をコメントアウトします:
vi /etc/httpd/conf.d/php.conf| # # PHP は HTML に埋め込まれたスクリプト言語で、 # 開発者が動的に生成されたウェブページを書くのを簡単にしようとしています。 # |
その後、Apache を再起動します:
/etc/init.d/httpd restart12.2 mod_ruby のインストール
CentOS 6.0 では、mod_ruby パッケージは利用できないため、自分でコンパイルする必要があります。まず、いくつかの前提条件をインストールします:
yum install httpd-devel ruby ruby-devel次に、mod_ruby を次のようにダウンロードしてインストールします:
cd /tmp
wget http://www.modruby.net/archive/mod_ruby-1.3.0.tar.gz
tar zxvf mod_ruby-1.3.0.tar.gz
cd mod_ruby-1.3.0/
./configure.rb –with-apr-includes=/usr/include/apr-1
make
make install
最後に、mod_ruby モジュールを Apache 設定に追加する必要があるため、/etc/httpd/conf.d/ruby.conf ファイルを作成します…
vi /etc/httpd/conf.d/ruby.conf| LoadModule ruby_module modules/mod_ruby.so RubyAddPath /1.8 |
… そして Apache を再起動します:
/etc/init.d/httpd restart(RubyAddPath /1.8 指令を省略すると、Ruby ファイルを呼び出すときに Apache のエラーログに次のようなエラーが表示されます:
[Thu May 26 02:05:05 2011] [error] mod_ruby: ruby:0:in require': no such file to load -- apache/ruby-run (LoadError) [Thu May 26 02:05:05 2011] [error] mod_ruby: failed to require apache/ruby-run [Thu May 26 02:05:05 2011] [error] mod_ruby: error in ruby ) #### 12.3 mod_python のインストール mod_python パッケージは EPEL リポジトリから利用可能で、次のように有効にできます: rpm --import https://fedoraproject.org/static/0608B895.txt wget http://dl.fedoraproject.org/pub/epel/6/x86_64/epel-release-6-5.noarch.rpm rpm -ivh epel-release-6-5.noarch.rpm ``` yum install yum-priorities ``` /etc/yum.repos.d/epel.repo を編集します... ``` vi /etc/yum.repos.d/epel.repo ``` ... そして [epel] セクションに priority=10 の行を追加します: | ``` [epel] name=Extra Packages for Enterprise Linux 6 - $basearch #baseurl=http://download.fedoraproject.org/pub/epel/6/$basearch mirrorlist=https://mirrors.fedoraproject.org/metalink?repo=epel-6&arch=$basearch failovermethod=priority enabled=1 priority=10 gpgcheck=1 gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-EPEL-6 [...] ``` | mod_python をインストールするには、単に次のコマンドを実行します... ``` yum install mod_python ``` ... そしてその後 Apache を再起動します: ``` /etc/init.d/httpd restart ``` #### 12.4 WebDAV WebDAV はすでに有効になっているはずですが、これを確認するために /etc/httpd/conf/httpd.conf を開き、次の 3 つのモジュールがアクティブであることを確認します: ``` vi /etc/httpd/conf/httpd.conf ``` | ``` [...] LoadModule auth_digest_module modules/mod_auth_digest.so [...] LoadModule dav_module modules/mod_dav.so [...] LoadModule dav_fs_module modules/mod_dav_fs.so [...] ``` | /etc/httpd/conf/httpd.conf を修正する必要がある場合は、その後 Apache を再起動するのを忘れないでください: ``` /etc/init.d/httpd restart ``` ### 13 ProFTPd ISPConfig は vsftpd よりも proftpd のサポートが優れているため、vsftpd を削除しましょう: ``` yum remove vsftpd ``` 次に、EPEL リポジトリから ProFTPd を次のようにインストールできます: ``` yum install proftpd ``` セキュリティ上の理由から、/etc/proftpd.conf に次の行を追加することもできます(Reinaldo Carvalho に感謝;詳細はここにあります:http://proftpd.org/localsite/Userguide/linked/userguide.html): ``` vi /etc/proftpd.conf ``` | ``` [...] IdentLookups off [...] ``` | これで ProFTPd のシステム起動リンクを作成できます: ``` chkconfig --levels 235 proftpd on ``` そして最後に Proftpd を起動します: ``` /etc/init.d/proftpd start ``` ### 14 Webalizer webalizer をインストールするには、次のコマンドを実行します ``` yum install webalizer ``` ### 15 システムクロックの同期 NTP サーバーとシステムクロックを同期させたい場合は、次のようにします: ``` yum install ntp ``` chkconfig --levels 235 ntpd on ntpdate 0.pool.ntp.org /etc/init.d/ntpd start ### 16 Perl モジュールのインストール ISPConfig には SpamAssassin が付属しており、動作するためにいくつかの Perl モジュールが必要です。必要な Perl モジュールを単一のコマンドでインストールします: ``` yum install perl-HTML-Parser perl-DBI perl-Net-DNS perl-Digest-SHA1 perl-Archive-Tar perl-NetAddr-IP ``` ### 17 終わり サーバーの設定はこれで完了です。これで、次の手順に従って ISPConfig をインストールできます:http://www.ispconfig.org/manual_installation.htm ISPConfig をインストールする前に、1 つ重要なことを行う必要があります。/usr/include/stdio.h を開き、673 行目の getline を parseline に置き換えます: ``` vim /usr/include/stdio.h ``` | ``` [...] /* Likegetdelim’, but reads up to a newline.
この関数は POSIX の一部ではなく、したがって公式な キャンセルポイントはありません。しかし、POSIX インターフェースとの類似性や 実装のために、キャンセルポイントであり、 したがって THROW でマークされていません。 / extern _IO_ssize_t parseline (char *restrict __lineptr,
size_t *__restrict __n,
FILE *__restrict __stream) __wur;#endif […]
これを行わないと、次のエラーが原因でインストールが失敗します:
htpasswd.c:101: error: conflicting types for âgetlineâ
/usr/include/stdio.h:673: note: previous declaration of âgetlineâ was here
make[2]: * [htpasswd.o] Error 1
make[2]: Leaving directory `/home/install_ispconfig/compile_aps/apache_1.3.41/src/support'
make[1]: * [build-support] Error 1
make[1]: Leaving directory `/home/install_ispconfig/compile_aps/apache_1.3.41'
make: *** [build] Error 2
ERROR: Could not make Apache
ISPConfig のインストールが成功した後、/usr/include/stdio.h の変更を元に戻すことができます(ただし、ISPConfig を更新するたびに元に戻すことを忘れないでください!)。
#### 17.1 SuExec に関する注意
CGI スクリプトを suExec の下で実行したい場合は、ISPConfig によって作成されたウェブサイトのホームディレクトリとして /var/www を指定する必要があります。CentOS の suExec は /var/www を Doc_Root としてコンパイルされています。次のコマンドを実行します:
/usr/sbin/suexec -V
出力は次のようになります:
[root@server1 ~]# /usr/sbin/suexec -V
-D AP_DOC_ROOT="/var/www"
-D AP_GID_MIN=100
-D AP_HTTPD_USER="apache"
-D AP_LOG_EXEC="/var/log/httpd/suexec.log"
-D AP_SAFE_PATH="/usr/local/bin:/usr/bin:/bin"
-D AP_UID_MIN=500
-D AP_USERDIR_SUFFIX="public_html"
[root@server1 ~]#
したがって、ISPConfig で suExec を使用したい場合は、ISPConfig のインストール中にエキスパートモードを使用する場合は、デフォルトのウェブルート(/var/www)を変更しないでください(標準モードではウェブルートを変更できないため、いずれにせよ suExec を使用できます)。
### 18 リンク
- CentOS: http://www.centos.org/
- ISPConfig 2: http://www.ispconfig.org/ispconfig-2/新しい投稿を受信箱で受け取る
スパムはありません。いつでも購読を解除できます。