yii php framework“应用程序运行时路径无效”。例外

问题描述:

我试图通过执行yii php framework“应用程序运行时路径无效”。例外

/var/www/html/yii/framework/yiic webapp demo 

使用于测试的警予项目,当我去到localhost /演示中,我得到的连接错误:

Application runtime path "/var/www/html/demo/protected/runtime" is not valid. 
Please make sure it is a directory writable by the Web server process. 

起初我以为它真的ISN”牛逼可写的,所以我做:

chmod 777 /var/www/html/demo/protected/runtime 

没有作为最后的想法,我执行这样的工作:

chmod 777 -R /var/www/html/demo/ 

我仍然得到相同的异常。任何想法可能是错误的?

---编辑---

FFS这驱使我坚果

drwxrwxrwx. 4 apache apache 4096 Jun 5 00:06 commands 
drwxrwxrwx. 3 apache apache 4096 Jun 5 00:06 components 
drwxrwxrwx. 3 apache apache 4096 Jun 5 00:06 config 
drwxrwxrwx. 3 apache apache 4096 Jun 5 00:06 controllers 
drwxrwxrwx. 3 apache apache 4096 Jun 5 00:06 data 
drwxrwxrwx. 3 apache apache 4096 Jun 5 00:06 extensions 
drwxrwxrwx. 3 apache apache 4096 Jun 5 00:06 messages 
drwxrwxrwx. 3 apache apache 4096 Jun 5 00:06 migrations 
drwxrwxrwx. 3 apache apache 4096 Jun 5 00:06 models 
drwxrwxrwx. 3 apache apache 4096 Jun 5 00:06 runtime 
drwxrwxrwx. 7 apache apache 4096 Jun 5 00:06 tests 
drwxrwxrwx. 5 apache apache 4096 Jun 5 00:06 views 
-rwxrwxrwx. 1 apache apache 71 Jun 5 00:02 yiic 
-rwxrwxrwx. 1 apache apache 380 Jun 5 00:02 yiic.bat 
-rwxrwxrwx. 1 apache apache 178 Jun 5 00:02 yiic.php 

,我仍然无法PHP脚本

您似乎有SELinux的开启,其强制它自己的安全策略,而当它最终导致了这样的错误可能是网络应用程序的一个真正的痛苦和很烦人。只要你有时髦的权限问题,这是一个好主意,检查是否有它设置: /usr/sbin/getenforce(或类似的,取决于你是什么系统)。

参见:http://www.crypt.gen.nz/selinux/disable_selinux.html一个很好的概述,以及如何将其关闭(同样,细节可以根据您的OS /内核版本有所不同)。如果它是一个不公开访问的测试机器,您可以安全地关闭它,否则,您应该阅读上面的网站以了解其功能。大多数Linux软件包管理者可以安装文件来帮助您管理特定应用程序的策略。在RH/CentOS上,您也可以使用/usr/bin/system-config-securitylevel-tui来开启/关闭它。

+0

谢谢。 SELinux是问题:D – 2011-06-07 22:13:41

应该工作内写入文件.. 。所以也许可以尝试设置你的Apache用户(通常是'www-data')作为/runtime的拥有者?例如:

chown -R www-data:www-data /var/www/html/demo/protected/runtime 

也可能是Apache umask问题。查看Yii论坛,其中有这样的帮助帖子:http://www.yiiframework.com/forum/index.php?/topic/19400-question-about-directoryfile-permissions/

您不应该将整个项目设置为777,这是非常不安全的。我认为/assets/protected/runtime是唯一需要写入权限的目录(775)。

+0

还是一样。 – 2011-06-05 07:20:34

您输入了chmod命令的错误语法。试试这个:

sudo chmod -R 777 ./var/www/* 

当你会提示时输入密码。

重要提示:

在命令行的末尾的星号是非常重要的。它表示当前目录中的所有文件。

你必须用semanage的配置是这样,其允许目录

# semanage fcontext -a -t httpd_sys_rw_content_t 'YOUR_PATH_HERE' 
# restorecon -v 'YOUR_PATH_HERE' 

地尝试一下PHP-FPM写访问再次上传“运行”文件夹您的服务器,这对我的作品上。

+0

您能指定更好的解决问题的步骤吗? – falsarella 2015-02-11 18:42:12

+0

当我在我的服务器上检查它,'运行时'文件夹丢失,所以我只是上传它在服务器上,它的工作原理。 这是'运行时'文件夹的路径 yoursite \ protected \ runtime – 2015-02-12 08:46:58

当我在我的服务器上检查它,'运行时'文件夹丢失,所以我只是上传它在服务器上,它的工作原理。以下是'运行时'文件夹yoursite \ protected \ runtime的路径 -

+0

它对我很有用。谢谢! – nicolascolman 2017-07-11 17:29:29

更改运行时文件夹的访问权限。在我的情况下,在plesk并行面板中更改运行时文件夹的rwx rwx rwx作品。通过使用以下命令

sudo chmod -R 777 'name of your website folder' 

这将解决该问题的网站的整个文件夹的

+1

@Hubert_J已经在'runtime'文件夹中写道'chmod 777'没有工作。 – 2015-03-20 15:39:41

更改访问。

+0

这是一个非常糟糕的做法 – 2016-09-28 14:38:00

如果您确定文件权限为文件夹设置正确并且仍然出现错误,禁用SElinux或为SElinux添加例外正在使用,如果您使用CentOS。 编辑/etc/selinux/config file为禁用SELinux或运行此命令添加例外

sudo chcon -t httpd_sys_rw_content_t /path/to/ur/annoying/folder -R