欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  后端开发

关于php7+nginx的配置(osx环境)

程序员文章站 2024-01-26 14:37:34
...
这是我的nginx配置
worker_processes  1;

error_log  /usr/local/var/log/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/log/nginx/access.log main;

    sendfile        on;

    keepalive_timeout  65;

    server {
        listen       8080;
        server_name  localhost;

        location / {
            root   html;
            index  index.html index.htm;
        }

        include php.conf;

        #error_page  404              /404.html;
        
        # redirect server error pages to the static page /50x.html
        #
        error_page   500 502 503 504  /50x.html;
        location = /50x.html {
            root   html;
        }

    }

    include servers/*;
    include /usr/local/etc/nginx/sites-enabled/*;

    autoindex on;
    autoindex_exact_size off;
}

php.conf

location ~ [^/]\.php(/|$) {
        fastcgi_split_path_info ^(.+?\.php)(/.*)$;
        if (!-f $document_root$fastcgi_script_name) {
                return 404;
        }

        fastcgi_pass 127.0.0.1:9000;
        fastcgi_index index.php;
        include fastcgi_params;
}

PHP设置除了增加了这一行其他都是默认

open_basedir = /usr/local/var/www/

用brew安装PHP时候的参数

brew install --without-apache --with-fpm --with-mysql php70

PHP端口测试

>lsof -Pni4 | grep LISTEN | grep php
php-fpm      89 joshua    6u  IPv4 0x765c1f70dd81f88b      0t0  TCP 127.0.0.1:9000 (LISTEN)
php-fpm     310 joshua    0u  IPv4 0x765c1f70dd81f88b      0t0  TCP 127.0.0.1:9000 (LISTEN)
php-fpm     311 joshua    0u  IPv4 0x765c1f70dd81f88b      0t0  TCP 127.0.0.1:9000 (LISTEN)

目前不知道为什么,点击www下的php文件,要么显示空白,要么直接下载下来了

第一次所用nginx,希望回答的同时解释一下为什么发生这样的问题)

回复内容:

这是我的nginx配置

worker_processes  1;

error_log  /usr/local/var/log/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/log/nginx/access.log main;

    sendfile        on;

    keepalive_timeout  65;

    server {
        listen       8080;
        server_name  localhost;

        location / {
            root   html;
            index  index.html index.htm;
        }

        include php.conf;

        #error_page  404              /404.html;
        
        # redirect server error pages to the static page /50x.html
        #
        error_page   500 502 503 504  /50x.html;
        location = /50x.html {
            root   html;
        }

    }

    include servers/*;
    include /usr/local/etc/nginx/sites-enabled/*;

    autoindex on;
    autoindex_exact_size off;
}

php.conf

location ~ [^/]\.php(/|$) {
        fastcgi_split_path_info ^(.+?\.php)(/.*)$;
        if (!-f $document_root$fastcgi_script_name) {
                return 404;
        }

        fastcgi_pass 127.0.0.1:9000;
        fastcgi_index index.php;
        include fastcgi_params;
}

PHP设置除了增加了这一行其他都是默认

open_basedir = /usr/local/var/www/

用brew安装PHP时候的参数

brew install --without-apache --with-fpm --with-mysql php70

PHP端口测试

>lsof -Pni4 | grep LISTEN | grep php
php-fpm      89 joshua    6u  IPv4 0x765c1f70dd81f88b      0t0  TCP 127.0.0.1:9000 (LISTEN)
php-fpm     310 joshua    0u  IPv4 0x765c1f70dd81f88b      0t0  TCP 127.0.0.1:9000 (LISTEN)
php-fpm     311 joshua    0u  IPv4 0x765c1f70dd81f88b      0t0  TCP 127.0.0.1:9000 (LISTEN)

目前不知道为什么,点击www下的php文件,要么显示空白,要么直接下载下来了

第一次所用nginx,希望回答的同时解释一下为什么发生这样的问题)

 server {
        listen       8080;
        server_name  localhost;

        location / {
            root   html;

目测是这个root写的不对.
root应该是指的项目根目录.比如我的项目在/usr/local/www/project,那么root应该写这个.

相关标签: nginx php osx