UbuntuにApacheをインストール
UbuntuにApacheを入れたメモ。
パッケージを更新
sudo apt update
Apacheをインストール
sudo apt install apache2
(ファイアーウォールの設定はさくらのパケットフィルターで設定したので今回は省いた)
状態の確認
sudo systemctl status apache2
常時起動
sudo systemctl enable apache2
設定ファイルの編集
モジュールを有効化
sudo a2enmod userdir
sudo a2enmod include
sudo a2enmod cgid
sudo a2enmod rewrite
sudo systemctl restart apache2
ユーザーホームに公開用ディレクトリを追加
sudo mkdir public_html
Ubuntuの設定ファイルは別れているので注意
# sudo vi /etc/apache2/conf-enabled/security.conf
ServerTokens Prod ←変更
# sudo vi /etc/apache2/mods-enabled/dir.conf
DirectoryIndex index.html index.htm ←必要な分だけ追加
# sudo vi /etc/apache2/apache2.conf
ServerName [domain name] ←70行目「#ServerRoot "/etc/apache2"」のあとくらいに追加
ServerSignature Off ←追加
## htmlでvideoタグを使用する場合は状況に応じて下記を追加
AddType video/ogg .ogv
AddType video/mp4 .mp4
AddType video/webm .webm
# sudo vi /etc/apache2/sites-enabled/000-default.conf
ServerAdmin webmaster@mailaddress
## <VirtualHost *:80> </VirtualHost>内に記述
<IfModule mod_userdir.c>
UserDir public_html
UserDir disabled root
<Directory /home/[username]/public_html>
Options FollowSymLinks
AllowOverride All
Require all granted
</Directory>
</IfModule>
<IfModule mod_mime.c>
AddHandler cgi-script .cgi
</IfModule>
# sudo vi /etc/apache2/envvars
# Apacheの実行ユーザーを変更
#export APACHE_RUN_USER=www-data
#export APACHE_RUN_GROUP=www-data
export APACHE_RUN_USER=[username]
export APACHE_RUN_GROUP=[username]
CGIファイルをcgi-binフォルダ以外にも置けるようにする
sudo apt install apache2-suexec-custom
# sudo vi /etc/apache2/suexec/www-data
2行目のpublic_html/cgi-binをドキュメントルートに変更
sudo a2enmod suexec
Apacheを再起動
sudo systemctl restart apache2
ブラウザでアクセスしてウェルカムページが表示されれば完了
ログの保存期間を変更
デフォルトは14日
sudo vi /etc/logrotate.d/apache2
##下記を変更
daily(monthlyなど)
rotate 14
SSH接続から抜けるとApacheが停止してしまう場合
ブラウザからアクセスできなくなる場合、下記を参照
cat /lib/systemd/system/apache2.service
下記設定内容のRestart=on-abort
を書き換える
[Unit]
Description=The Apache HTTP Server
After=network.target remote-fs.target nss-lookup.target
Documentation=https://httpd.apache.org/docs/2.4/
[Service]
Type=forking
Environment=APACHE_STARTED_BY_SYSTEMD=true
ExecStart=/usr/sbin/apachectl start
ExecStop=/usr/sbin/apachectl stop
ExecReload=/usr/sbin/apachectl graceful
PrivateTmp=true
Restart=on-abort
[Install]
WantedBy=multi-user.target
開いて編集、保存
## sudo vi /lib/systemd/system/apache2.service
Restart=on-abort ←alwaysに変更
設定ファイル際読み込み、Apache再起動
sudo systemctl daemon-reload
sudo systemctl start apache2
SSH接続から抜けてもブラウザアクセスできることを確認