Home > Article > Backend Development > macos - PHP Nginx environment configured on mac. When accessing php files, downloading occurs instead of executing php files.
<code>vim /usr/local/etc/nginx/sites-available/default </code>
<code>server { listen 80; server_name localhost; root /var/www/; access_log /usr/local/var/logs/nginx/default.access.log main; location / { index index.html index.htm index.php; autoindex on; include /usr/local/etc/nginx/conf.d/php-fpm; } location = /info { allow 127.0.0.1; deny all; rewrite (.*) /.info.php; } error_page 404 /404.html; error_page 403 /403.html; } </code>
<code>/usr/local/etc/nginx/nginx.conf </code>
<code>worker_processes 1; error_log /usr/local/var/logs/nginx/error.log debug; pid /usr/local/var/run/nginx.pid; events { worker_connections 256; } http { include mime.types; default_type application/octet-stream; log_format main '$remote_addr - $remote_user [$time_local] "$request" ' '$status $body_bytes_sent "$http_referer" ' '"$http_user_agent" "$http_x_forwarded_for"'; access_log /usr/local/var/logs/access.log main; sendfile on; keepalive_timeout 65; port_in_redirect off; include /usr/local/etc/nginx/sites-enabled/*; } </code>
/usr/local/etc/nginx/sites-available/default This file configures port 80. Why can’t port 80 be accessed, but can access port 8080?
When accessing port 80, a 404 error cannot be foundReply content:
<code>vim /usr/local/etc/nginx/sites-available/default </code>
<code>server { listen 80; server_name localhost; root /var/www/; access_log /usr/local/var/logs/nginx/default.access.log main; location / { index index.html index.htm index.php; autoindex on; include /usr/local/etc/nginx/conf.d/php-fpm; } location = /info { allow 127.0.0.1; deny all; rewrite (.*) /.info.php; } error_page 404 /404.html; error_page 403 /403.html; } </code>
<code>/usr/local/etc/nginx/nginx.conf </code>
<code>worker_processes 1; error_log /usr/local/var/logs/nginx/error.log debug; pid /usr/local/var/run/nginx.pid; events { worker_connections 256; } http { include mime.types; default_type application/octet-stream; log_format main '$remote_addr - $remote_user [$time_local] "$request" ' '$status $body_bytes_sent "$http_referer" ' '"$http_user_agent" "$http_x_forwarded_for"'; access_log /usr/local/var/logs/access.log main; sendfile on; keepalive_timeout 65; port_in_redirect off; include /usr/local/etc/nginx/sites-enabled/*; } </code>
When accessing port 80, a 404 error cannot be found
First you need a php-fpm to run php, and then configure it to the correct location
Refer to my conf:
<code>server { listen 80; server_name xxxxxx; index index.php; root /usr/www/web-sites/xxxxxx; error_log /var/log/nginx/xxxxxx.xxx.error.log; access_log /var/log/nginx/xxxxxx.xxx.access.log; location / { try_files $uri /index.php$is_args$args; } location ~ ^/.+\.php(/|$) { fastcgi_pass php_fpm:9000; include fastcgi_params; fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; } location ~ .*\.(gif|jpg|jpeg|png|bmp|swf|js|css)$ { expires 1d; } }</code>
If you have any questions, you can search for the keyword:
nginx connects to php-fpmThe one I provide is the http method. You can switch to the more efficient socket method. Keyword:
socket nginx php-fpm