Autorizzazioni corrette per / var / www e wordpress


41

Ho impostato un server LAMP e ho accesso tramite SSH e alla pagina "Funziona" da un browser Web all'interno della mia rete (tramite indirizzo IP) e dall'esterno usando dyndns.

Abbiamo alcuni progetti Wordpress che si trovano in sottodirectory in / var / www / wordpress1 / var / www / wordpress2, ecc. Non riesco ad accedere a queste sottodirectory da un browser per impostare WP - o (suppongo) per vedere il contenuto su un browser. Ricevo un errore 403 proibito nel mio browser.

Presumo che si tratti di un problema di autorizzazioni. Potete per favore dirmi le impostazioni corrette per le autorizzazioni a:

  1. Consenti a me e agli sviluppatori di leggere / scrivere.
  2. per consentire l'installazione di WP e fare le sue cose
  3. Consentire ai visitatori di accedere ai siti via Web.

Dovrei anche menzionare che la sottocartella è in realtà un simlink alla cartella su un altro hdd interno - non penso che questo farà la differenza, ma ho pensato che avrei dovuto rivelarlo.

total 12
drwxr-xr-x  2 root root 4096 2012-07-12 10:55 .
drwxr-xr-x 13 root root 4096 2012-07-11 20:02 ..
lrwxrwxrwx  1 root root   43 2012-07-11 20:45 admin_media ->     /root/django_src/django/contrib/admin/media
-rw-r--r--  1 root root  177 2012-07-11 17:50 index.html
lrwxrwxrwx  1 root root   14 2012-07-11 20:42 media -> /hdd/web/media
lrwxrwxrwx  1 root root   18 2012-07-12 10:55 wordpress -> /hdd/web/wordpress

Ecco il risultato dell'uso chown -R www-data:www-data /var/www

total 12
drwxr-xr-x  2 www-data www-data 4096 2012-07-12 10:55 .
drwxr-xr-x 13 root     root     4096 2012-07-11 20:02 ..
lrwxrwxrwx  1 www-data www-data   43 2012-07-11 20:45 admin_media -> /root/django_src/django/contrib/admin/media
-rw-r--r--  1 www-data www-data  177 2012-07-11 17:50 index.html
lrwxrwxrwx  1 www-data www-data   14 2012-07-11 20:42 media -> /hdd/web/media
lrwxrwxrwx  1 www-data www-data   18 2012-07-12 10:55 wordpress -> /hdd/web/wordpress

Non riesco ancora ad accedere tramite browser.


Si prega di inviare l'output del comando ls -la /var/www.
SirCharlo,

per favore metti queste informazioni nella tua domanda!
Jorge Castro,

OK, mi ci è voluto un secondo per ricordare come inserire il codice postale ...
dpbklyn,

Ok, prova benechown -R www-data:www-data /var/www
SirCharlo,

2
Penso che il tuo problema ora sia che stai usando i link. Apache non seguirà i collegamenti. Quello che faresti è spostare quei file su / var / www e configurare apache per usare vitrualhosts. Vedi help.ubuntu.com/10.04/serverguide/httpd.html Alternativi, se si desidera utilizzare /hdd/web/wordpresssarebbe configurare correttamente Apache (directory root). È possibile configurare Apache per utilizzare i collegamenti, ma non lo consiglio. Vedi anche help.ubuntu.com/community/WordPress
Panther

Risposte:


81

Innanzitutto, assicurati che il tuo nome utente sia incluso nel www-datagruppo. In caso contrario, puoi aggiungere il tuo nome utente come www-datagruppo

sudo adduser $USER www-data

Successivamente, dovresti cambiare la proprietà di / var / www con il tuo nome utente

sudo chown $USER:www-data -R /var/www

Il passaggio successivo, per la pratica generale , è necessario modificare l'autorizzazione su 755 (rwxr-xr-x), non è consigliabile modificare l'autorizzazione su 777 per motivi di sicurezza

sudo chmod u=rwX,g=srX,o=rX -R /var/www

Relativo all'autorizzazione specifica per wordpress o laravel o un altro framework, è possibile leggere la documentazione rispettivamente.

Spero che sia d'aiuto...


1
non ha funzionato per me, aggiungo da usaresudo chown www-data:www-data -R mywordpressdirectory/
Louis,

Dopo aver modificato la proprietà, è necessario modificare anche l'autorizzazione. Hai cambiato il tuo permesso in 755?
metamorfosi del

1
Lo ha fatto con chmod. Sta cambiando il permesso in 755 con bit appiccicosi (per mantenere nuovi file di proprietà di www-data.)
Zachary Dahan

