Wordpress não pode carregar arquivos

3

Eu instalei a pilha LAMP e o Wordpress em um servidor apache2 local usando os tutoriais aqui -

  1. link

  2. link

Mas quando tento enviar um arquivo de mídia (imagem / som), recebo o erro -

The uploaded file could not be moved to wp-content/uploads/2015/01.

O que pode estar errado? Eu adicionei meu usuário ao grupo www-data e chown ao diretório / var / www / também.

    
por goelakash 17.01.2015 / 21:53

3 respostas

8

Você pode usar esse script para corrigir a permissão do wordpress:

#!/bin/bash
#
# This script configures WordPress file permissions based on recommendations
# from http://codex.wordpress.org/Hardening_WordPress#File_permissions
#
# Author: Michael Conigliaro <mike [at] conigliaro [dot] org>
#
WP_OWNER=www-data # <-- wordpress owner
WP_GROUP=www-data # <-- wordpress group
WP_ROOT= # <-- wordpress root directory
WS_GROUP=www-data # <-- webserver group

# reset to safe defaults
find ${WP_ROOT} -exec chown ${WP_OWNER}:${WP_GROUP} {} \;
find ${WP_ROOT} -type d -exec chmod 755 {} \;
find ${WP_ROOT} -type f -exec chmod 644 {} \;

# allow wordpress to manage wp-config.php (but prevent world access)
chgrp ${WS_GROUP} ${WP_ROOT}/wp-config.php
chmod 660 ${WP_ROOT}/wp-config.php

# allow wordpress to manage wp-content
find ${WP_ROOT}/wp-content -exec chgrp ${WS_GROUP} {} \;
find ${WP_ROOT}/wp-content -type d -exec chmod 775 {} \;
find ${WP_ROOT}/wp-content -type f -exec chmod 664 {} \;

salve-o em um arquivo e execute-o e passe-o ao seu diretório de instalação wp:

wget https://gist.github.com/Adirael/3383404/raw/6c5446d56477426faeb709e5b807f00422acdea2/fix-wordpress-permissions.sh
chmod +x fix-wordpress-permissions.sh
sudo ./fix-wordpress-permissions.sh /var/www/html

link

    
por sajjadG 23.05.2015 / 16:36
2

Espero que isso ajude a resolver seu problema e explique o que está acontecendo, para ajudá-lo no futuro também. Quando você entra no wordpress "dashboard" e faz o upload de arquivos - o "usuário" que está realizando as mudanças no sistema de arquivos é www-data (ou seja, libapache2-mod-php5 via apache webserver). Portanto, para fazer alterações em wp-content/uploads/2015/01. , www-data precisa ter permissões de gravação no diretório ou possuir o diretório. Isso significa que você pode conceder permissões liberais à pasta executando:

chmod -R 777 wp-content/uploads

Nota: primeiro você terá que cd no diretório wordpress, e se você ainda não possui a pasta, você precisará usar sudo

No entanto, na minha experiência, isso resultará em problemas, ou seja, uma vez corrigido o problema de permissão, você provavelmente terá mais problemas quando o wordpress tentar gravar arquivos em outros diretórios. quando atualiza, novos plugins, etc. nesse caso eu usaria:

sudo chown -R www-data <wordpress-parent-directory>

e deixe o www-data possuir a pasta inteira.

Nota: não é grande coisa na instalação local, mas quando você passa para o servidor de produção, precisa ser cuidadoso com as permissões e geralmente apenas concede permissões mínimas ao servidor da Web necessárias para executar seu trabalho .

    
por Michael Coleman 18.01.2015 / 00:33
0

O diretório wp-content é realmente o que você acha que é?

Noto que o artigo em questão criou um diretório em /var/www/html/ , mas o wordpress vai estar sob o diretório wordpress que você extraiu do tarfile compactado. No meu caso, foi /var/www/html/wordpress/wp-content , que foi um link para outro diretório. Uma vez que eu consertei os privs e a posse neste local, funcionou para mim.

    
por garthoid 17.01.2015 / 23:03