I tried to make a yii project for testing by executing
/var/www/html/yii/framework/yiic webapp demo
and when I go to localhost/demo I get en error:
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.
At first I thought that it really isn't writable so I did:
chmod 777 /var/www/html/demo/protected/runtime
didn't work so as the last idea I executed:
chmod 777 -R /var/www/html/demo/
and I still get the same exception. Any ideas on what might be wrong?
---EDIT---
FFS this drives me nuts
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
and I still can't write files from within php script
Try to upload 'runtime' folder again on your server, that works for me.
You have entered a wrong syntax for the
chmod
command. Try this:Enter a password when you will be prompt.
Important notice:
The asterisk at the end of command line is very important. It means all files in the current directory.
Changed access of the entire folder of the site by using the following command
This will solve the issue.
you must config with semanage like this which allow php-fpm write access to directory
If u r sure file permissions set correctly for the folder and still u getting the error, disabling SElinux or add an exception for SElinux is working if u r using CentOS. edit
/etc/selinux/config file
for disable SElinux or run this command for add an exceptionsudo chcon -t httpd_sys_rw_content_t /path/to/ur/annoying/folder -R
That should work... so maybe also try setting your Apache user (usually 'www-data') as the owner of
/runtime
? Something like:Could be an Apache
umask
issue also. Check out the Yii forum, which has helpful posts like this one: http://www.yiiframework.com/forum/index.php?/topic/19400-question-about-directoryfile-permissions/You should NOT have to set your whole project to 777, that is very insecure. I think
/assets
and/protected/runtime
are the only directories that need write permissions (775).