yii php framework "Недопустимый путь выполнения приложения."исключение - PullRequest
11 голосов
/ 05 июня 2011

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

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

, и когда я захожу в localhost / demo, я получаю сообщение об ошибке:

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/

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

--- РЕДАКТИРОВАТЬ ---

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

Ответы [ 9 ]

24 голосов
/ 05 июня 2011

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

6 голосов
/ 07 июня 2011

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

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

5 голосов
/ 31 мая 2012

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

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

Введите пароль, когда будет предложено.

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

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

1 голос
/ 15 марта 2015

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

1 голос
/ 18 октября 2014

вы должны сконфигурировать с этим semanage, который разрешает php-fpm доступ для записи в каталог

# semanage fcontext -a -t httpd_sys_rw_content_t 'YOUR_PATH_HERE'
# restorecon -v 'YOUR_PATH_HERE'
0 голосов
/ 15 апреля 2017

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

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

0 голосов
/ 10 июня 2016

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

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

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

0 голосов
/ 20 марта 2015

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

0 голосов
/ 11 февраля 2015

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...