Yii php framework "Недопустимый путь выполнения приложения." исключение

Я попытался сделать проект yii для тестирования, выполнив

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

и когда я перехожу к localhost/demo, я получаю ошибку en:

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.

Сначала я подумал, что это действительно невозможно для записи, поэтому я сделал:

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

не работал, так как последняя выполненная мной идея:

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

и я все равно получаю то же исключение. Любые идеи о том, что может быть неправильным?

--- EDIT ---

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 скрипт

Ответ 1

Похоже, вы включили SELinux, который применяет его собственные политики безопасности и может стать настоящей болью для веб-приложений и очень раздражает, когда это закончится тем, что приводит к таким ошибкам. Всякий раз, когда у вас возникают проблемы с правами доступа, рекомендуется проверить, установлен ли он: /usr/sbin/getenforce (или аналогичный, в зависимости от того, в какой системе вы находитесь).

Смотрите: http://www.crypt.gen.nz/selinux/disable_selinux.html, чтобы получить хороший обзор и как отключить его (подробности могут отличаться в зависимости от версии ОС/ядра). Если это тестовая машина не является общедоступной, вы можете спокойно ее отключить, иначе вы должны прочитать сайт выше, чтобы понять, что он делает. Большинство менеджеров пакетов Linux могут устанавливать файлы, которые помогут вам управлять политиками для определенных приложений. В RH/CentOS вы также можете использовать /usr/bin/system-config-securitylevel-tui для включения/выключения.

Ответ 2

Это должно сработать... так что, возможно, попробуйте настроить пользователя 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).

Ответ 3

Вы ввели неправильный синтаксис для команды chmod. Попробуйте следующее:

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

Введите пароль при появлении запроса.

Важное замечание:

Звездочка в конце командной строки очень важна. Это означает, что все файлы в текущем каталоге.

Ответ 4

вам нужно настроить с помощью подобной семаны, чтобы разрешить доступ к файлу php-fpm в каталог

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

Ответ 5

Когда я проверяю его на своем сервере, папка "runtime" отсутствует, поэтому я просто загружаю его на сервер, и он работает. Вот путь к папке "runtime" yoursite\protected\runtime -

Ответ 6

Попробуйте снова загрузить папку "runtime" на своем сервере, которая работает для меня.

Ответ 7

Измените доступ к папке времени выполнения. В моем случае изменение rwx rwx rwx в параллельной панели plesk для рабочей среды выполнения работает.

Ответ 8

Изменен доступ ко всей папке сайта с помощью следующей команды

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

Это решит проблему.

Ответ 9

Если вы уверены, что права доступа к файлам установлены правильно для папки, и вы все равно получите ошибку, отключите SElinux или добавьте исключение для SElinux, если вы используете CentOS. отредактировать /etc/selinux/config file для отключения SElinux или выполнить эту команду для добавления исключения

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