As permissões de /home/server
negam acesso a qualquer pessoa, exceto seu proprietário. Isso é o que significa drwx------
.
Para resolver o problema, permita que outros usuários entrem no diretório.
chmod a+x /home/server
Eu tenho uma edição mínima Centos 6.4 (x64) limpa instalada (totalmente atualizada).
Uma vez que o sistema operacional foi configurado, eu segui este guia relativamente simples para configurar o meu FTP: link
SELinux is disabled.
anonymous_enable=NO (vsFTPD Config)
chroot_local_user=YES (vsFTPD Config)
em vez de criar um usuário local do linux acessando / ftp / [username] (conforme orientação), optei por usar o local padrão de / home / [username] onde [username] era server (na minha configuração)
Eu testei meu servidor FTP e ele está instalado & correndo bem /. Então eu entrei no FTP e criei uma pasta chamada "public_html" e então criei um arquivo index.php dentro dela com <?php phpinfo(); ?>
code nela. (Portanto, o caminho completo é: /home/server/public_html/index.php)
Eu então instalei o nginx & php-fpm e começou a criar os seguintes arquivos de configuração para cada um nesta ordem.
/etc/php-fpm.d/server.conf (pool do php-fpm para o meu nix acc: server):
[server]
listen = '/var/run/php-fcgi-server.sock'
listen.allowed_clients = 127.0.0.1
user = server
group = server
pm = static
pm.max_children = 5
pm.start_servers = 5
pm.min_spare_servers = 5
pm.max_spare_servers = 10
pm.max_requests = 200
php_admin_value[error_log] = /var/log/php-fpm/server-php-errors.log
php_admin_flag[log_errors] = on
php_admin_flag[display_errors] = on
/etc/nginx/conf.d/dev-minecraft.local.conf (nginx vHost):
upstream serverbackend {
server unix:/var/run/php-fcgi-server.sock;
}
server {
listen *:80 default;
server_name dev-minecraft.local;
root /home/server/public_html;
location / {
index index.html index.php;
try_files $uri $uri/ @handler;
expires 30d;
}
client_max_body_size 10M;
location /. {
return 404;
}
location @handler {
rewrite / /index.php;
}
location ~ .php/ {
rewrite ^(.*.php)/ $1 last;
}
location ~ .php$ {
if (!-e $request_filename) { rewrite / /index.php last; }
expires off;
fastcgi_pass serverbackend;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
include fastcgi_params;
}
}
Agora, se eu visitar o site sem meu navegador: link , recebo o seguinte erro: 500 Erro interno do servidor
E vejo os seguintes erros no meu arquivo /var/log/nginx/error.log :
2013/07/22 12:58:07 [crit] 2039#0: *1 stat() "/home/server/public_html/" failed (13: Permission denied), client: 192.168.1.15, server: dev-minecraft.local, request: "GET / HTTP/1.1", host: "192.168.1.54"
2013/07/22 12:58:07 [crit] 2039#0: *1 stat() "/home/server/public_html/" failed (13: Permission denied), client: 192.168.1.15, server: dev-minecraft.local, request: "GET / HTTP/1.1", host: "192.168.1.54"
2013/07/22 12:58:07 [crit] 2039#0: *1 stat() "/home/server/public_html/index.php" failed (13: Permission denied), client: 192.168.1.15, server: dev-minecraft.local, request: "GET / HTTP/1.1", host: "192.168.1.54"
Alguma ideia do que estou fazendo errado aqui? Uma coisa que eu notei no WinSCP (depois que eu login via FTP), o dono do arquivo / grupo é definido como um identificador numérico (500) em vez do nome de usuário da conta "servidor". Esta é a razão pela qual o nginx / php-fpm não consegue acessar os arquivos do site? Como posso consertar isso?
Definitivamente, um problema de permissão. O usuário do php-fpm e o usuário nginx devem ter acesso de leitura aos arquivos em seu diretório. Também sua configuração nginx é um pouco problemática. Por favor, tente o seguinte:
client_max_body_size 10M;
index index.html index.php;
upstream serverbackend {
server unix:/var/run/php-fcgi-server.sock;
}
server {
server_name dev-minecraft.local;
root /home/server/public_html;
expires 30d;
location / {
location ~ \.php$ {
expires off;
include fastcgi_params;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
fastcgi_pass serverbackend;
}
try_files $uri $uri/ =404;
}
}