Você está executando o php como root sobre o ssh? Ou outro usuário que tenha permissões mais altas que o servidor web?
Se você souber em que usuário o servidor da Web está sendo executado, tente executar o script php como esse usuário. Você pode usar phpinfo()
para descobrir com qual usuário está sendo executado. Uma maneira de executar um script como esse usuário é a seguinte ...
Primeiro seja root, ou um usuário que possa fazer sudo
, e digite o seguinte, para mudar para o usuário do servidor web:
sudo -u www-data bash
Obviamente, substitua www-data
pelo nome do usuário do servidor da web, se for diferente, e bash
com um shell válido no seu servidor, se você não tiver o bash. Uma que você tenha o prompt bash do usuário do servidor web, execute id
para verificar se você é realmente o usuário certo, e então tente executar seu script PHP a partir da linha de comando do usuário. Se der o mesmo erro, então deve ser o problema de permissões. Se funcionar, pelo menos você descartou isso!
Se parecer ser um problema de permissão, tente o seguinte:
sudo setsebool -P httpd_can_sendmail 1
sudo setsebool -P httpd_can_network_connect 1
Para ativar a permissão.