CentOS - Problema com permissões de gravação

4

Estou executando o CentOS 6.4 e instalei o Wordpress nele. (junto com LAMP)

Agora, o problema é que não posso fazer nenhuma alteração de gravação em nenhum arquivo no editor de wordpress: por exemplo. header.php, style.css etc. Wordpress diz o seguinte, onde o botão 'update' deve ser: Você precisa tornar este arquivo gravável antes de poder salvar suas alterações.

Notas:

  • Agora o Apache está sendo executado como o usuário raiz (padrão)
  • Aqui estão as permissões na pasta de temas onde todos os arquivos acima mencionados mentira:

    drwxrwxr-x. 5 raiz bluegig 4096 Jul 7 17:32 temas

    drwxrwxr-x. 3 raiz apache 4096 Jul 7 23:15 carregamentos

Eu executei o comando chmod 775 em ambos os 'temas' e 'uploads'. Agora, fazer um chmod 777 me permite permissões de escrita, mas não acredito que seja muito seguro. .. Existe alguma outra maneira melhor de fazer isso?

(bluegig é o nome do meu domínio, não sei porque está lá ...)

O que eu posso fazer:

  • eu posso ler e executar no Wordpress
  • Eu posso fazer upload de arquivos para a pasta de uploads no wordpress

Eu não posso:

  • Faça alterações nos arquivos no wordpress (por meio do editor)
  • Como habilito permissões de gravação para que eu possa modificar arquivos em wordpress?

Note que não entrei em uma conta ftp de dentro do WP.

    
por DextrousDave 09.07.2013 / 11:43

2 respostas

2

A instalação do Apache pode parecer estar sendo executada como root, mas na verdade ele está sendo executado como o usuário apache . Você pode verificar isso procurando neste arquivo:

$ grep "^User" /etc/httpd/conf/httpd.conf
User apache

Todo o seu diretório wordpress provavelmente pertence a esse usuário se você estiver planejando gerenciar a instalação usando o wordpress por meio da interface do usuário da web.

Eu costumo criar um diretório separado para o wordpress assim:

$ pwd
/var/www
$ ls -l | grep wordpress
drwxr-xr-x. 5 apache apache    4096 Apr 25 19:27 wordpress

Aqui está o conteúdo do diretório wordpress para que você possa vê-lo:

-rw-r--r--. 1 apache apache      395 Jan  8  2012 index.php
-rw-r--r--. 1 apache apache  5009441 Jan 23 13:40 latest.tar.gz
-rw-r--r--. 1 apache apache    19929 May  6  2012 license.txt
-rw-r--r--. 1 apache apache     9177 Jan 25 11:25 readme.html
-rw-r--r--. 1 apache apache     4663 Nov 17  2012 wp-activate.php
drwxr-xr-x. 9 apache apache     4096 Dec 11  2012 wp-admin
-rw-r--r--. 1 apache apache      271 Jan  8  2012 wp-blog-header.php
-rw-r--r--. 1 apache apache     3522 Apr 10  2012 wp-comments-post.php
-rw-rw-rw-. 1 apache apache     3466 Jan 23 17:15 wp-config.php
-rw-r--r--. 1 apache apache     3177 Nov  1  2010 wp-config-sample.php
drwxr-xr-x. 7 apache apache     4096 Apr 24 20:15 wp-content
-rw-r--r--. 1 apache apache     2718 Sep 23  2012 wp-cron.php
drwxr-xr-x. 9 apache apache     4096 Dec 11  2012 wp-includes
-rw-r--r--. 1 apache apache     1997 Oct 23  2010 wp-links-opml.php
-rw-r--r--. 1 apache apache     2408 Oct 26  2012 wp-load.php
-rw-r--r--. 1 apache apache    29310 Nov 30  2012 wp-login.php
-rw-r--r--. 1 apache apache     7723 Sep 25  2012 wp-mail.php
-rw-r--r--. 1 apache apache     9899 Nov 22  2012 wp-settings.php
-rw-r--r--. 1 apache apache    18219 Sep 11  2012 wp-signup.php
-rw-r--r--. 1 apache apache     3700 Jan  8  2012 wp-trackback.php
-rw-r--r--. 1 apache apache     2719 Sep 11  2012 xmlrpc.php

Eu normalmente também gerencio qualquer configuração do Apache relacionada ao wordpress em seu próprio wordpress.conf file under this directory, / etc / httpd / conf.d /'.

# wordpress.conf
Alias / "/var/www/wordpress/"
<Directory "/var/www/wordpress/">
Order Deny,Allow
Deny from all
#Allow from 127.0.0.1 192.168.1
Allow from all
AllowOverride all
</Directory>
#RewriteLog "/var/www/wordpress/rewrite.log"
#RewriteLogLevel 3
    
por 09.07.2013 / 11:56
0

(bluegig is the name of my domain, don't know why that is there...)

Parece que há um grupo chamado blugig também de alguma forma. Você pode confirmar isso:

grep bluegig /etc/group

Usar as permissões de grupo é uma maneira de evitar o uso, por exemplo, 777. Você provavelmente quer que os scripts executados por um servidor sejam legíveis e executáveis por ele, mas não graváveis; mas você quer permissões de escrita neles para algum usuário administrador / devel não privilegiado ( dave ). Como o servidor é executado como apache , se o arquivo pertence a um grupo, o apache não faz parte, mas dave é, e as permissões são 775, é o que você obterá (o apache pode ler e executar, dave pode ler escreva execute).

Se a linha de / etc / group não mencionar o apache, você poderia usar o bluegig como o grupo, ou você poderia criar um novo ( groupadd ). Para se colocar em um grupo:

usermod -a -G bluegig dave

Seu nome de login aparecerá agora no final da entrada bluegig em / etc / group, e você terá as mesmas permissões que o grupo bluegig.

    
por 09.07.2013 / 12:00