UbuntuにApacheをインストール
UbuntuにApacheを入れたメモ。
パッケージを更新
sudo apt updateApacheをインストール
sudo apt install apache2(ファイアーウォールの設定はさくらのパケットフィルターで設定したので今回は省いた)
状態の確認
sudo systemctl status apache2常時起動
sudo systemctl enable apache2設定ファイルの編集
モジュールを有効化
sudo a2enmod userdirsudo a2enmod includesudo a2enmod cgidsudo a2enmod rewritesudo systemctl restart apache2ユーザーホームに公開用ディレクトリを追加
sudo mkdir public_htmlUbuntuの設定ファイルは分かれているので注意
# sudo vi /etc/apache2/conf-enabled/security.confServerTokens Prod ←変更
# sudo vi /etc/apache2/mods-enabled/dir.confDirectoryIndex index.html index.htm ←必要な分だけ追加
# sudo vi /etc/apache2/apache2.confServerName [domain name] ←70行目「#ServerRoot "/etc/apache2"」のあとくらいに追加ServerSignature Off ←追加
## htmlでvideoタグを使用する場合は状況に応じて下記を追加AddType video/ogg .ogvAddType video/mp4 .mp4AddType video/webm .webm
# sudo vi /etc/apache2/sites-enabled/000-default.confServerAdmin 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-dataexport APACHE_RUN_USER=[username]export APACHE_RUN_GROUP=[username]CGIファイルをcgi-binフォルダ以外にも置けるようにする
sudo apt install apache2-suexec-custom
# sudo vi /etc/apache2/suexec/www-data2行目のpublic_html/cgi-binをドキュメントルートに変更
sudo a2enmod suexecApacheを再起動
sudo systemctl restart apache2ブラウザでアクセスしてウェルカムページが表示されれば完了
ログの保存期間を変更
デフォルトは14日
sudo vi /etc/logrotate.d/apache2
##下記を変更daily(monthlyなど)rotate 14SSH接続から抜けるとApacheが停止してしまう場合
ブラウザからアクセスできなくなる場合、下記を参照
cat /lib/systemd/system/apache2.service下記設定内容のRestart=on-abortを書き換える
[Unit]Description=The Apache HTTP ServerAfter=network.target remote-fs.target nss-lookup.targetDocumentation=https://httpd.apache.org/docs/2.4/
[Service]Type=forkingEnvironment=APACHE_STARTED_BY_SYSTEMD=trueExecStart=/usr/sbin/apachectl startExecStop=/usr/sbin/apachectl stopExecReload=/usr/sbin/apachectl gracefulPrivateTmp=trueRestart=on-abort
[Install]WantedBy=multi-user.target開いて編集、保存
## sudo vi /lib/systemd/system/apache2.serviceRestart=on-abort ←alwaysに変更設定ファイル際読み込み、Apache再起動
sudo systemctl daemon-reloadsudo systemctl start apache2SSH接続から抜けてもブラウザアクセスできることを確認