编辑:根据@Devons的建议,我运行了以下命令,没有错误(found in this post):
$ sudo find /var/public/www -type d -exec chmod 755 {} +
$ sudo find /var/public/www -type f -exec chmod 644 {} +
但是当我在www中列出文件时,权限仍然看起来不对。我究竟做错了什么?谢谢!
drwxrwx--- 1 root vboxsf 4096 Aug 28 12:45 app
-rwxrwx--- 1 root vboxsf 1646 Aug 28 12:45 artisan
drwxrwx--- 1 root vboxsf 0 Aug 28 12:45 bootstrap
-rwxrwx--- 1 root vboxsf 1201 Aug 28 12:45 composer.json
-rwxrwx--- 1 root vboxsf 105046 Aug 28 12:55 composer.lock
drwxrwx--- 1 root vboxsf 4096 Aug 28 12:45 config
drwxrwx--- 1 root vboxsf 0 Aug 28 12:45 database
-rwxrwx--- 1 root vboxsf 503 Aug 28 12:45 gulpfile.js
-rwxrwx--- 1 root vboxsf 159 Aug 28 12:45 package.json
-rwxrwx--- 1 root vboxsf 87 Aug 28 12:45 phpspec.yml
-rwxrwx--- 1 root vboxsf 899 Aug 28 12:45 phpunit.xml
drwxrwx--- 1 root vboxsf 0 Aug 28 12:45 public
-rwxrwx--- 1 root vboxsf 1928 Aug 28 12:45 readme.md
drwxrwx--- 1 root vboxsf 0 Aug 28 12:45 resources
-rwxrwx--- 1 root vboxsf 567 Aug 28 12:45 server.php
drwxrwx--- 1 root vboxsf 0 Aug 28 12:45 storage
drwxrwx--- 1 root vboxsf 0 Aug 28 12:45 tests
drwxrwx--- 1 root vboxsf 4096 Aug 28 12:56 vendor
这是我第一次使用nginx并且无法获得laravel欢迎页面显示。我使用的是ubuntu 14.04和VBox 5。
我的服务器在/var/nginx/sites-enabled/default
中配置为
server {
listen 80 default_server;
charset utf-8;
server_name doimain.app www.domain.app;
root /var/www/public;
index index.php index.html;
location / {
try_files $uri $uri/ /index.php?$query_string;
}
location ~ \.php$ {
try_files $uri /index.php =404;
fastcgi_split_path_info ^(.+\.php)(/.+)$;
fastcgi_pass unix:/var/run/php5-fpm.sock;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
include fastcgi_params;
}
}
在/var/www/public
内我可以列出laravel公用文件夹文件
$ ls -l /var/www/public
total 3
-rwxrwx--- 1 root vboxsf 0 Aug 28 12:45 favicon.ico
-rwxrwx--- 1 root vboxsf 1786 Aug 28 12:45 index.php
-rwxrwx--- 1 root vboxsf 24 Aug 28 12:45 robots.txt
但是当我去domain.app
时,我得到了404。 nginx错误日志显示:
2015/08/28 14:29:35 [crit] 1487#0: *14 stat() "/var/www/public/index.php" failed (13: Permission denied), client: 10.0.0.18, server: domain.app, request: "GET / HTTP/1.1", host: "domain.app"
我试过以下没有成功:
确保www-data拥有文件夹结构/var/www
$ sudo chown www-data:www-data /var/www
将访问权限更改为/var/www
$ sudo chmod -R 0755 /var/www
谢谢!
答案 0 :(得分:0)
公共目录由root拥有,其他人无法读取。您需要将所有权更改为www-data或chmod 所有文件夹和文件。对于大多数配置,文件夹应为0755,文件为0644。如果文件由运行nginx和php的同一用户拥有(我假设是www-data),你可以保留它的拥有方式。
更改/ var / www的所有权本身不起作用,您必须更改Web目录中的所有文件夹和文件。
您可以使用-R
标志递归chmod和chown。
chown -R www-data:www-data /var/www/public
答案 1 :(得分:0)
由addig www-data
用户解决,vboxsf
组并重新启动服务器。
$sudo usermod -G vboxsf -a www-data