WordPress Update - Esto generalmente se debe a permisos de archivo inconsistentes: wp-admin/includes/update-core.php
Tengo algunos sitios WordPress en un servidor con acceso root, y al momento de crear el servidor, todo funcionaba bien y WordPress, los plugins y los temas se actualizaban sin problemas, pero no estoy seguro por qué recientemente obtuve un error que indica generalmente un error de permisos (aunque veo que los permisos están bien).
Error al actualizar WordPress:
Descargando actualización desde https://downloads.wordpress.org/release/fa_IR/wordpress-5.7.zip…
No se pudo verificar la autenticidad de wordpress-5.7.zip ya que no se encontró ninguna firma.
Desempaquetando la actualización…
La actualización no se puede instalar porque no podremos copiar algunos archivos. Esto generalmente se debe a permisos de archivo inconsistentes: wp-admin/includes/update-core.php
La instalación falló.
Esto es lo que hice para investigar el problema:
ls -ld /home
drwx--x--x 26 root root 4096 Mar 9 20:03 home
ls -ld /home/my_user
drwx--x--x 26 my_user my_user 4096 Mar 9 20:03 /home/my_user/
ls -ld /home/my_user/public_html
drwxr-x--- 26 my_user nobody 4096 Mar 9 20:03 /home/my_user/public_html/
Además, todos los archivos dentro de public_html tienen permisos 0644, y todos los directorios tienen 0755.
cd /home/my_user/public_html/
find . -type f -exec chmod 644 {} \; && find . -type d -exec chmod 755 {} \;
find . -type f -exec chown my_user:my_user {} \; && find . -type d -exec chown my_user:my_user {} \;
El resultado de lsattr
es el siguiente:
lsattr /home/my_user/public_html/wp-admin/includes/update-core.php
-------------e-- /home/my_user/public_html/wp-admin/includes/update-core.php
Así que hasta ahora, en mi opinión no hay nada mal con los permisos y la propiedad.
Revisando los permisos y la propiedad de wp-admin
, wp-admin/includes
y wp-admin/includes/update-core.php
estaba todo bien y no había problemas, pero no estoy seguro por qué WordPress no puede instalar ningún plugin, tema o actualizarse a sí mismo.
El PHP-Handler es suphp
(también lo ejecuté con cgi
y lsapi
) pero nada cambió en este aspecto.
La configuración de Apache es la siguiente:
MPM: mod_mpm_prefork
Apache modules (algunos de ellos):
mod_cgi
mod_lsapi
mod_mpm_prefork
mod_suexec
mod_suphp
Debo mencionar que creé un archivo como info.php
y lo ejecuté en el navegador web, funciona bien. Luego cambié el propietario a root:root
y en el segundo caso obtuve un error 403 (que es lo esperado), luego lo revertí nuevamente a my_user:my_user
El grupo de Apache es nobody
creo, y el chown
del directorio public_html
es my_user:nobody
. Así que mi sitio web y otros sitios web funcionan bien, pero el único problema es al actualizar o incluso intentar instalar un plugin/tema/nueva actualización.
He revisado los archivos de registro pero no se registró nada.
Solucioné esto haciendo que el usuario del servidor web sea el propietario y el grupo de todos los archivos en el directorio de WordPress.
Descubrí que el usuario del servidor web era daemon con:
ps aux | egrep '(apache|httpd)'
Luego cambié los permisos con:
sudo chown -R daemon:daemon /tu-ruta-hacia-wordpress

Gracias, pero reinstalé el sistema operativo y ahora todo funciona bien, aunque eso no resolvió mi problema porque ya lo había intentado
