将Apache的DocumentRoot设置为用户目录的符号链接
简要概述
CentOS7安装apache时,我通常会将/var/www/html的DocumentRoot目录创建为符号链接。
在之前的CentOS6上,我并不太在意将DocumentRoot设置为符号链接,但在这次的CentOS7上遇到了问题,所以做了一下记录。
导致的原因是什么?
Selinux的设置是否追加了CentOS6中缺少的部分…由于某个项目的原因,出现了以下错误导致无法访问。
PHP Warning: Unknown: failed to open stream: Permission denied in Unknown on
解决办法
Selinux的项目需要将下列项目设置为开启。
#現在の設定確認
root> getsebool -a | grep "httpd_enable_homedirs\|httpd_read_user_content"
root> httpd_enable_homedirs --> on
root> httpd_read_user_content --> on
#設定変更
root> setsebool -P httpd_enable_homedirs on
root> setsebool -P httpd_read_user_content on
像往常一样,我们也要设置标签。
这部分要按照以下的方式来设置,和往常一样。
#ホームディレクトリの中の場合、ユーザディレクトリのパーミッションを701に
#シンボリックリンク作成
ln -s /home/[target directory]/ /var/www/html
#ラベル貼り替え
semanage fcontext -a -t httpd_sys_content_t "/var/www/html(/.*)?"
#ラベル有効化
restorecon -R -v /var/www/