PHP - mkdir许可在数字海洋上被拒绝

时间:2017-08-21 12:26:43

标签: php nginx file-upload laravel-5.4 digital-ocean

我已将我的Laravel应用程序部署在DigitalOcean上(不使用任何第三方包装)。除了用户上传文件外,该应用程序运行正常。

我按照DevMarketer(YouTube播放列表)的指南安装了LEMP堆栈。

情景:

我想上传文件并存储在我的公共目录中。但是,这样做,我得到的错误为startpfbiz.sh

这里是将创建的目录代码(如果不存在):

Permission Denied

在以root用户身份登录服务器时,我运行以下命令来检查文件和文件夹的权限:

$path = public_path() . '/email-attachments/';

if (! file_exists($path)) {
    mkdir($path, 0775, true);
}

以下是root@host-pc:~# ls -la /var/www/laravel total 456 drwxrwsr-x 12 www-data www-data 4096 Aug 21 09:45 . drwxrwsr-x 4 www-data www-data 4096 Aug 18 07:13 .. -rwxrwxr-x 1 www-data www-data 665 Aug 21 08:23 .env -rw-rwSr-- 1 www-data www-data 521 Aug 21 09:45 .env.example -rw-rwSr-- 1 www-data www-data 111 Aug 21 09:45 .gitattributes -rw-rwSr-- 1 www-data www-data 157 Aug 21 09:45 .gitignore drwxrwsr-x 8 www-data www-data 4096 Aug 21 09:45 app -rw-rwSr-- 1 www-data www-data 1646 Aug 21 09:45 artisan drwxrwsr-x 3 www-data www-data 4096 Aug 21 09:45 bootstrap -rw-rwSr-- 1 www-data www-data 1496 Aug 21 09:45 composer.json -rw-rwSr-- 1 www-data www-data 150371 Aug 21 09:45 composer.lock drwxrwsr-x 2 www-data www-data 4096 Aug 21 09:45 config drwxrwsr-x 5 www-data www-data 4096 Aug 21 09:45 database -rw-rwSr-- 1 www-data www-data 1063 Aug 21 09:45 package.json -rw-rwSr-- 1 www-data www-data 1100 Aug 21 09:45 phpunit.xml drwxrwsr-x 10 www-data www-data 4096 Aug 21 09:45 public -rwxrwxr-x 1 www-data www-data 440 Aug 21 06:27 queue_worker.log drwxrwsr-x 5 www-data www-data 4096 Aug 18 07:56 resources drwxrwsr-x 2 www-data www-data 4096 Aug 21 09:45 routes -rw-rwSr-- 1 www-data www-data 563 Aug 21 09:45 server.php drwxrwsr-x 6 www-data www-data 4096 Aug 18 07:56 storage drwxrwsr-x 4 www-data www-data 4096 Aug 21 09:45 tests drwxrwsr-x 39 www-data www-data 4096 Aug 21 05:58 vendor -rw-rwSr-- 1 www-data www-data 1439 Aug 21 09:45 webpack.mix.js -rw-rwSr-- 1 www-data www-data 212974 Aug 21 09:45 yarn.lock

的结果
ps -ef | grep nginx

以下是root@host-pc:~# ps -ef | grep nginx root 14862 1 0 11:45 ? 00:00:00 nginx: master process /usr/sbin/nginx -g daemon on; master_process on; www-data 14863 14862 0 11:45 ? 00:00:00 nginx: worker process root 15489 12952 0 12:19 pts/0 00:00:00 grep --color=auto nginx

的结果
ps -ef | grep php

我不知道我在做什么错误(我知道它一定是个傻瓜),但我还是找不到解决方案。

请帮我解决这个问题。感谢。

2 个答案:

答案 0 :(得分:0)

如果你改变了这个

$path = public_path() . '/email-attachments/';

到此

$path = public_path('email-attachments/');

答案 1 :(得分:0)

希望,这会对你有帮助。

 $path = base_path() . '/public/email-attachments';
 mkdir($path, 0755, true);