2012-07-14 7 views
5

Jestem noobem i prowadzę samouczek Yii na temat AWS. Do tej pory udało mi się wszystko uruchomić - w tym połączenie mysql. Ale teraz używam narzędzia generowania kodu Gii, aby pomóc w tworzeniu niektórych klas modeli. Czyniąc tak, ja otrzymuję następujący błąd:Uprawnienia do procesu sieci Web na Yii/Linux

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

Dokumentacja mówi mi też:

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. 

to sens do mnie i zrozumieć podstawową logikę uprawnień Linux jako stosowane do użytkowników i grupy ... ale nie procesy. Czy ktoś może wskazać mi elementarz do tego, w jaki sposób nadać uprawnienia do procesu Gii do katalogu webroot (w moim przypadku:/var/www/html/blog /)?

+0

chcielibyście dodać, że Znam i rozumiem niebezpieczeństwo związane z uruchomieniem Gii na serwerze produkcyjnym. Jednak ustawienie filtra IP w pliku config/main.php jest ustawione tak, aby zezwalało tylko na uruchamianie Gii z mojego publicznego adresu IP. Zatem uruchomienie działającej instancji AWS na żywo (w przeciwieństwie do lokalnego hosta WAMP) wydaje się, że nadal będzie bezpieczne. –

+0

Dalsza aktualizacja: Popełniłem błąd polegający na wypróbowaniu szybkiej poprawki bez odpowiedniego zrozumienia i ... chmod -R 0644/var/www/html/blog/... i nie mogę uzyskać dostępu do strony teraz, co oznacza, że ​​mam zamknij aplikację. ... WSPARCIE!! –

+1

ustaw "755". "Proces" nie wymaga uprawnień, skrypt robi, w tym przypadku 'Gii'. Jeśli jednak apache ma dostęp do odczytu/zapisu/wykonywania (7) w folderach, powinien działać, jeśli dodałeś swój adres IP w konfiguracji 'Gii'. – adamors

Odpowiedz

5

Gii używa procesu spawnowanego przez użytkownika serwera sieciowego do odczytu i zapisu plików. To właśnie ten użytkownik potrzebuje uprawnień do zapisu pliku. W systemie Debian/Ubuntu użytkownikiem jest www-data. Sprawdź, co to jest dla twojego systemu operacyjnego i daj temu użytkownikowi uprawnienia do zapisu w tym folderze.

+0

Jak wspomniano w drugiej odpowiedzi, dane www są zwykle grupą (może również nazwą?), Więc sprawienie, że folder do tej grupy będzie wystarczający – spuas

7

Daję wszystkim użytkownikom priverlege, aby czytali, pisali i excute w rekordzie pliku webapp.

$sudo chmod -R og=rwx webapp_folder 

i rozwiązany problem uprawnień, ale może nie być najlepszym sposobem.

+0

Byłoby lepiej zmienić grupę na grupę apache (zwykle "www"). -data "lub" www ") i nadaj grupie uprawnienia do zapisu tam. – spuas

0

FYI, jeśli folder poleceń lub reż stworzony przez komendy jak można napisać przeglądarkę użytkownika pliku i samo odwrotnie ... ale aby uzyskać dostęp do pozwolenia pisanie dla Yii ..

obserwować tą

sudo chmod -R 0777 your_project_name/ 
+0

Tekst nie ma żadnego sensu. – Mike

3

W pliku httpd.conf są to linie:

# 
# 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 

użytkownik i grupa httpd są „demon”. Teraz w terminalu wpisz następujące polecenie:

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

Czasami to polecenie musi być wykonane po rodzaju

sudo su 

teraz Gii może zapisywać pliki w folderze chronione chmod 775 uprawnień

Powiązane problemy