我开始学习使用CentOS虚拟机的服务器管理。我正在尝试制作一个简单的网站。
由于Apache默认文件位于其中,/var/www
因此很难编写/制作/更改文件。话虽如此,我想在文件夹中创建主页/var/www
,所有其他页面都将在文件夹中/home/$USER/Documents/Website
。
主页上的代码只是href
其他页面上的代码。当我在机器上运行代码时,它可以工作,但是如果我进入主页(在浏览器中输入IP),则链接不起作用,但是主页仍然存在。
单击链接时出现的错误是404 file not found
。
如果我从该错误代码复制文件位置,然后在服务器上键入
cat {file_location}
它打印文件没问题。我已将Apache组更改为文件的所有者。如何允许Apache服务器在此处查找文件?我需要编辑http.conf
吗?
编辑:我将如何做到这一点,以便服务器可以在名为的文件夹中进行读写/Website
?
编辑2:我不知道我正在运行哪个版本的Apache。我使用CentOS安装程序来安装Apache。该/var/www/html/index.html
是拉升时,我在IP地址类型,因为它应该的网页。很可能是SELinux的问题,因为在我安装了带有GUI软件包的服务器后,一个SELinux弹出窗口告诉我一个“安全性”问题。我运行了它说的脚本,就可以编写该/var/www/html
文件夹了。现在,我想在其他位置添加文件夹,但我不知道该怎么做。除了以SELinux写入/var/www/html
文件夹的方式之外,chmod 755
如果我没有记错的话,我还更改了所有者并运行。
如果只希望Apache提供文件/Website
,请编辑Apache配置/etc/httpd/conf/httpd.conf
并将其更改DocumentRoot
为/Website
。然后重新加载服务器systemctl reload httpd.service
。
您还需要更改和中的SELinux文件上下文/Website
。您可能希望使用与/var/www
(httpd_sys_content_t
或httpd_sys_rw_content_t
)中相同的文件上下文。使用添加新文件标签规则,semanage
然后使用restorecon
来应用它:
semanage fcontext -a -t httpd_sys_rw_content_t "/Website(/.*)?"
restorecon -R -v /Website
如果要配置Apache以在主目录中提供用户内容,例如。http://server/~user
,您可以使用mod_userdir。启用它/etc/httpd/conf.d/userdir.conf
并重新加载服务器。
启用httpd_read_user_content
SELinux布尔值以允许访问:
semanage boolean -m --on httpd_read_user_content
目录中的文件public_html
应该已经以正确的httpd_user_content_t
类型配置。如果没有,您可以运行restorecon -R -v /home/user/public_html
以应用正确的文件上下文。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句