当前位置: 首页>>技术问答>>正文


正确的/var/www和wordpress权限

,

问题描述

我已经设置了一个LAMP服务器,我可以从网络内部(通过ip地址)通过SSH访问”it works”页面,使用dyndns从外部访问。

我们有一些Wordpress项目位于/var /www /wordpress1 /var /www /wordpress2等的子目录中。我无法从浏览器访问这些子目录以设置WP – 或(我假设)看到浏览器上的内容。我的浏览器出现403 Forbidden错误。

我认为这是一个权限问题。你能告诉我权限的正确设置:

  1. 允许开发人员和我进行读/写。

  2. 允许WP设置并执行其操作

  3. 允许访问者通过网络访问网站。

我还应该提一下,子文件夹实际上是另一个内部硬盘上文件夹的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

以下是使用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

我仍然无法通过浏览器访问。

最佳解决办法

首先,您应确保您的用户名包含在www-data组中。如果没有,您可以将用户名添加为www-data

sudo adduser $USER www-data

之后,您应该将/var /www的所有权更改为您的用户名

sudo chown $USER:www-data -R /var/www

下一步,对于一般做法,您应该将权限更改为755(rwxr-xr-x),出于安全原因不建议将权限更改为777

sudo chmod u=rwX,g=srX,o=rX -R /var/www

与wordpress或laravel或其他框架的特定权限相关,您可以分别阅读文档。

希望能帮助到你…

次佳解决办法

显然,这是Ubuntu服务器指南中推荐的方式:

第11章Web服务器。

1.4。共享写权限

如果多个用户能够写入同一目录,则必须向他们共享的组授予写入权限。以下示例将对/var /www /html的共享写入权限授予组”webmasters”

我用的是www-data。只需将”webmasters”替换为您的组,请确保将用户添加到该组中。

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 "{}" \;

我刚从我的mac桌面上用Dreamweaver测试它并上传和替换了文件添加的文件等,它保留了正确的权限,只有一个例外,本地用户成为新文件的所有者以及www-data,但是根目录在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

希望这可以清理事情并帮助疲惫,因为我知道我总是厌倦这种情况,但现在我很清楚。

哦,我强烈建议使用带有密钥的sftp访问你的ftp,对我很有用,不需要PureFTP或任何其他不安全的方法将文件传送到网站。在Digital Ocean网站上有很多关于使用ssh密钥保护服务器的教程:

How To Configure SSH Key-Based Authentication on a Linux Server

参考资料

本文由Ubuntu问答整理, 博文地址: https://ubuntuqa.com/article/1880.html,未经允许,请勿转载。