Apache 設定ファイルのカスタマイズ
ドキュメントルートとログディレクトリを作りましたので、次にApacheの設定ファイルを編集します。
/usr/local/etc/apache24/httpd.conf の編集
- サーバー管理者のメールアドレスを編集(グローバルネットに公開するならオフィシャルなメールアドレスが必須ですが、身内だけならとりあえずメールが届くアドレスを設定します)
ServerAdmin wordpress@example.com
- phpMyAdminをエイリアスするために、次の記述をコメントアウトします。
#<Directory /> # AllowOverride none # Require all denied #</Directory>
- phpMyAdmin を使うためのエイリアスを定義しますが、不特定の人間がデータを盗んだり改ざんできないようにアクセス制限を行う必要がありますので、下記太字部分のようにアクセスを許可するネットワークを書きます。以下の例はプライベートアドレスからのアクセスのみを許可する場合の例です。自ネットワークのアドレスや、管理者PCのIPアドレスなど、アクセスを許可するアドレスを限定する必要があります。
# phpMyAdmin <Directory "/usr/local/www/phpMyAdmin/"> Options none AllowOverride Limit Order Deny,Allow Deny from all Allow from 127.0.0.1 10. 172.16.0.0/255.240.0.0 192.168. </Directory>
- ドキュメントルートをデフォルトの/usr/local の下から /home/wordpress に変更します。
DocumentRoot "/home/wordpress/homepage"
<Directory "/home/wordpress/homepage">
Options Indexes FollowSymLinks
AllowOverride All #テスト環境なので None→All
Require all granted
</Directory>
- ディレクトリインデックスに index.php を追加
DirectoryIndex index.html index.php
- エラーログの記録位置を wordpress 以下に変更します。
ErrorLog "/home/wordpress/log/httpd-error.log"
- アクセスログファイルの形式をより詳細なフォーマットにし、保存位置を wordpress 以下に変更します。
#CustomLog "/var/log/httpd-access.log" common
CustomLog "/home/wordpress/log/httpd-access.log" combined
- phpMyAdmin のエイリアスを定義します。
これは、セキュリティー対策のためです。この例ではDatabase という名称に変更していますが、何か別の利用者間でだけわかる単語に変更することをおすすめします。この記述により、http://サーバーのアドレス/Database/ というURLでphpMyAdmin にアクセス出来るようになります。
Alias /Database/ "/usr/local/www/phpMyAdmin/"
- CGIディレクトリも同様に wordpress 以下に変更します。
この記述により、http://サーバーのアドレス/cgi-bin/ というURLでCGIディレクトリのコマンドにアクセス出来るようになります。
#ScriptAlias /cgi-bin/ "/usr/local/www/apache24/cgi-bin/" ScriptAlias /cgi-bin/ "/home/wordpress/cgi-bin/"
- CGIとして認識されるファイル拡張子とPHPとして認識される拡張子を定義します。
AddHandler cgi-script .cgi AddHandler php5-script .php
- Apache の動作リソース定義するファイルをコメントアウトしておきます。
Include etc/apache24/extra/httpd-mpm.conf
- エラーメッセージを日本語で出力するために以下の行を見つけてコメントアウトします。
Include etc/apache24/extra/httpd-multilang-errordoc.conf LoadModule include_module libexec/apache24/mod_include.so LoadModule negotiation_module libexec/apache24/mod_negotiation.so
- 投稿URLを通し番号から “/2015/09/10/about_apache_configure” 風に書き直してくれるリライトモジュールを登録します。
LoadModule rewrite_module libexec/apache24/mod_rewrite.so
- Apacheのオンラインマニュアルを有効にしたい場合はコメントアウトします。(オプション)
Include etc/apache24/extra/httpd-manual.conf
- Apacheデフォルト設定ファイルを使用する場合コメントアウトします。
Include etc/apache24/extra/httpd-default.conf
/usr/local/etc/apache24/extra/httpd-default.conf のカスタマイズ
- クライアントとの通信が途切れた場合のタイムアウトを長めに設定します。
Timeout 300
- アクセスしてきたホスト情報を、可能ならIPアドレスではなくホスト名でアクセスログに記録します。
HostnameLookups On
/usr/local/etc/apache24/extra/httpd-mpm.conf
- ネットワーク帯域とCPUパワーに合わせて同時接続可能なコネクション数を調整します。WordPressではツイッターに埋め込まれたURLなどにより同時アクセスが発生するとMySQLサーバーに異常負荷が掛かるため、あらかじめセッション数を制限しておきます。
MaxRequestWorkers 50
Apache を起動する
以上の作業で、Apache Webサーバーの設定が終了しましたので、いよいよApacheを起動させることが出来ます。
# /usr/local/etc/rc.d/apache24 start Performing sanity check on apache24 configuration: Syntax OK Starting apache24.
このように、「Starting…..」とメッセージが出ればOK。
サーバーの公式名(DNSに登録されている名称)と、インストール中マシンのホスト名が異なっている場合は、エラーが発生してApacheを起動できない場合があります。
Performing sanity check on apache24 configuration: AH00557: httpd: apr_sockaddr_info_get() failed for vwp2 AH00558: httpd: Could not reliably determine the server's fully qualified domain name, using 127.0.0.1. Set the 'ServerName' directive globally to suppress this message Syntax OK Starting apache24. AH00557: httpd: apr_sockaddr_info_get() failed for vwp2 AH00558: httpd: Could not reliably determine the server's fully qualified domain name, using 127.0.0.1. Set the 'ServerName' directive globally to suppress this message
この場合、httpd.conf 中のServerName を次のようなIPアドレスで記述し直します。
# If your host doesn't have a registered DNS name, enter its IP address here. # ServerName 192.168.1.39:80
ログファイルの所有者を root:wheel から www:www に変更しておくと後々便利です。
chown www:www /home/wordpress/log/*
余談ですが、IPアドレスをDHCPサーバーから取得している場合、FreeBSD のIPアドレスは次のようにして確認できます。
# ifconfig de0: flags=8843<UP,BROADCAST,RUNNING,SIMPLEX,MULTICAST> metric 0 mtu 1500 ether 00:03:ff:0b:72:99 inet 192.168.1.39 netmask 0xffffff00 broadcast 192.168.1.255 nd6 options=29<PERFORMNUD,IFDISABLED,AUTO_LINKLOCAL> media: Ethernet 100baseTX <full-duplex> status: active plip0: flags=8810<POINTOPOINT,SIMPLEX,MULTICAST> metric 0 mtu 1500 nd6 options=29<PERFORMNUD,IFDISABLED,AUTO_LINKLOCAL> lo0: flags=8049<UP,LOOPBACK,RUNNING,MULTICAST> metric 0 mtu 16384 options=600003<RXCSUM,TXCSUM,RXCSUM_IPV6,TXCSUM_IPV6> inet6 ::1 prefixlen 128 inet6 fe80::1%lo0 prefixlen 64 scopeid 0x3 inet 127.0.0.1 netmask 0xff000000 nd6 options=21<PERFORMNUD,AUTO_LINKLOCAL>
Unixコマンドに親しみのない方のため、この仮想WordPressサーバーのIPアドレスを簡単に確認するためのアカウントを準備しました。”ip”というアカウントでコンソールからログインしてみてください。
下図のように、サーバーのIPアドレスが表示されます。
WebサーバーからURLをアクセスして次のような表示になれば、ここまでの作業は完了です。
まだ、何もコンテンツがないので、homepage ディレクトリのインデックスが表示されています。
関連項目