La migliore spiegazione che ho potuto trovare, breve e dolce. Grazie.
Banago,

1
Quindi non sarai in grado di installare / rimuovere plugin / temi ecc. Dal pannello di amministrazione perché WordPress non avrà il permesso di scrivere.
Igor Skoldin,

3

Apparentemente è così che è raccomandato nella Guida al Server Ubuntu:

Capitolo 11. Server Web.

1.4. Condivisione dell'autorizzazione in scrittura

Perché più utenti possano scrivere nella stessa directory, sarà necessario concedere l'autorizzazione di scrittura a un gruppo che condividono in comune. L'esempio seguente concede l'autorizzazione di scrittura condivisa a / var / www / html al gruppo "webmaster"

Uso i dati www . Sostituisci semplicemente i "webmaster" con il tuo gruppo, assicurati di aggiungere l'utente al gruppo ovviamente.

sudo chgrp -R webmasters /var/www/html
sudo find /var/www/html -type d -exec chmod g=rwxs "{}" \;
sudo find /var/www/html -type f -exec chmod g=rws "{}" \;

L'ho appena testato con Dreamweaver dal mio desktop mac e ho caricato e sostituito file aggiunti file ecc. E mantiene le autorizzazioni corrette con un'eccezione, l'utente locale diventa proprietario di nuovi file insieme a www-data, ma tutti i file creati da root nel la directory html mantiene la proprietà come root ma è modificabile dall'utente locale.

$ls -l
$-rw-rw-r-- 1 localUser www-data 11505 May 28 09:56 index2.html
$-rw-rwSr-- 1 root  www-data 11535 May 28 09:58 index.html

Spero che questo chiarisca le cose e aiuti gli stanchi, perché so che ero sempre stanco di questa situazione, ma ora mi è chiaro.

Oh, e consiglio vivamente di usare sftp con le chiavi per accedere al tuo ftp, funziona benissimo per me e non ho bisogno di PureFTP o di qualsiasi altro metodo insicuro per consegnare i file al sito web. Esistono alcuni tutorial sul sito di Digital Ocean per proteggere il tuo server con i tasti SSH:

Come configurare l'autenticazione basata su chiave SSH su un server Linux


1) che lascia bit setgid sui file. Sembra strano, non fa nulla, apre la porta a problemi di sicurezza se gli utenti possono rendere i file eseguibili ed eseguirli. Ma se sei soddisfatto di setgid sui file, sostituisci i complessi findcon semplicemente sudo chmod -R g=srwX /var/www/html.
temoto,

2) find -exec chmodgenererà un programma separato per ogni file, che richiede tempo e mette pressione non necessaria sul sistema se si hanno molti file. Soluzione: sudo find /var/www/html -type f -print0 |sudo xargs -0 chmod g=rw. xargs tenterà di alimentare il maggior numero possibile di percorsi di file in una singola istanza di chmod.
temoto,

0

Verifica che Apache disponga dei diritti di esecuzione per /hdd/web/mediae /hdd/web/wordpress.

Correre:

chmod o+x /root /root/site /root/site/about

Inoltre, Apache deve essere configurato per consentire l'accesso alla directory sul filesystem. Questo deve essere fatto da un amministratore di sistema inserendo una direttiva nei file di configurazione di apache (httpd.conf).

Poiché la directory reale si trova all'interno della radice Web, deve essere accessibile, ma FollowSymLinks potrebbe non essere stato abilitato per la directory, anche questo deve essere aggiunto alla direttiva.

Vedi http://httpd.apache.org/docs/2.0/mod/core.html#directory


Grazie a tutti ... ho deciso di seguire il percorso di minor resistenza ... rimosso i collegamenti simbolici. Tutto funziona perfettamente.
dpbklyn,

0

Leggendo la guida all'installazione di Ubuntu ..

chown -R www-data /usr/share/wordpress

Forse potrebbe essere più semplice installarlo in questo modo invece di provare a decomprimere i file /var/www

https://help.ubuntu.com/community/WordPress ...

in qualche modo wordpress gira su apache ... giusto? se vuoi farlo in quel modo .. mostri di fare come @metamorph an quindi dai il permesso su apache2 in httpd.confquesto modo:

<VirtualHost *:80>
        ServerName site
        ServerName site.domain
        DocumentRoot /srv/www/wordpress.site

        DirectoryIndex index.php

</VirtualHost>

e poi default-server.conf.

<Directory "/srv/www/wordpress.site">
        Options None
        AllowOverride None
        Order allow,deny
        Allow from all
</Directory>

Forse è meglio fare il passo passo https://help.ubuntu.com/community/WordPress

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.