コンピュータ/ソフトウェア関連Tips

Apache 2.4のインストール(FreeBSD版)

作成日: Jul 20, 2014
更新日: Dec 27, 2019
カテゴリー: FreeBSD タグ: FreeBSD

FreeBSD 12.0RにApache 2.4をインストールしたときのメモです。 IP Based Virtual hostの設定をして、port 80と port 12888でlistenするようにします。

$ sudo pkg install apache24

インストール時のメッセージに、設定で気をつけることが書いてあります。

To run apache www server from startup, add apache24_enable="yes"
in your /etc/rc.conf. Extra options can be found in startup script.

Your hostname must be resolvable using at least 1 mechanism in
/etc/nsswitch.conf typically DNS or /etc/hosts or apache might
have issues starting depending on the modules you are using.

/etc/hostsが、

::1                     localhost localhost.my.domain
127.0.0.1               localhost localhost.my.domain

のようになっていたら、

::1                     localhost localhost.my.domain
127.0.0.1               localhost myhostname localhost.my.domain

のようにする。(上記の例は、ホスト名: myhostname)

/etc/rc.confに、apache24_enable=“YES"を追加。

$ sudo vi /etc/rc.conf
apache24_enable="YES"

httpd.confの修正

$ cd /usr/local/etc/apache24
$ sudo cp -p httpd.conf httpd.conf.original
$ sudo vi httpd.conf
Listen 80
↓
#Listen 80

<IfModule mpm_prefork_module>
        #LoadModule cgi_module libexec/apache24/mod_cgi.so
</IfModule>
↓
<IfModule mpm_prefork_module>
        LoadModule cgi_module libexec/apache24/mod_cgi.so
</IfModule>

ServerAdmin you@example.com
↓
ServerAdmin hogehoge@example.com

#ServerName www.example.com:80
↓
ServerName microserver

Port 80 バーチャルホスト用設定

$ cd /usr/local/etc/apache24/Includes
$ sudo vi vhost-80.conf

中身は、

Listen 80
<VirtualHost *:80>
    <Directory "/tank/data/www/80">
        Options Indexes FollowSymLinks ExecCGI
        AllowOverride All
        Require all denied
        Require ip 192.168.0.0/16
    </Directory>
    DocumentRoot "/tank/data/www/80/html"
    ErrorLog "/tank/data/www/80/log/httpd-error.log"
    CustomLog "/tank/data/www/80/log/httpd-access.log" combined
    #Alias /voice/ "/tank/data/www/80/html/voice/"
    Alias /media/ "/wd1/data/"
    <Directory "/wd1/data">
        Options Indexes FollowSymLinks
        AllowOverride All
        Require all denied
        Require ip 192.168.0.0/16
    </Directory>
    ScriptAlias /cgi-bin/ "/tank/data/www/80/cgi-bin/"
    Alias /munin/ "/usr/local/www/munin/"
    AddType application/x-httpd-php .php .html
    <Directory /usr/local/www/munin>
       Require all granted
    </Directory>
    <FilesMatch “\.php$">
        SetHandler application/x-httpd-php
    </FilesMatch>
    <FilesMatch “\.phps$">
        SetHandler application/x-httpd-php-source
    </FilesMatch>
</VirtualHost>

Port 12888 バーチャルホスト用設定

$ sudo vi vhost-12888.conf

中身は、

Listen 12888
<VirtualHost *:12888>
    <Directory "/tank/data/www/12888">
        Options Indexes FollowSymLinks
        AllowOverride All
        Require all granted
        #Require ip 192.168.0.0/16
    </Directory>
    DocumentRoot "/tank/data/www/12888/html"
    ErrorLog "/tank/data/www/12888/log/httpd-error.log"
    CustomLog "/tank/data/www/12888/log/httpd-access.log" combined
    #Alias /voice/ "/tank/data/www/12888/html/voice/"
    ScriptAlias /cgi-bin/ "/tank/data/www/12888/cgi-bin/"
</VirtualHost>

CGI実行時の環境変数

CGI実行時の環境変数を変更する場合は、以下を参考に追記する。

SetEnv PATH /usr/local/bin:${PATH}

設定ファイルのチェック

$ apachectl configtest

Apacheの起動

$ sudo /usr/local/etc/rc.d/apache24 start
Performing sanity check on apache24 configuration:
Syntax OK
Starting apache24.

エラーとなった場合

Parse error: syntax error, unexpected 'version' (T_STRING) in /usr/local/www/munin/index.html on line 1

のように表示されたら、PHPのshort open tagがyesになっている可能性がある。

ソースコードが見えてしまった場合

$ apachectl -M|grep cgi
 cgi_module (shared)

cgi_moduleが表示されるか確認する。表示されない場合は、mod_cgi.soを有効化する。