Eu tenho um ambiente PHP / nginx no OS X, que é implantado em um servidor Ubuntu.
No OS X, o nginx é configurado com o Homebrew, assim meu usuário (" joe
") possui os arquivos, enquanto no Ubuntu o nginx é instalado com o sudo e, portanto, de propriedade do superusuário.
Desse modo, a gravação em logs de erros falha quando eu executo scripts PHP a partir da linha de comando no Ubuntu, já que meu usuário pessoal não tem permissões para os arquivos de log nginx como no OS X.
Possíveis soluções em que pensei:
chmod o+rw
nos arquivos de log no Ubuntu. joe
como membro de adm
no Ubuntu e faça chmod g+w
nos arquivos de log. Suponho que alterar os nomes de usuários e grupos ( _www
, www-data
e add
) não seja uma boa ideia, pois eles são padronizados.
Sou root e o único usuário em ambos os sistemas. Mostrando abaixo meu manipulador de erros (simplificado) e como a configuração e as permissões são configuradas por padrão.
Manipulador de erros:
function error_handler($mask, $error, $file, $line) {
error_log("$text\n", 3, "/var/log/nginx/php.log");
}
OS X:
nginx.conf:
user joe _www;
ls:
-rw-rw-r-- joe _www /var/log/nginx/php.log
Ubuntu:
nginx.conf:
user www-data;
ls:
-rw-r----- www-data adm /var/log/nginx/php.log
Tags permissions php nginx