2024/05/02(木)Ubuntu 24.04 インストール (6)
sudo apt install apache2いくつかのモジュールを有効化します。
sudo a2enmod userdir sudo a2enmod include sudo a2enmod cgid sudo systemctl restart apache2これらは、実際には/etc/apache2/mods-availableにあるファイルから/etc/apache2/mods-enabledへリンクを張っていて、mods-enabled以下のファイルが設定に読み込まれるという仕組みです。
次に、自分のよく使う設定をしていきます。public_htmlの有効化とcgiの有効化です。デフォルトで使われている設定ファイルは/etc/apache2/sites-available/000-default.confですが、これをを適当な名前 (custom.confとした) でコピーして設定することにします。
<IfModule mod_userdir.c> UserDir public_html UserDir disabled root <Directory /home/*/public_html> (ここは各自違うと思う) </Directory> </IfModule> <IfModule mod_mime.c> AddHandler cgi-script .cgi </IfModule>を(<VirtualHost *:80> </VirtualHost>の中に)加えます。
public_html以下の設定は、ユーザを最大限信用するなら、例えば、
AllowOverride All Options All Order allow,deny Allow from allのような感じでしょうか。
sudo a2dissite 000-default sudo a2ensite custom sudo systemctl restart apache2で、000-defaultを無効化し、customを有効化します。
22.04以降ではこれだけではpublic_htmlが見えません。どうやら22.04から、各userのhome directoryのpermissionのdefaultが755から750に変わったようです。
sudo chmod 755 /home/kashiとしたら見えるようになりました。
さらに、自分の好みで、public_html以下に置いたcgiはそのディレクトリのユーザの権限で動くようにする、suexecを設定します。
sudo apt install apache2-suexec-custom /etc/apache2/suexec/www-data の2行目を、public_html/cgi-bin → public_html に。 sudo a2enmod suexec sudo systemctl restart apache2次にphpの設定。8.3になりました。
sudo apt install php sudo apt install libapache2-mod-php /etc/apache2/mods-available/php8.3.conf で、php_admin_value engine Off をコメントアウト (ユーザのpublic_html以下でphpを使えるようにする。) sudo systemctl restart apache2動作確認は、ホームに public_html/phpinfo.php を
<?php phpinfo(); ?>の内容で作成してブラウザでアクセスしてみると分かるでしょう。
最後に、logrotateの設定を。/var/log/apache2 以下のlogが、デフォルトだと14日しか保存されないので直します。/etc/logrotate.d/apache2 の中の、
daily rotate 14という行を、
monthly rotate 120とし、10年間はもつようにしました。