VineLinux-Apacheの設定

Apache-httpdのインストール

apacheのパッケージ名はhttpdです。


# apt-get install httpd

Apache2の設定ファイル編集

設定ファイルを編集します。


# vi /etc/apache2/conf/httpd.conf

基本的に設定

以下が基本的に設定が必要な項目です。

デフォルトディレクトリ「/var/www/html」でのWebサイトの公開とCGI実行ができるように設定します。

指定 説明
ServerAdmin root@localmail.com サーバ管理者のメールアドレス
ServerName www.example.com:80 #を削除して自分のドメイン名を指定します。ドメインの後にポート番号「:80」を付けます。
Options FollowSymLinks ExecCGI CGIの実行を許可します。なお、Indexesは削除します。
AllowOverride All .htaccessファイルで可能な設定を全て許可する。
DirectoryIndex index.html index.cgi ディレクトリ名のみでアクセスできるファイル名を追加します。
AddHandler cgi-script .cgi .rb CGIとして扱うファイルの拡張子を追加します。

自身(ローカルアクセス)のアクセスのみ許可する

開発環境としてapache2を用いる場合など、一時的に外部からのアクセスを完全に遮断する場合には以下の設定を変更します。


#Listen 80
Listen 127.0.0.1:80

デーモンの起動

設定終了後にデーモンを再起動して、設定反映します。


# /etc/rc.d/init.d/apache2 restart
Apache2 HTTP Serverを停止中:                              [ 失敗 ]
Apache2 HTTP Serverを起動中:                              [  OK  ]

自動起動設定

OS起動時に自動でデーモンを起動するように設定します。


# chkconfig apache2 on
# chkconfig --list apache2
apache2         0:off   1:off   2:on    3:on    4:on    5:on    6:off 6:off

vine linuxでapache2サービスが起動しない場合

apache2のサービスを起動しようとすると、以下のエラーメッセージが出て、起動できない場合があります。


[root@xxxx ~]# /etc/rc.d/init.d/apache2 restart
Apache2 HTTP Serverを停止中:                                    [ 失敗 ]
Apache2 HTTP Serverを起動中: [Sat Dec 17 20:36:16 2016] [crit] Apache is running
a threaded MPM, but your PHP Module is not compiled to be threadsafe.  You need 
to recompile PHP.
Pre-configuration failed
                                                                [ 失敗 ]

既知バグのようで、トラッキングシステム(ID=0001191)上に登録されていた。


Apache2はprefork(シングルスレッド)と
worker(マルチスレッド、こちらがデフォルト)の2種類のMPMが用意されていま
すが、php5はマルチスレッド実行できるようにbuildしていません。

php5を使っている場合は、MPMをpreforkで実行するとのこと。


[root@xxxx ~]# update-alternatives --config apache2

2 プログラムがあり 'apache2' を提供します。

  選択       コマンド
-----------------------------------------------
 + 1           /usr/sbin/apache2.worker
*  2           /usr/sbin/apache2.prefork

ここで「2」を選択すると、設定が切り替わる。

その後apache2をrestartすると正常に起動するようになった。