Parece que não consigo fazer nada com meu script PHP no meu VPS.
Ele retorna 'Permissão negada' quando tento fazer upload de algo para um diretório.
Sim, mudei a permissão para 777 e funciona, mas não gosto da insegurança
Ao executar o comando:
ps axu|grep apache|grep -v grep
Ele retorna
nobody 7689 0.1 3.8 50604 20036 ? S 21:38 0:00 /usr/local/apache/bin/httpd -k start -DSSL
root 13600 0.0 3.8 50304 20348 ? Ss Jun06 0:46 /usr/local/apache/bin/httpd -k start -DSSL
nobody 15733 0.1 3.8 50700 20156 ? S 21:39 0:00 /usr/local/apache/bin/httpd -k start -DSSL
nobody 15818 0.1 3.8 51492 20180 ? S 21:39 0:00 /usr/local/apache/bin/httpd -k start -DSSL
nobody 23843 0.1 3.7 51336 19592 ? S 21:40 0:00 /usr/local/apache/bin/httpd -k start -DSSL
nobody 30335 0.0 3.5 50436 18496 ? S 21:41 0:00 /usr/local/apache/bin/httpd -k start -DSSL
nobody 30406 0.0 3.5 50444 18544 ? S 21:41 0:00 /usr/local/apache/bin/httpd -k start -DSSL
nobody 30407 0.0 3.5 50556 18696 ? S 21:41 0:00 /usr/local/apache/bin/httpd -k start -DSSL
nobody 30472 0.0 3.6 50828 19348 ? S 21:41 0:00 /usr/local/apache/bin/httpd -k start -DSSL
nobody 30474 0.0 3.5 50668 18868 ? S 21:41 0:00 /usr/local/apache/bin/httpd -k start -DSSL
nobody 30476 0.0 3.6 50532 19064 ? S 21:41 0:00 /usr/local/apache/bin/httpd -k start -DSSL
nobody 30501 0.0 3.8 50556 20080 ? S 21:36 0:00 /usr/local/apache/bin/httpd -k start -DSSL
nobody 32341 0.0 3.5 50444 18492 ? S 21:41 0:00 /usr/local/apache/bin/httpd -k start -DSSL
nobody 32370 0.0 3.5 50444 18476 ? S 21:42 0:00 /usr/local/apache/bin/httpd -k start -DSSL
nobody 32414 0.1 3.7 51336 19524 ? S 21:42 0:00 /usr/local/apache/bin/httpd -k start -DSSL
nobody 32416 0.1 3.5 50668 18816 ? S 21:42 0:00 /usr/local/apache/bin/httpd -k start -DSSL
nobody 32457 0.1 3.6 50828 19320 ? S 21:42 0:00 /usr/local/apache/bin/httpd -k start -DSSL
nobody 32458 0.1 3.6 50772 19276 ? S 21:42 0:00 /usr/local/apache/bin/httpd -k start -DSSL
nobody 32459 0.0 3.5 50444 18504 ? S 21:42 0:00 /usr/local/apache/bin/httpd -k start -DSSL
nobody 32460 0.2 3.6 50828 19320 ? S 21:42 0:00 /usr/local/apache/bin/httpd -k start -DSSL
nobody 32463 0.0 3.5 50444 18472 ? S 21:42 0:00 /usr/local/apache/bin/httpd -k start -DSSL
nobody 32466 0.0 3.4 50436 17960 ? S 21:42 0:00 /usr/local/apache/bin/httpd -k start -DSSL
O proprietário do diretório é 'user [505]' e o grupo é 'user[508]' (como visto no WinSCP)
O que posso fazer para alterar o Apache Handler para o proprietário e grupo corretos para permitir que meus scripts PHP funcionem?
PS
Meu PHP não está configurado para modo de segurança e o open_basedir está configurado parasem valor
EDITAR:
Esta é a aparência do meu httpd.conf (para o domínio associativo)
<VirtualHost *:80>
ServerName domain.com
ServerAlias www.domain.com
DocumentRoot /home/domain/public_html
ServerAdmin info@domain
## User <theUsername> # Needed for Cpanel::ApacheConf
<IfModule mod_userdir.c>
Userdir disabled
Userdir enabled <userName>
</IfModule>
<IfModule mod_suphp.c>
suPHP_UserGroup <userName> <userName>
</IfModule>
<IfModule !mod_disable_suexec.c>
SuexecUserGroup <userName> <userName>
</IfModule>
CustomLog /usr/local/apache/domlogs/domain.com-bytes_log "%{%s}t %I .\n%{%s}t %O ."
CustomLog /usr/local/apache/domlogs/domain.com combined
ScriptAlias /cgi-bin/ /home/domain/public_html/cgi-bin/
#Options -ExecCGI -Includes
#RemoveHandler cgi-script .cgi .pl .plx .ppl .perl
Responder1
Ele precisará dos mesmos direitos do usuário que está executando o servidor web. Isso irá variar dependendo do seu sistema operacional. Pode ser "apache" ou "www-data" ou algo totalmente diferente.
A menos que você esteja usandosuEXEC, o script é executado pelo servidor da web e, como tal, é executado com as mesmas permissões desse usuário.
Portanto, para corrigir o problema, você precisa identificar em qual usuário o processo Apache está sendo executado e aplicar as permissões apropriadas aos arquivos/pastas que você deseja que o script possa modificar.
Você pode especificar a conta de usuário e grupo em que o Apache é executado em seu arquivo conf usando o
User=[username]
Group=[groupname]
diretivas.
Dê uma olhada no seu arquivo conf, novamente o nome e a localização do arquivo variam de acordo com o sistema operacional. Fornecer um pouco mais de detalhes aqui pode ajudar com uma resposta mais direta.
editar: para Centos o arquivo conf está localizado em
/etc/httpd/conf/httpd.conf
Responder2
ATUALIZAR!Se você também está tendo esse problema, tente isto:
No WHM acesse:
Principal >> Configuração de serviço >> Configuração Apache >> Configuração PHP e SuExec
Eu mudei Manipulador PHP 5para: suphp.
Funcionou muito bem
Responder3
mudança no WHM Principal >> Configuração do Serviço >> Configuração do Apache >> Configuração do PHP e SuExec php hadler >> fcgi,, isso resolverá o problema.