2015-05-22 8 views
7

Forse mi manca qualcosa di estremamente semplice, ma come è possibile che il mio server web sia in grado di eseguire e pubblicare contenuti da file php con permesso 000?Il mio server web nginx + php-fm è in grado di servire pagine Web con permesso 000. Perché?

Ecco il file in questione: http://178.62.125.162/test.php

posizione è:

/usr/share/nginx/html/wordpress/test.php 

Ecco il ls:

---------- 1 deploy deploy 21 May 22 09:40 test.php 

nginx.conf ha linea:

user www-data; 

S o non funziona come root o altro.

ps aux | grep [n]ginx 
root  30223 0.0 0.1 85876 1364 ?  Ss May21 0:00 nginx: master process /usr/sbin/nginx 
www-data 30224 0.0 0.1 86172 1796 ?  S May21 0:03 nginx: worker process 
www-data 30225 0.0 0.1 86172 1796 ?  S May21 0:03 nginx: worker process 
www-data 30226 0.0 0.2 86516 2732 ?  S May21 0:00 nginx: worker process 
www-data 30227 0.0 0.1 86172 1796 ?  S May21 0:03 nginx: worker process 

Mi sembra normale, AFAIK è previsto il processo principale eseguito come utente root.

e PHP-fm:

ps aux | grep php 
root  30311 0.0 1.8 309068 18580 ?  Ss May21 0:02 php-fpm: master process (/etc/php5/fpm/php-fpm.conf) 
www-data 30314 0.0 3.5 393324 36176 ?  S May21 0:01 php-fpm: pool www 
www-data 30315 0.0 3.1 388956 32112 ?  S May21 0:01 php-fpm: pool www 
www-data 30391 0.0 2.9 389828 29528 ?  S May21 0:00 php-fpm: pool www 

non posso nemmeno aprire il file stesso, registrato come implementare:

cat test.php 
cat: test.php: Permission denied 

php test.php 
Could not open input file: test.php 

su Google in tutto il mondo, ma la maggior parte delle cose che trovo sono legati al di fronte- le persone che ottengono errori Proibiti.

Forse è perché è in/usr/share? Grazie!

Info extra:

Ubuntu LTS x64

PHP-FM

Aggiornamento:

riavvio del servizio php-FM dopo aver cambiato il permesso lo ripara. Ma questo non ha senso per me:

chmod 000 test.php - web echos "test" 
service php5-fm restart - Access Denied 
chmod 644 test.php - web echos "test". No need for a restart this time? 
chmod 000 test.php - web echos "test". 
+0

Nel tuo caso gli script PHP vengono eseguiti dal demone php-fpm non nginx. Quale utente usa il processo php-fpm? Hai riavviato php-fpm dopo che le autorizzazioni sono cambiate? –

+0

Interessante. Ho aggiornato la domanda con il processo php, è in esecuzione come www-data. Tuttavia, dopo il riavvio di php5-fpm è ora dare accesso negato. Perché? – aaronjbaptiste

+0

php-fpm di solito memorizza nella cache il contenuto degli ultimi/più popolari script per velocizzare l'esecuzione. Una volta riavviato, la cache di php5-fpm è stata cancellata e il tentativo di leggere lo script dal disco non è riuscito con Access Denied. Da ora funzionerà come previsto senza accesso a questo file. –

risposta

0

Grazie ad Alexander Ushakov per aver fornito le risposte.

Il file con il permesso leggibile era stato memorizzato nella cache da php-fm. Il riavvio di php-fm ha significato che la cache è stata cancellata e il server Web ha quindi servito il nuovo file con accesso limitato.

Problemi correlati