サーバー設定 · 3 min read · Nov 17, 2025

完璧なサーバー - CentOS 5.6 x86_64 [ISPConfig 2] - ページ 6

12 Apache2 と PHP, Ruby, Python, WebDAV

今、PHP(これは PHP 5.1.6 です)を使って 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 on

Apache を起動します:

/etc/init.d/httpd start

12.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 に埋め込まれたスクリプト言語で、 # 開発者が動的に生成されたウェブページを書くのを簡単にすることを目的としています。 # LoadModule php5_module modules/libphp5.so # worker での "ZTS" ビルドの使用は実験的であり、 # 共有モジュールはサポートされていません。 LoadModule php5_module modules/libphp5-zts.so # # PHP インタープリタに .php 拡張子のファイルを処理させます。 # #AddHandler php5-script .php #AddType text/html .php # # index.php をディレクトリインデックスとして提供されるファイルのリストに追加します。 # DirectoryIndex index.php # # 次の行のコメントを外して、PHP が .phps ファイルを PHP ソースコードとして整形表示できるようにします: # #AddType application/x-httpd-php-source .phps |

その後、Apache を再起動します:

/etc/init.d/httpd restart

12.2 mod_ruby のインストール

CentOS 5.6 には mod_ruby パッケージがないため、自分でコンパイルする必要があります。まず、いくつかの前提条件をインストールします:

yum install httpd-devel ruby ruby-devel

次に、以下のように mod_ruby をダウンロードしてインストールします:

cd /tmp
wget http://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 |

… そして Apache を再起動します:

/etc/init.d/httpd restart

12.3 mod_python のインストール

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

CentOS には proftpd パッケージがないため、Proftpd を手動でコンパイルする必要があります:

cd /tmp/
wget –passive-ftp ftp://ftp.proftpd.org/distrib/source/proftpd-1.3.3e.tar.gz
tar xvfz proftpd-1.3.3e.tar.gz
cd proftpd-1.3.3e/
./configure –sysconfdir=/etc
make
make install
cd ..
rm -fr proftpd-1.3.3e*

proftpd バイナリは /usr/local/sbin にインストールされますが、/usr/sbin に必要なため、シンボリックリンクを作成します:

ln -s /usr/local/sbin/proftpd /usr/sbin/proftpd

次に、init スクリプト /etc/init.d/proftpd を作成します:

vi /etc/init.d/proftpd

| #!/bin/sh # $Id: proftpd.init,v 1.1 2004/02/26 17:54:30 thias Exp $ # # proftpd このシェルスクリプトは、 # proftpd の起動と停止を管理します。 # # chkconfig: - 80 30 # description: ProFTPD は、 # シンプルさ、セキュリティ、構成の容易さに焦点を当てた強化された FTP サーバーです。 # 非常に Apache に似た構成構文を特徴としており、 # 複数の「仮想」FTP サーバー、 # 匿名 FTP、および権限ベースのディレクトリの可視性を含む、 # 高度にカスタマイズ可能なサーバーインフラストラクチャを提供します。 # processname: proftpd # config: /etc/proftp.conf # pidfile: /var/run/proftpd.pid # 関数ライブラリをソースします。 . /etc/rc.d/init.d/functions # ネットワーク設定をソースします。 . /etc/sysconfig/network # ネットワークが稼働していることを確認します。 [ ${NETWORKING} = "no" ] && exit 0 [ -x /usr/sbin/proftpd ] || exit 0 RETVAL=0 prog="proftpd" start() { echo -n "$"Starting $prog: " daemon proftpd RETVAL=$? echo [ $RETVAL -eq 0 ] && touch /var/lock/subsys/proftpd } stop() { echo -n "$"Shutting down $prog: " killproc proftpd RETVAL=$? echo [ $RETVAL -eq 0 ] && rm -f /var/lock/subsys/proftpd } # どのように呼び出されたかを確認します。 case "$1" in start) start ;; stop) stop ;; status) status proftpd RETVAL=$? ;; restart) stop start ;; condrestart) if [ -f /var/lock/subsys/proftpd ]; then stop start fi ;; reload) echo -n "$"Re-reading $prog configuration: " killproc proftpd -HUP RETVAL=$? echo ;; *) echo "Usage: $prog {start|stop|restart|reload|condrestart|status}" exit 1 esac exit $RETVAL |

次に、init スクリプトを実行可能にします:

chmod 755 /etc/init.d/proftpd

次に、/etc/proftpd.conf を開き、Group を nobody に変更します:

vi /etc/proftpd.conf

| [...] Group nobody [...] |

セキュリティ上の理由から、/etc/proftpd.conf に次の行を追加することもできます(Reinaldo Carvalho に感謝;詳細情報はここで見つけることができます:http://proftpd.org/localsite/Userguide/linked/userguide.html):

vi /etc/proftpd.conf

| [...] DefaultRoot ~ IdentLookups off ServerIdent on "FTP Server ready." [...] |

FTP ユーザーが chmod コマンドを使用できるようにするために、 セクションのコメントを外します:

| [...] # Bar use of SITE CHMOD by default # # DenyAll # [...] |

今、Proftpd のシステム起動リンクを作成できます:

chkconfig --levels 235 proftpd on

そして最後に、Proftpd を起動します:

/etc/init.d/proftpd start
Share: X/Twitter LinkedIn

新しい投稿を受信箱で受け取る

スパムはありません。いつでも購読を解除できます。