2012-03-03 16 views
10

Ho impostato WordPress su un'istanza Amazon EC2. Sta usando Amazon Linux ed è una configurazione standard (solo php5 e mysql).Impostazione autorizzazioni per WordPress su Amazon EC2 (Amazon Linux)

WordPress funziona bene, ma ci sono alcuni problemi di autorizzazione. In particolare, non posso caricare media, aggiornare permalink, plug-in, ecc. Non ho alcun permesso di scrittura sotto ec2-user e poiché ho caricato tutti i file su WinSCP il proprietario corrente è ec2-user.

La mia domanda è qual è il modo migliore per correggere questo problema? Probabilmente potrei risolverlo modificando la proprietà di tutte le cartelle/file su root, ma questa non è una soluzione molto elegante o dinamica.

Il percorso della mia directory Web è/var/www/html. Posso consentire a ec2-user le autorizzazioni corrette? Forse con un gruppo che condivide sia l'utente Apache che l'utente ec2?

Tutte le idee sarebbe apprezzato

+0

Vedere http://stackoverflow.com/questions/8686125/update-wordpress-theme-on-ec2 e guardare la risposta di Jake Spero che questo aiuti! – Yannick

+0

Hai trovato qualche soluzione per questo? Posso lavorare con la soluzione suggerita da @stink ma Se c'è un modo elegante in cui non devo cambiare proprietà/permessi per fare aggiornamenti via FTP/web? –

risposta

7

Vedi http://blog.david-jensen.com/development/wordpress-amazon-ec2-apache-permissions-wordpress/ tra gli altri risultati di Google. Egli sembra aver avuto fortuna:

Ho fatto del mio meglio per capire la configurazione Amazon EC2 Apache di autorizzazioni per consentire WordPress per essere in grado di gestire tutti i file sul mio esempio Amazon EC2 senza WordPress chiede le autorizzazioni FTP quando provo a caricare un plugin o un tema tramite il sito di amministrazione. Ho finito con lo di dover dare la proprietà di file e gruppo dei file nella mia cartella html all'utente di apache affinché WordPress funzioni correttamente. http://www.chrisabernethy.com/why-wordpress-asks-connection-info/ e i suoi commenti mi hanno aiutato a raggiungere questa conclusione.

Dalla pagina web:

Run

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

Ho quindi impostare le autorizzazioni per quello che la guida indurimento WordPress raccomanda per la mia radice html come tutti i miei file di WordPress sono lì come io sono in esecuzione MultiSite con più domini.

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

come Apache non ha un account di accesso mi sento questo vale la pena il rischio anche se non v'è probabilmente un modo migliore per fare questo. Ho poi aggiunto EC2-utente al gruppo apache e cambiato le autorizzazioni della cartella wp-content per avere il permesso di scrittura gruppo 775.

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

Questo permette FileZilla o qualsiasi altro programma registrati come EC2-utente la possibilità di cambia solo file e cartelle nella cartella del contenuto wp. Se qualcuno ha un modo migliore per farlo, mi piacerebbe sapere. Sto solo usando SSH e SFTP per accedere al server con i file chiave.

0

Mi sono imbattuto in questa domanda alla ricerca della risposta. Ho impostato tutta la proprietà e la proprietà del gruppo su Apache. Tuttavia, se voglio caricare qualcosa di ftp devo modificare i permessi ssh su ec2-user caricare il file e cambiarlo di nuovo. Ho pensato che fosse un piccolo prezzo da pagare per avere le autorizzazioni impostate sulle impostazioni consigliate da WordPress.

2

Imposta il proprietario su ec2-user: apache, quindi eseguo l'hardening, quindi regola i permessi di lettura + scrittura di gruppo per le cartelle.

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 

Poi modificare /wordpress-install/wp-config.php e definire il fs_method

define('FS_METHOD', 'direct'); 

Ora WordPress può aggiornare/upload, ecc E si può file SFTP ancora senza cambiare i permessi ogni tempo.

1

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

Per fissare i permessi dei file per il server web Apache

Alcune delle caratteristiche disponibili in WordPress richiedono l'accesso in scrittura al il documento radice Apache (come ad esempio i media caricare se i schermi Amministrazione). Il server Web viene eseguito come utente apache, pertanto è necessario aggiungere tale utente al gruppo www creato nel tutorial sul server Web LAMP .

Aggiungere l'utente apache al gruppo www.

[wordpress utente ec2] $ sudo usermod -a -G www apache Modificare il file proprietà di/var/www e il suo contenuto per l'utente apache.

[wordpress utente ec2] $ sudo chown -R apache/var/www Modificare il gruppo proprietà di/var/www e il suo contenuto nel gruppo www.

[wordpress EC2-utente] $ sudo chgrp -R www/var/www Modificare la directory permessi di/var/www e le sue sottodirectory per aggiungere gruppo di scrittura i permessi e per impostare l'ID del gruppo in sottodirectory future.

[wordpress utente ec2] $ sudo chmod 2775/var/www [wordpress utente ec2] $ trova/var/www -type d -exec sudo chmod 2775 {} \; Cambia in modo ricorsivo le autorizzazioni del file per/var/www e le sue sottodirectory per aggiungere le autorizzazioni di scrittura del gruppo .

[wordpress utente ec2] $ find/var/www -type f -exec sudo chmod 0664 {} \; Riavviare il server Web Apache per prelevare il nuovo gruppo e le autorizzazioni .

[EC2-utente wordpress] $ servizio sudo httpd restart httpd Arresto:
[OK] httpd di inizio: [ OK]

0

ho provato la soluzione fornita nel answer by @markratledge per il mio esempio AWS EC2 (Amazon Linux).

Wordpress (apache) era buono, ma SFTP (ec2-utente) stava dando errori di autorizzazione.

poi ho provato la seguente:

ho aggiunto EC2-utente al gruppo apache:

usermod -a -G apache ec2-user 

Poi ho impostato 'apache' come gruppo proprietario e 'EC2-user' come utente proprietario per la directory di installazione di WordPress (/ var/www/html nel mio caso):

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

Infine, WordPress era felice e ho potuto SFTP troppo. Grazie!