我有 cento os 7 并安装 php 网站,默认情况下我必须将代码上传到 /var/www/html 但我希望我的代码从 /home/magento 中选择。
如何在cento os中重写文档根路径。
答案1
一一使用这些命令:
chcon -R --reference=/var/www/html/ /home/magento
chcon -R -t httpd_sys_content_t /home/magento/
semanage fcontext -a -t httpd_sys_content_t "/home/magento(/.*)?"
setsebool -P httpd_enable_homedirs true
chmod 755 /home/magento # important !!
service httpd restart
答案2
您可以更改DocumentRoot
您的指令httpd.conf
(这应该可以在 中找到/etc
)。
该文件应包含如下行:
DocumentRoot "/var/www/html"
将其更改为:
DocumentRoot "/home/magento"
如果您在要发布的不同位置添加更多目录,您将需要开始使用虚拟主机文件
另外,如果 SELinux 设置为强制,您需要设置目录的 SELinux 上下文以匹配 /var/www 目录的上下文。要查明 SELinux 是否正在运行,请使用:
getenforce
如果输出是“宽容的”,那么它就不是强制的。
如果输出是“强制执行”,那么它就是强制执行。
为了更改目录及其内容的上下文,请运行以下命令:
semanage -a -t httpd_sys_content_t "/home/magento(/.*)?"
现在,当您运行ls -dZ /home/magento
“httpd_sys_content_t”时,上下文应该出现在输出中。
您可能还需要设置一个 SELinux 布尔值以允许发布主目录。要执行此操作,请使用:
setsebool -P httpd_enable_homedirs true
注意:apache 用户还需要读取目录内容的权限。