2016-07-24 4 views
1

Ich versuche PHP-Dateien mit php56 und Nginx, die durch brauen installiert sind, auszuführen.Wie führe ich PHP-Dateien mit php56 und Nginx für OSX aus?

brew install nginx brew install php56

So ist /usr/local/etc/nginx/nginx.conf hier.

worker_processes 1; 

error_log /usr/local/var/log/nginx/error.log; 

events { 
    worker_connections 1024; 
} 

http { 
    include  mime.types; 
    default_type application/octet-stream; 

    sendfile  on; 

    keepalive_timeout 65; 

    server { 
     server_name localhost; 
     listen  8080; 
     root /Users/kent/work; 

     location ~ \.php$ { 
      try_files $uri =404; 
      fastcgi_split_path_info ^(.+\.php)(/.+)$; 
      fastcgi_pass 127.0.0.1:9000; 
      fastcgi_index index.php; 
      fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; 
      include  fastcgi_params; 
     } 

     error_page 500 502 503 504 /50x.html; 
     location = /50x.html { 
      root html; 
     } 

    } 
    include servers/*; 
} 

Ich mache ein Verzeichnis /Users/kent/work/html mit einer HTML-Datei index.html.

<h1>this is my first file!</h1> 

Es funktioniert in http://localhost:8080/html/index.html.

Und ich mache ein Verzeichnis /Users/kent/work/php mit einer PHP-Datei index.php.

<?php phpinfo(); 

Es hat sich nicht in http://localhost:8080/php/index.php sucht. Seltsamerweise macht das Herunterladen von index.php Datei.

Ich sollte PHP-Informationen im Browser durchsuchen. Mache ich etwas falsch? Würden Sie einen Vorschlag machen?

Antwort

0

Es könnte sein, dass Sie nicht fpm Unterstützung in Ihrer PHP-Gebräu installieren enthalten waren

$ brew install php56 --with-fpm --without-apache 

Validate, dass Sie PHP und PHP-FPM installiert

$ php -v 
$ php-fpm -v 

Alternative

Obwohl nicht mit Ihrer ursprünglichen Frage verwandt, kommt OSX mit Apache. Das könnte eine Alternative sein.

Auch wenn Sie Laravel verwenden (oder eine Reihe anderer Frameworks werden unterstützt), können Sie auch Valet betrachten, was eine nette Entwicklungsalternative ist, die den Caddy-Server verwendet.

Update: Weitere Informationen

Überprüfen Sie, dass php-fpm tatsächlich begonnen hat und lauscht auf Port 9000.Wie pro meines Kommentars können Sie überprüfen, dass die Verwendung von:

$ lsof -Pni4 | grep LISTEN | grep php 

Sie sollten sehen, so etwas wie

php-fpm 50622 YourUsername 6u IPv4 0xe686e4bdbc1e41b3  0t0 TCP 127.0.0.1:9000 (LISTEN) 
php-fpm 50636 YourUsername 0u IPv4 0xe686e4bdbc1e41b3  0t0 TCP 127.0.0.1:9000 (LISTEN) 

Sie den Dienst manuell starten können, mit

$ brew services start homebrew/php/php56 

Sie auch gebraucht hätte, um registrieren Sie den Launcher beim Start mit

$ mkdir -p ~/Library/LaunchAgents 
$ cp /usr/local/opt/php56/homebrew.mxcl.php56.plist ~/Library/LaunchAgents/ 
$ launchctl load -w ~/Library/LaunchAgents/homebrew.mxcl.php56.plist 

Wenn Sie nicht sehen, ein php-fpm Eintrag von lsof den nach Hinweisen folgenden überprüfen

  • Den Inhalts /var/log/syslog.log für etwas mit der Zeichenfolge homebrew.mxcl.php56
  • prüft /usr/local/var/log/php-fpm.log und stellen Sie sicher, dass es durch die richtigen Benutzer gehören und der Benutzer hat Zugriff auf dieses Verzeichnis.
+0

Vielen Dank viel für Ihre Unterstützung! wenn ich jedoch php-fpm -v befehle, gibt meine Konsole PHP 5.6.23 (fpm-fcgi) zurück (built: Jul 24 2016 11:25:06) (DEBUG) Copyright (c) 1997-2016 Die PHP Group Zend Engine v2.6.0, Copyright (c) 1998-2016 Zend Technologies'. Also php-fpm wurde installiert aber etwas stimmt nicht. –

+0

@KentFujii Wenn php-fpm gestartet wurde und Port 9000 überwacht wird, können Sie das mit '$ lsof -Pni4 | überprüfen grep LISTEN | grep php –