我已经设置了一个 LAMP 服务器,并且我可以通过 SSH 访问,并且可以从我的网络内部(通过 IP 地址)和外部使用 dyndns 从 Web 浏览器访问“它有效”页面。
我们有一些 Wordpress 项目位于 /var/www/wordpress1 /var/www/wordpress2 等的子目录中。我无法从浏览器访问这些子目录以设置 WP——或者(我假设)查看浏览器上的内容。我的浏览器出现 403 Forbidden 错误。
我认为这是一个权限问题。你能告诉我权限的正确设置:
我还应该提到,子文件夹实际上是另一个内部硬盘上文件夹的simlinks——我认为这不会有什么不同,但我认为我应该公开。
total 12
drwxr-xr-x 2 root root 4096 2012-07-12 10:55 .
drwxr-xr-x 13 root root 4096 2012-07-11 20:02 ..
lrwxrwxrwx 1 root root 43 2012-07-11 20:45 admin_media -> /root/django_src/django/contrib/admin/media
-rw-r--r-- 1 root root 177 2012-07-11 17:50 index.html
lrwxrwxrwx 1 root root 14 2012-07-11 20:42 media -> /hdd/web/media
lrwxrwxrwx 1 root root 18 2012-07-12 10:55 wordpress -> /hdd/web/wordpress
Run Code Online (Sandbox Code Playgroud)
这是使用的结果 chown -R www-data:www-data /var/www
total 12
drwxr-xr-x 2 www-data www-data 4096 2012-07-12 10:55 .
drwxr-xr-x 13 root root 4096 2012-07-11 20:02 ..
lrwxrwxrwx 1 www-data www-data 43 2012-07-11 20:45 admin_media -> /root/django_src/django/contrib/admin/media
-rw-r--r-- 1 www-data www-data 177 2012-07-11 17:50 index.html
lrwxrwxrwx 1 www-data www-data 14 2012-07-11 20:42 media -> /hdd/web/media
lrwxrwxrwx 1 www-data www-data 18 2012-07-12 10:55 wordpress -> /hdd/web/wordpress
Run Code Online (Sandbox Code Playgroud)
我仍然无法通过浏览器访问。
met*_*rph 92
首先,您应该确保您的用户名包含在www-data
组中。如果没有,您可以将您的用户名添加为www-data
组
sudo adduser $USER www-data
Run Code Online (Sandbox Code Playgroud)
之后,您应该将 /var/www 的所有权更改为您的用户名
sudo chown $USER:www-data -R /var/www
Run Code Online (Sandbox Code Playgroud)
下一步,一般情况下,您应该将权限更改为 755 (rwxr-xr-x),出于安全原因,不建议将权限更改为 777
sudo chmod u=rwX,g=srX,o=rX -R /var/www
Run Code Online (Sandbox Code Playgroud)
涉及到特定的权限为WordPress的或laravel或另一个框架,那么你可以分别阅读文档。
希望能帮助到你...
显然这是 Ubuntu 服务器指南中推荐的方式:
第 11 章 Web 服务器。
1.4. 共享写入权限
为了让多个用户能够写入同一目录,有必要向他们共享的组授予写入权限。以下示例将 /var/www/html 的共享写入权限授予“webmasters”组
我使用www-data。只需将“网站管理员”替换为您的组,当然,请确保将用户添加到组中。
sudo chgrp -R webmasters /var/www/html
sudo find /var/www/html -type d -exec chmod g=rwxs "{}" \;
sudo find /var/www/html -type f -exec chmod g=rws "{}" \;
Run Code Online (Sandbox Code Playgroud)
我刚刚从我的 mac 桌面用 Dreamweaver 对其进行了测试,并上传和替换了添加文件等的文件,它保留了正确的权限,但有一个例外,本地用户成为新文件和 www-data 的所有者,但是任何由 root 创建的文件在html 目录保留其作为 root 的所有权,但可由本地用户编辑。
$ls -l
$-rw-rw-r-- 1 localUser www-data 11505 May 28 09:56 index2.html
$-rw-rwSr-- 1 root www-data 11535 May 28 09:58 index.html
Run Code Online (Sandbox Code Playgroud)
希望这可以解决问题并帮助疲倦的人,因为我知道我一直对这种情况感到厌倦,但现在我很清楚。
哦,我强烈建议使用带密钥的 sftp 来访问您的 ftp,这对我来说非常有用,并且不需要 PureFTP 或任何其他不安全的将文件传送到网站的方法。Digital Ocean 站点上有很多关于使用 ssh 密钥保护服务器的教程:
如何在 Linux 服务器上配置基于 SSH 密钥的身份验证
检查 Apache 是否具有/hdd/web/media
和 的执行权限/hdd/web/wordpress
。
跑步:
chmod o+x /root /root/site /root/site/about
Run Code Online (Sandbox Code Playgroud)
此外,必须将 Apache 配置为允许访问文件系统上的目录。这必须由系统管理员通过在 apache 配置文件 (httpd.conf) 中插入指令来完成。
由于真实目录位于 Web 根目录内,因此它必须可访问,但可能尚未为该目录启用 FollowSymLinks - 这也必须添加到指令中。
请参阅http://httpd.apache.org/docs/2.0/mod/core.html#directory
归档时间: |
|
查看次数: |
164909 次 |
最近记录: |