2009-07-11 15 views
17

Pasé de ser un servidor compartido a un VPS hace unas semanas y estoy teniendo estos molestos problemas de permisos con WordPress. Sabes que puedes descargar y actualizar complementos (y wordpress en sí) desde el panel de administración, pero desde que lo moví comenzó a preguntarme mis credenciales de FTP, lo que es un poco lento cuando tengo que actualizar ~ 20 complementos.Una pregunta general de permisos de archivos de Linux: Apache y WordPress

Creo que esto debería ser algún tipo de problema de derechos. Miré que los archivos de wordpress de alojamiento compartido, todos pertenecen al nombre de usuario y grupo kovshenin (kovshenin: kovshenin) y los archivos son -rw-r - r-- y los directorios son drwx-r-xr-x.

En mi VPS apache se ejecuta en apache: apache y mis archivos son kovshenin: kovshenin. ¿Qué debo hacer para que sean legibles y editables tanto por kovshenin como por apache?

Además, cambié los permisos a 0777 para todos los archivos y carpetas de mi instalación de WordPress, eso me permitió instalar y eliminar complementos sin FTP, pero cuando presioné para actualizar automáticamente a WordPress 2.8.1 todavía me pedía mi cuenta de FTP ¿Es eso un problema de wp o me perdí algo?

Gracias.

Actualización: Pude ejecutar id y id www-data en el hosting compartido de MediaTemple. El usuario kovshenin está en el grupo kovshenin, y www-data está en el grupo www-data. No más grupos ¿Cuál es el truco?

Otra actualización Está bien, añade el usuario apache al grupo kovshenin, mis archivos de WordPress son kovshenin:kovshenin con rw-rw-r-- permisos y drwxrwxr-x permisos en directorios, pero todavía le queda algo mal. El usuario apache puede acceder a los archivos y carpetas, puedo usar el editor de temas y complementos en línea en el panel de administración de wordpress, puedo hacer cambios al archivo .htaccess desde wordpress, pero la instalación de plugins/temas todavía me pide Credenciales de FTP!

¿Alguna idea? Gracias.

+0

¿Estás diciendo que apache se ejecuta en apache: apache puede acceder a los archivos de WordPress con www-data: www-data? Si es así, averigüe cómo lo está gestionando y configúrelo haciendo lo mismo con kovshenin: kovshenin. – Troubadour

+0

No. www-data está en el alojamiento compartido, y apache se está ejecutando bajo www-data. El ritmo del usuario está en mi VPS y se está ejecutando en el usuario y grupo apache: apache. – kovshenin

Respuesta

23

¿Qué debo hacer para que sean legibles y editables tanto por kovshenin como por apache?

  • crear un nuevo grupo, diga "wordpress".
  • Agregue los usuarios de koveshenin y www-data al grupo de wordpress.
  • Cambia el propietario del grupo de todos los archivos a wordpress (usando chgrp).
  • Asegúrese de que todos los archivos sean de escritura grupal.
  • Establezca el bit de permiso g + s (setgid) en todos los directorios de interés.
  • Asegúrese de que kovshenin y umask predeterminada de apache incluyen el permiso de escritura de lectura & del grupo.

El segundo último paso es el truco. Significa que siempre que kovshenin o apache creen un archivo en esos directorios, el propietario del grupo se establecerá en wordpress (en lugar de kovshenin o apache).

+0

Está bien, esto está más cerca, muchas gracias, pero ¿cómo es que el usuario www-data y kovshenin en la cuenta de alojamiento compartido de Media Temple no tienen grupos adicionales? ¿Cómo se llama ese truco? ;) – kovshenin

+0

Es difícil de decir, pero la cuenta de alojamiento compartido puede configurarse utilizando phpsuexec. – caf

+0

Bien, caf, lo verificara, gracias. – kovshenin

1

Puede ceder propiedad a www-data según here.

Ejecutar el siguiente comando en el directorio de WordPress (sudo requiere):

sudo chown -Rf www-data * 

Obras para Apache.

+1

Eso funciona bien, pero luego no puedo editar esos archivos con mi usuario habitual y esto es lo que me asusta ... :( – kovshenin

+0

¿Todavía no son propiedad del grupo kovshenin? Deberías poder editarlos si Si no es así, intente hacer que el usuario kovshenin sea miembro del grupo del que son propietarios y use newgrp para cambiar su grupo a ese antes de editarlos. – Troubadour

+0

Son propiedad del grupo kovshenin, pero los archivos nuevos que yo Cargaré del usuario kovshenin se convertirá en kovshenin: kovshenin y tendría que volver a llamar. Estoy configurando el hosting para algunos clientes míos y me gustaría que sus archivos sean kovshenin: estilo kovshenin, no apache (o www-data). Me pregunto cómo MediaTemple hizo eso ... – kovshenin

0

Tuve el mismo problema y lo resolví apagando PHP 'safe_mode' en plesk, ahora WP puede crear carpetas y mover archivos sin ningún problema.

Espero que esto te ayude.

1

Asumiendo que su instalación de WordPress directorio es /var/www/html a cambio de masa todos los archivos y directorios a la correcta utilización de permisos:

sudo find /var/www/html/ -type d -exec chmod 775 {} \; 
sudo find /var/www/html/ -type f -exec chmod 664 {} \; 

a los medios de cambiar el grupo dueño de todo uso:

sudo chgrp -R <desired_username>.<desired_groupname> /var/www/html 
0

Actualmente , agregando define('FS_METHOD', 'direct'); a wp-config.php podría hacer el truco. Sin embargo, no estoy seguro de que hubiera funcionado en el '09. Ver here para mi caso similar usando nginx. Descubrí que era un paso esencial.

Cuestiones relacionadas