perlとPHPのスクリプト動作試験その2 ― 2005年08月17日 17:00
昨日の続きを。。。。
# chmod 777 /var/www/cgi-bin/
ここも試験なので777にしました。
http://サーバーのローカルアドレス/cgi-bin/***cgi
やった~。
これで、cgiが動くのはわかったので、httpd.confを設定することにします。
# chmod 777 /var/www/cgi-bin/
ここも試験なので777にしました。
http://サーバーのローカルアドレス/cgi-bin/***cgi
やった~。
これで、cgiが動くのはわかったので、httpd.confを設定することにします。
apache2のhttpd.conf設定 ― 2005年08月17日 22:02
http://www.stackasterisk.jp/tech/systemConstruction/apache03_01.jsp
と
http://www.apache.jp/docs/mod/directives.html(英語)
古いけどhttp://www.apache.jp/old_docs/mod/core.htmlは日本語
を参考に設定。
あと、修正は前の記述は残して、新たに書き加える形で行う。
ServerTokens OS
これは、エラーなどが発生した場合エラーページに Apache のバージョンやOS 情報が表示されますが、それらを表示しないようにします。
気休めのセキュリティー対策だそうです。
#ServerTokens OS
ServerTokens ProductOnly
これで、情報は”Server: Apache”だけになり、バージョンとかOSとかは隠れます。
参考までに
ServerTokens Full Apache/2.0.48 (Red Hat Linux) PHP/4.3.4 mod_perl/1.26
ServerTokens OS Apache/2.0.48 (Red Hat Linux)
ServerTokens Minimal Apache/2.0.48
ServerTokens ProductOnly Apache
ServerRoot "/etc/apache2"
設定ファイルの相対パスは、このディレクトリを基準に取られます。
今後の参考程度に、豆知識。
User apache
Group apache
はそのままいいみたい。
User apacheが乗っ取られてもapacheだけで被害が食い止められる、だそうです。
ServerAdmin root@localhost
はサーバー管理者のメールアドレスを設定する。
#ServerAdmin root@localhost
ServerAdmin root@ホスト名
#ServerName new.host.name:80
の次に
ServerName サーバー名
を記入。
ただここで設定するサーバ名はDNSに登録されている名前を使用する。
あ、まだDNS設定してなかった。
あとで、DNS設定したら記入することにします。
メモ:ホスト名は、いわゆるwwwとかを取ったもので、サーバー名はFULL。
UseCanonicalName Off
UseCanonicalNameディレクティブをOnにすることによって、ServerName ディレクティブに設定されたサーバ名で「/」を補完した上でリダイレクトすることが可能となります。
例えば「http://www.****.co.jp/test」は「http://www.****.co.jp/test/」として処理されるようになります。 ただ、今時のブラウザは勝手に/をつけて処理してくれるようです。
#UseCanonicalName Off
UseCanonicalName on
<Directory />
#Options FollowSymLinks
#AllowOverride None
Options FollowSymLinks ExecCGI Includes
AllowOverride None
</Directory>
#自分だけのサーバーなので使いやすいようにルートでもCGIとか使用できるようにします。
#<Directory "/var/www/html">
<Directory "/home/www/">
#DocumentRootを変えたのでここも同じく変えます。
# Options Indexes FollowSymLinks
Options Indexes FollowSymLinks MultiViews ExecCGI Includes
#ここも、自分だけのサーバーなのでCGIとか使用できるようにしました。
#DirectoryIndex index.html index.html.var
DirectoryIndex index.html index.htm index.shtml index.php index.php4 index.php3 index.cgi
index.html.var
#http://サーバ名/ でアクセスするとhttp://サーバ名/index.htmlでアクセスしたときと
#同じページが表示させるようにしていますが、その表示させるファイルえお設定します。
#ファイルがないときの順番に記入します。
#なおindex.html.varは純粋なファイル名ではなくマッピング用のファイルになっています。
#ドキュメントルート内には各言語に対応したindex.html.* というファイルが保存されてい
#ます(*は任意の文字列)。
#アクセスするユーザが使用している言語にあわせて、表示するページを変化させるための
#設定ファイルがindex.html.varです。
HostnameLookups Off
#ログファイルのIPアドレス部をホストの名前で保存する時Onにする。
#DNS引きはかなり時間がかかるので、重い負荷のサイトはこの指示をoffにすべきです。だって。
#なので、Offにしました。というかデフォルト。
#AddHandler cgi-script .cgi
cgi-bin以外でcgiを実行すする設定にしたので、拡張子.cgiがスクリプトとして動くように設定します。
#AddHandler cgi-script .cgi
AddHandler cgi-script .cgi
SSIはデフォルトで設定になっているようなので、設定の必要はないと思います。たぶん。
まだ、試験していないのでわかりません。全部設定が終わったら試してみます。
これで、ほとんど基本的な設定は終了です。
ただ、自分はバーチャルホストを設定しているので以下も設定します。
DDNSで自宅サーバー運用しているんですが、no-ipは中国からはつながらないみたいなんです。
で、ddoもバーチャルで動かそうということです。
DDNSの不安定さを考えると、それもいいかなとも思って。
#NameVirtualHost *
バーチャルホストを有効にします。
#NameVirtualHost *
NameVirtualHost *
http://www.***.no-ip.org/とhttp://***.ddo.jp/が同じところを参照するように設定します。
※何故かddo.jpのほうはwwwが無くてもつながります。
#
# VirtualHost example:
# Almost any Apache directive may go into a VirtualHost container.
# The first VirtualHost section is used for requests without a known
# server name.
#
#<VirtualHost *>
# ServerAdmin webmaster@dummy-host.example.com
# DocumentRoot /www/docs/dummy-host.example.com
# ServerName dummy-host.example.com
# ErrorLog logs/dummy-host.example.com-error_log
# CustomLog logs/dummy-host.example.com-access_log common
#</VirtualHost>
の後ろ(一番最後)に追加します。
<VirtualHost *>
ServerAdmin webmaster@***.no.ip.org
DocumentRoot /home/www/
ServerName www.***.no-ip.org
ErrorLog /var/log/httpd/error_log
TransferLog /var/log/httpd/access_log
</VirtualHost>
<VirtualHost *>
ServerAdmin webmaster@***.no.ip.org
DocumentRoot /home/httpd/html
ServerName www.+++.ddo.jp
ErrorLog /var/log/httpd/ddo/error_log
TransferLog /var/log/httpd/ddo/access_log
</VirtualHost>
たぶんこれでOKのはず。
では、restert
# /etc/init.d/apache2 restart
httpdを停止中: [ OK ]
httpdを起動中: [失敗]
忘れていた。
ddoの分のエラーログなどのディレクトリ関係作っていなかった。
# mkdir /var/log/httpd/ddo
# vi /var/log/httpd/ddo/error_log
空ファイルで保存
# vi /var/log/httpd/ddo/access_log
空ファイルで保存
これでどうだ。
# /etc/init.d/apache2 restart
httpdを停止中: [失敗]
httpdを起動中: [ OK ]
停止は前に開始していないので失敗するよな。
よし終了。
apacheのテスト画面が出ればOK.
http://サーバーのローカルアドレス/
Ok.
とりあえず、これでhttpd.confの設定は終了。チューニングもあるらしいけどとりあえず希望のソフト関係が動くまで、install関係を続けます。
と
http://www.apache.jp/docs/mod/directives.html(英語)
古いけどhttp://www.apache.jp/old_docs/mod/core.htmlは日本語
を参考に設定。
あと、修正は前の記述は残して、新たに書き加える形で行う。
ServerTokens OS
これは、エラーなどが発生した場合エラーページに Apache のバージョンやOS 情報が表示されますが、それらを表示しないようにします。
気休めのセキュリティー対策だそうです。
#ServerTokens OS
ServerTokens ProductOnly
これで、情報は”Server: Apache”だけになり、バージョンとかOSとかは隠れます。
参考までに
ServerTokens Full Apache/2.0.48 (Red Hat Linux) PHP/4.3.4 mod_perl/1.26
ServerTokens OS Apache/2.0.48 (Red Hat Linux)
ServerTokens Minimal Apache/2.0.48
ServerTokens ProductOnly Apache
ServerRoot "/etc/apache2"
設定ファイルの相対パスは、このディレクトリを基準に取られます。
今後の参考程度に、豆知識。
User apache
Group apache
はそのままいいみたい。
User apacheが乗っ取られてもapacheだけで被害が食い止められる、だそうです。
ServerAdmin root@localhost
はサーバー管理者のメールアドレスを設定する。
#ServerAdmin root@localhost
ServerAdmin root@ホスト名
#ServerName new.host.name:80
の次に
ServerName サーバー名
を記入。
ただここで設定するサーバ名はDNSに登録されている名前を使用する。
あ、まだDNS設定してなかった。
あとで、DNS設定したら記入することにします。
メモ:ホスト名は、いわゆるwwwとかを取ったもので、サーバー名はFULL。
UseCanonicalName Off
UseCanonicalNameディレクティブをOnにすることによって、ServerName ディレクティブに設定されたサーバ名で「/」を補完した上でリダイレクトすることが可能となります。
例えば「http://www.****.co.jp/test」は「http://www.****.co.jp/test/」として処理されるようになります。 ただ、今時のブラウザは勝手に/をつけて処理してくれるようです。
#UseCanonicalName Off
UseCanonicalName on
<Directory />
#Options FollowSymLinks
#AllowOverride None
Options FollowSymLinks ExecCGI Includes
AllowOverride None
</Directory>
#自分だけのサーバーなので使いやすいようにルートでもCGIとか使用できるようにします。
#<Directory "/var/www/html">
<Directory "/home/www/">
#DocumentRootを変えたのでここも同じく変えます。
# Options Indexes FollowSymLinks
Options Indexes FollowSymLinks MultiViews ExecCGI Includes
#ここも、自分だけのサーバーなのでCGIとか使用できるようにしました。
#DirectoryIndex index.html index.html.var
DirectoryIndex index.html index.htm index.shtml index.php index.php4 index.php3 index.cgi
index.html.var
#http://サーバ名/ でアクセスするとhttp://サーバ名/index.htmlでアクセスしたときと
#同じページが表示させるようにしていますが、その表示させるファイルえお設定します。
#ファイルがないときの順番に記入します。
#なおindex.html.varは純粋なファイル名ではなくマッピング用のファイルになっています。
#ドキュメントルート内には各言語に対応したindex.html.* というファイルが保存されてい
#ます(*は任意の文字列)。
#アクセスするユーザが使用している言語にあわせて、表示するページを変化させるための
#設定ファイルがindex.html.varです。
HostnameLookups Off
#ログファイルのIPアドレス部をホストの名前で保存する時Onにする。
#DNS引きはかなり時間がかかるので、重い負荷のサイトはこの指示をoffにすべきです。だって。
#なので、Offにしました。というかデフォルト。
#AddHandler cgi-script .cgi
cgi-bin以外でcgiを実行すする設定にしたので、拡張子.cgiがスクリプトとして動くように設定します。
#AddHandler cgi-script .cgi
AddHandler cgi-script .cgi
SSIはデフォルトで設定になっているようなので、設定の必要はないと思います。たぶん。
まだ、試験していないのでわかりません。全部設定が終わったら試してみます。
これで、ほとんど基本的な設定は終了です。
ただ、自分はバーチャルホストを設定しているので以下も設定します。
DDNSで自宅サーバー運用しているんですが、no-ipは中国からはつながらないみたいなんです。
で、ddoもバーチャルで動かそうということです。
DDNSの不安定さを考えると、それもいいかなとも思って。
#NameVirtualHost *
バーチャルホストを有効にします。
#NameVirtualHost *
NameVirtualHost *
http://www.***.no-ip.org/とhttp://***.ddo.jp/が同じところを参照するように設定します。
※何故かddo.jpのほうはwwwが無くてもつながります。
#
# VirtualHost example:
# Almost any Apache directive may go into a VirtualHost container.
# The first VirtualHost section is used for requests without a known
# server name.
#
#<VirtualHost *>
# ServerAdmin webmaster@dummy-host.example.com
# DocumentRoot /www/docs/dummy-host.example.com
# ServerName dummy-host.example.com
# ErrorLog logs/dummy-host.example.com-error_log
# CustomLog logs/dummy-host.example.com-access_log common
#</VirtualHost>
の後ろ(一番最後)に追加します。
<VirtualHost *>
ServerAdmin webmaster@***.no.ip.org
DocumentRoot /home/www/
ServerName www.***.no-ip.org
ErrorLog /var/log/httpd/error_log
TransferLog /var/log/httpd/access_log
</VirtualHost>
<VirtualHost *>
ServerAdmin webmaster@***.no.ip.org
DocumentRoot /home/httpd/html
ServerName www.+++.ddo.jp
ErrorLog /var/log/httpd/ddo/error_log
TransferLog /var/log/httpd/ddo/access_log
</VirtualHost>
たぶんこれでOKのはず。
では、restert
# /etc/init.d/apache2 restart
httpdを停止中: [ OK ]
httpdを起動中: [失敗]
忘れていた。
ddoの分のエラーログなどのディレクトリ関係作っていなかった。
# mkdir /var/log/httpd/ddo
# vi /var/log/httpd/ddo/error_log
空ファイルで保存
# vi /var/log/httpd/ddo/access_log
空ファイルで保存
これでどうだ。
# /etc/init.d/apache2 restart
httpdを停止中: [失敗]
httpdを起動中: [ OK ]
停止は前に開始していないので失敗するよな。
よし終了。
apacheのテスト画面が出ればOK.
http://サーバーのローカルアドレス/
Ok.
とりあえず、これでhttpd.confの設定は終了。チューニングもあるらしいけどとりあえず希望のソフト関係が動くまで、install関係を続けます。
最近のコメント