httpd.confでMacportsのApacheを設定

今回は、MacportsでMacのローカルにインストールしたApache2の設定例をレポートします。設定は、httpd.confというApacheの設定ファイルを編集して行います。Perl, PHP, SSIはもちろん、phpMyAdminやバーチャルホストも使用出来るようにしてみましょう。

なお、今回ご紹介する設定例はテスト環境を想定したものになっています。本番環境では、そのまま使用出来ませんので、ご注意下さい。

まずターミナルで下記コマンドを実行して、httpd.confのパーミッションを666に変更します。

ターミナル

sudo chmod 666 /opt/local/apache2/conf/httpd.conf

パーミッションを変更したら、Finder上で編集できるようになるので、/opt/local/apache2/conf/httpd.confをエディタで開き、編集していきます。行番号に関しては、環境やバージョンによって変わってくると思うので、目安とお考え下さい。ポート番号は、デフォルトでは80番ですが、MacのWeb共有が80番を使用しているので、私の場合はMacportsのApacheでは8080番あたりを使用するようにしています。

/opt/local/apache2/conf/httpd.conf

#40行目
Listen 80
#↓
Listen 使用するポート番号

#152行目
ServerAdmin [email protected]
#↓
ServerAdmin 自分のメールアドレス

#161行目
#ServerName www.example.com:80
#↓
ServerName localhost:使用するポート番号

#178行目
<Directory />
    Options FollowSymLinks
    AllowOverride None
    Order deny,allow
    Deny from all
</Directory>
#↓
<Directory />
    Options All
    AllowOverride All
    Order allow,deny
    Deny from all
</Directory>

#195行目(先頭に#のついたコメント行は記載していません。)
<Directory "/opt/local/apache2/htdocs">
    Options Indexes FollowSymLinks
    AllowOverride None
    Order allow,deny
    Allow from all
</Directory>
#↓
<Directory "/opt/local/apache2/htdocs">
    Options Indexes FollowSymLinks Includes ExecCGI
    AllowOverride All
    Order allow,deny
    Allow from all
</Directory>

#229行目
<IfModule dir_module>
    DirectoryIndex index.html
</IfModule>
#↓
<IfModule dir_module>
    DirectoryIndex index.html index.shtml index.htm index.cgi index.php
</IfModule>

#298行目(先頭に#のついたコメント行は記載していません。)
<IfModule alias_module>
    ScriptAlias /cgi-bin/ "/opt/local/apache2/cgi-bin/"
</IfModule>
#↓
<IfModule alias_module>
    #ScriptAlias /cgi-bin/ "/opt/local/apache2/cgi-bin/"
</IfModule>

#359行目(先頭に#のついたコメント行は記載していません。)
<IfModule mime_module>
    TypesConfig conf/mime.types
    AddType application/x-compress .Z
    AddType application/x-gzip .gz .tgz
</IfModule>
#↓
<IfModule mime_module>
    TypesConfig conf/mime.types
    AddType application/x-compress .Z
    AddType application/x-gzip .gz .tgz
    AddHandler cgi-script .cgi .pl
    AddType text/html .shtml .html
    AddOutputFilter INCLUDES .shtml .html
</IfModule>

#最後あたりに追加
Include conf/extra/mod_php.conf

これでhttp://自分のIPアドレス:ポート番号/のURLにWebブラウザでアクセスすると、/opt/local/apache2/htdocsのファイルを表示できるように設定できました。また、PerlやPHPが使えるようになった他、拡張子が.shtmlのファイルだけでなく.htmlのファイルでもSSIが使用出来るようになりました。設定を反映させるには、Apacheを再起動する必要がありますが、その前にphpMyAdminの設定をしておきましょう。

MacportsのApacheでphpMyAdminを使用する場合

次は、phpMyAdminの設定をしましょう。ターミナルで下記コマンドを実行し、httpd-phpmyadmin.confを作成し、パーミッションを666に変更します。

ターミナル

sudo cp /opt/local/apache2/conf/extra/httpd-vhosts.conf /opt/local/apache2/conf/extra/httpd-phpmyadmin.conf
sudo chmod 666 /opt/local/apache2/conf/extra/httpd-phpmyadmin.conf

これで、/opt/local/apache2/conf/extraにhttpd-phpmyadmin.confが作成されているので、エディタで開いて、すべての行を削除して下記を記述します。

/opt/local/apache2/conf/extra/httpd-phpmyadmin.conf

<Directory /opt/local/www/phpmyadmin>
    Options FollowSymLinks
    AllowOverride All
    Order deny,allow
    Deny from all
    Allow from 自分のIPアドレス
</Directory>
Alias /phpmyadmin /opt/local/www/phpmyadmin

編集が終わったら、ターミナルでhttpd-phpmyadmin.confのパーミッションを644に戻します。

ターミナル

sudo chmod 644 /opt/local/apache2/conf/extra/httpd-phpmyadmin.conf

最後に/opt/local/apache2/conf/httpd.confをエディタで開いて、最後の行あたりに下記を追加します。

/opt/local/apache2/conf/httpd.conf

Include conf/extra/httpd-phpmyadmin.conf

httpd.confも編集が終わったら、パーミッションを644に戻しておきましょう。

ターミナル

sudo chmod 644 /opt/local/apache2/conf/httpd.conf

以上で設定は完了です。一応、httpd.confの文法チェックをしておきましょう。ターミナルで下記コマンドを実行します。

ターミナル

sudo /opt/local/apache2/bin/apachectl configtest

もし、エラーや警告が表示された場合は、表示された内容をヒントに修正しましょう。Syntax OKと表示されれば問題ありません。いよいよApache2を起動しましょう。 ターミナルで下記コマンドを実行します。すでに起動させている場合は、再起動させて下さい。(先頭に#のついた行は入力しないで下さい。)

ターミナル

#Apache2起動
sudo /opt/local/apache2/bin/apachectl start
#Apache2再起動
sudo /opt/local/apache2/bin/apachectl restart
#Apache2停止
sudo /opt/local/apache2/bin/apachectl stop

Macを起動した時に自動でApache2も起動させたい場合は、下記コマンドを実行します。私の場合は、自動起動はさせずに必要な時に手動で起動してます。

ターミナル

sudo launchctl load -w /Library/LaunchDaemons/org.macports.apache2.plist

Webブラウザを起動し、http://自分のIPアドレス:ポート番号/のURLにアクセスしてみましょう。/opt/local/apache2/htdocsのファイルが表示されます。また、http://自分のIPアドレス:ポート番号/phpmyadmin/にアクセスするとphpMyAdminのログイン画面が表示されます。

これでMacのローカルにテストサイトを構築することが出来るようになりましたが、このままでは1つのサイトしか作ることが出来ません。しかし、Apacheのバーチャルホストという機能を使用することで複数のサイトを構築出来るようになります。バーチャルホストの設定方法に関しましては、「MacportsのApacheでバーチャルホストを設定」をご覧下さい。。