Разрешения веб-процесса в Yii/Linux

Я нуб и просматриваю учебник по Yii на AWS. До сих пор мне удавалось все настроить и запустить, включая соединение с mysql. Но теперь я использую инструмент генерации кода Gii, чтобы помочь создать некоторые классы моделей. При этом я получаю следующую ошибку:

generating models/User.php
            Unable to write the file '/var/www/html/blog/protected/models/User.php'.
done!

Документация также говорит мне:

Info: Because the code generator needs to save the generated code into files, it is
required that the Web process have the permission to create and modify the corresponding
 files. For simplicity, we may give the Web process the write permission to the whole
 /www/blog directory. Note that this is only needed on development machines when using Gii.

Для меня это имеет смысл, и я понимаю основную логику разрешений Linux применительно к пользователям и группам... но не к процессам. Может ли кто-нибудь указать мне пример того, как дать процессу Gii разрешения на запись в каталог webroot (в моем случае: /var/www/html/blog/)?


person James S    schedule 14.07.2012    source источник
comment
Хотел добавить, что я прочитал и понял опасность запуска Gii на рабочем сервере. Однако настройка IP-фильтра в файле config/main.php позволяет запускать Gii только с моего общедоступного IP-адреса. Таким образом, запуск живого экземпляра AWS (в отличие от локального хоста WAMP) кажется безопасным.   -  person James S    schedule 14.07.2012
comment
Дальнейшее обновление: я совершил ошибку, попытавшись быстро исправить, не понимая его должным образом, и сделал ... chmod -R 0644 /var/www/html/blog/ ... и теперь я не могу получить доступ к странице, что означает, что я закрыл приложение. ... ПОМОЩЬ!!   -  person James S    schedule 14.07.2012
comment
установить 755. «Процессу» не нужны разрешения, скрипту нужны, в данном случае Gii. Однако, если apache имеет доступ для чтения/записи/выполнения (7) к папкам, он должен работать, если вы добавите свой IP-адрес в Gii config.   -  person adamors    schedule 14.07.2012


Ответы (4)


Я даю всем пользователям право рекурсивно читать, писать и выполнять файл веб-приложения.

$sudo chmod -R og=rwx webapp_folder

и решил проблему с разрешениями, но это может быть не лучший способ.

person xiaoyu    schedule 14.03.2013
comment
Было бы лучше изменить группу на группу apache (обычно 'www-data' или 'www') и дать группе права записи туда - person spuas; 24.09.2013
comment
Чего бы вы ни надеялись достичь, давать всем разрешение на запись — неправильно. - person tripleee; 04.08.2020
comment
Просто дайте разрешения на каталоги, которые требуются Gii. sudo chmod -R og=rwx controllers models views - person Phemelo Khetho; 31.05.2021

Gii использует процесс, созданный пользователем веб-сервера, для чтения и записи файлов. Именно этому пользователю нужны права на запись файла. В Debian/Ubuntu пользователь www-data. Проверьте, что это для вашей ОС, и дайте этому пользователю права на запись в эту папку.

person Ansari    schedule 14.07.2012
comment
Как упоминалось в другом ответе, www-data обычно является группой (может быть, также именем?), поэтому достаточно сделать папку для этой группы. - person spuas; 24.09.2013

В вашем файле httpd.conf есть следующие строки:

#
# If you wish httpd to run as a different user or group, you must run
# httpd as root initially and it will switch.
#
# User/Group: The name (or #number) of the user/group to run httpd as.
# It is usually good practice to create a dedicated user and group for
# running httpd, as with most system services.
#
User daemon
Group daemon

Пользователь и группа httpd являются «демонами». Теперь в терминале введите следующую команду:

chown -R daemon:daemon /path/to/htdocs/directory

Иногда эту команду необходимо выполнить после ввода

sudo su

Теперь Gii может записывать файлы в защищенную папку с разрешениями chmod 775.

person nahualli    schedule 01.01.2015

К вашему сведению, если командная папка или каталог, созданные командой, например, вы можете записать файл в браузере пользователя и наоборот... но получить доступ к разрешению на запись для yii..

следовать этому

sudo chmod -R 0777 your_project_name/
person Vinod Joshi    schedule 05.04.2014
comment
Текст не имеет никакого смысла. - person Mike; 05.04.2014