httpdの再起動 (CentOS7)
$ sudo systemctl restart httpd.service
SELinuxが有効になっているサーバでの注意点
$ getenforce
Enforcing
$ cmp /var/www/html/data/foo /tmp/foo
$ ls -l /var/www/html/data/foo /tmp/foo
-rw-r--r--. 1 glire glire 20273 Feb 5 15:09 /tmp/foo
-rw-r--r--. 1 glire glire 20273 Feb 5 15:09 /var/www/html/data/foo
$ ls -Z /var/www/html/data/foo /tmp/foo
-rw-r--r--. glire glire unconfined_u:object_r:user_tmp_t:s0 /tmp/foo
-rw-r--r--. glire glire unconfined_u:object_r:httpd_sys_content_t:s0 /var/www/html/data/foo
$ mv -i /tmp/foo /var/www/html/data
mv: overwrite '/var/www/html/data/foo'? y
$ ls -Z /var/www/html/data/foo # このファイルはアクセスできない
-rw-r--r--. glire glire unconfined_u:object_r:user_tmp_t:s0 /var/www/html/data/foo
$ restorecon /var/www/html/data/foo # ラベルuser_tmp_tをhttpd_sys_content_tに変更
$ ls -Z /var/www/html/data/foo
-rw-r--r--. glire glire unconfined_u:object_r:httpd_sys_content_t:s0 /var/www/html/data/foo
ファイルを別なディレクトリから移動して公開する場合、ブラウザ側で Forbidden You don't have permission to access /data/foo on this server. と表示されてアクセスできないことがある。その場合はコマンド restorecon を用いて、セキュリティに関する拡張属性を書き換える必要がある。
Pythonで書かれたCGIで日本語を読み込む
<Directory "/var/www">
AllowOverride None
# Allow open access:
Require all granted
SetEnv PYTHONIOENCODING UTF-8
<Directory>
設定ファイル /etc/httpd/conf/httpd.conf の に SetEnv PYTHONIOENCODING UTF-8 を書き込めばよい。
ディレクトリ毎の設定を行う.htaccessを利用
DocumentRoot "/var/www/html"
<Directory "/var/www">
AllowOverride None
Require all granted
</Directory>
<Directory "/var/www/html">
Options Indexes FollowSymLinks
AllowOverride All
Require all granted
</Directory>
ファイル .htaccess を有効にするためには /etc/httpd/conf/httpd.conf の の中の AllowOverride None を上記のように AllowOverride All に変更する。有効になったことは .htaccess に自分の名前などのいい加減な文字列を書き込み /var/log/httpd/error_log に何らかのエラーが出力されることで容易に確認できる。