2012-03-03 21 views
10

Konfiguruję WordPress na instancji Amazon EC2. Używa Amazon Linuksa i jest standardową konfiguracją (tylko php5 i mysql).Ustawianie uprawnień dla WordPress na Amazon EC2 (Amazon Linux)

WordPress działa dobrze, ale są pewne problemy z uprawnieniami. W szczególności nie mogę przesyłać multimediów, aktualizować permalinka, wtyczek itp. Nie mam uprawnień do zapisu pod użytkownikiem ec2, a ponieważ przesłałem wszystkie pliki przez WinSCP, obecny właściciel to użytkownik ec2.

Moje pytanie brzmi: jaki jest najlepszy sposób rozwiązania tego problemu? Prawdopodobnie mógłbym to naprawić zmieniając własność wszystkich folderów/plików na root, ale to nie jest bardzo eleganckie lub dynamiczne rozwiązanie.

Ścieżka do mojego katalogu to/var/www/html. Czy mogę zezwolić użytkownikowi ec2 na prawidłowe uprawnienia? Być może mając grupę, którą udostępnia zarówno użytkownik Apache, jak i użytkownik ec2?

Wszelkie pomysły będą mile widziane

+0

Zobacz http://stackoverflow.com/questions/8686125/update-wordpress-theme-on-ec2 i spójrz na odpowiedź Jake'a Mam nadzieję, że to pomoże! – Yannick

+0

Czy masz jakieś rozwiązanie? Mogę pracować z sugerowanym rozwiązaniem @stink, ale czy istnieje elegancki sposób, w którym nie muszę zmieniać własności/uprawnień, aby dokonywać aktualizacji przez FTP/Internet? –

Odpowiedz

7

Zobacz http://blog.david-jensen.com/development/wordpress-amazon-ec2-apache-permissions-wordpress/ wśród innych wyników Google. Patrzy się, że miał szczęście:

robiłem mój najlepszy, aby dowiedzieć się konfigurację Amazon EC2 Apache uprawnień, aby umożliwić WordPress, aby móc zarządzać wszystkimi plikami na moim przykład Amazon EC2 bez WordPress z prośbą o uprawnienia FTP , gdy próbuję przesłać wtyczkę lub motyw za pośrednictwem strony administratora. Skończyłem na tym, że musiałem nadać plikom i grupie prawa własności do plików w moim katalogu html użytkownikowi apache, aby WordPress działał poprawnie. http://www.chrisabernethy.com/why-wordpress-asks-connection-info/ i jego komentarze pomogły mi dojść do takiego wniosku.

ze strony internetowej:

Run

sudo su chown -R apache:apache /vol/html 

I wtedy ustawić uprawnienia do tego, co utwardzania WordPress Podręcznik zaleca dla mojego korzenia html jak wszystkie moje pliki WordPress są tam jak używam MultiSite z wieloma domenami.

find /vol/html/ -type d -exec chmod 755 {} \; 
find /vol/html/ -type f -exec chmod 644 {} \; 

Ponieważ apache nie ma loginu Czuję, że to jest warte ryzyka, chociaż prawdopodobnie jest lepszy sposób na zrobienie tego. I dodaje EC2 użytkownika do grupy apache i zmienił uprawnienia folderu wp-content mieć prawa zapisu grupa 775.

useradd -G apache ec2-user 
sudo chmod -R 775 /vol/html/wp-content 

Pozwala FileZilla lub inny program zalogowany jako EC2-użytkownikowi możliwość zmieniaj pliki i foldery tylko w folderze wp-content. Jeśli ktoś ma lepszy sposób robienia tego chciałbym wiedzieć. Korzystam tylko z SSH i SFTP, aby uzyskać dostęp do serwera za pomocą plików kluczy.

0

Natknąłem się na to pytanie, szukając odpowiedzi. Ustawiłem własność i własność grupy na Apache. Jeśli jednak chcę przesłać coś ftp, muszę ssh zmienić uprawnienia do użytkownika ec2, przesłać plik i zmienić go. Doszedłem do wniosku, że była to niewielka cena, którą trzeba zapłacić, aby uprawnienia zostały ustawione zgodnie z zalecanymi ustawieniami WordPress.

2

Ustawiam właściciela na użytkownika ec2: apache, następnie wykonaj hartowanie, a następnie dostosuj uprawnienia odczytu i zapisu grupy dla folderów.

sudo chown -R ec2-user:apache /vol/html 
sudo chmod -R 755 /vol/html 

sudo find /vol/html/ -type d -exec chmod 755 {} \; 
sudo find /vol/html/ -type f -exec chmod 644 {} \; 

sudo chgrp -R apache /vol/html 
sudo chmod -R g+rw /vol/html 
sudo chmod -R g+s /vol/html 

Następnie edytować /wordpress-install/wp-config.php i zdefiniować fs_method

define('FS_METHOD', 'direct'); 

Teraz WordPress może aktualizować/upload itp i można jeszcze plików SFTP bez zmiany uprawnień co czas.

1

http://docs.aws.amazon.com/AWSEC2/latest/UserGuide/hosting-wordpress.html

Aby ustalić uprawnienia do plików na serwerze WWW Apache

Niektóre z dostępnych funkcji w WordPress wymaga dostępu do zapisu korzeń dokument Apache (takich jak media przesyłanie choć ekranów Administration ). Serwer WWW działa jako użytkownik apache, więc musisz dodać tego użytkownika do grupy www, która została utworzona w samouczku serwera WWW LAMP LAMP.

Dodaj użytkownika apache do grupy www.

[wordpress użytkownika ec2] $ sudo usermod -a -G www apache Zmień plik na własność/var/www i jego zawartość na użytkownika apache.

[wordpress użytkownika ec2] $ sudo chown -R apache/var/www Zmień grupę na własność/var/www i jej zawartość na grupę www.

[EC2 użytkownik wordpress] $ sudo chgrp -R www/var/www zmienić katalog uprawnienia/var/www i jego podkatalogów, aby dodać pisać grupowej uprawnienia i ustawić identyfikator grupy na przyszłe podkatalogów.

[wordpress użytkownika ec2] $ sudo chmod 2775/var/www [wordpress użytkownika ec2] $ find/var/www -type d -exec sudo chmod 2775 {} \; Rekurencyjnie zmień uprawnienia pliku/var/www i jego podkatalogów, aby dodać uprawnienia do zapisu w grupie .

[wordpress użytkownika ec2] $ find/var/www -type f -exec sudo chmod 0664 {} \; Zrestartuj serwer WWW Apache, aby pobrać nową grupę i uprawnienia .

[EC2 użytkownik wordpress] httpd $ serwis sudo restart Zatrzymywanie httpd:
[OK] Wychodząc httpd: [ OK]

0

Próbowałem rozwiązanie przewidziane w answer by @markratledge dla mojego instancji AWS EC2 (Amazon Linux).

Wordpress (apache) był dobry, ale SFTP (użytkownik ec2) podawał błędy uprawnień.

Potem próbowałem następujące:

dodałem EC2 użytkownika do grupy apache:

usermod -a -G apache ec2-user 

Następny ustawić 'apache' jako grupy właściciel i 'EC2-user' jako użytkownik właściciela dla WordPress katalog instalacyjny (/ var/www/html w moim przypadku):

chown -R apache:ec2-user /var/www/html 

Wreszcie WordPress był zadowolony i mogę zbyt SFTP. Dzięki!