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すると正常に起動するようになった。