视频1 视频21 视频41 视频61 视频文章1 视频文章21 视频文章41 视频文章61 推荐1 推荐3 推荐5 推荐7 推荐9 推荐11 推荐13 推荐15 推荐17 推荐19 推荐21 推荐23 推荐25 推荐27 推荐29 推荐31 推荐33 推荐35 推荐37 推荐39 推荐41 推荐43 推荐45 推荐47 推荐49 关键词1 关键词101 关键词201 关键词301 关键词401 关键词501 关键词601 关键词701 关键词801 关键词901 关键词1001 关键词1101 关键词1201 关键词1301 关键词1401 关键词1501 关键词1601 关键词1701 关键词1801 关键词1901 视频扩展1 视频扩展6 视频扩展11 视频扩展16 文章1 文章201 文章401 文章601 文章801 文章1001 资讯1 资讯501 资讯1001 资讯1501 标签1 标签501 标签1001 关键词1 关键词501 关键词1001 关键词1501 专题2001
php nginx 安装配置的方法
2020-11-06 11:42:39 责编:小采
文档


推荐:《PHP视频教程》

写在前面

在学习搭建LNMP环境的过程中初识Nginx(读法:engine x),感觉完全复制粘贴网上的安装配置方法没有什么意义,就打算展开学习一下。

关于Windows下Nginx的安装和配置:Windows下的Nginx安装与配置(PHP)

工作环境

  • 腾讯云 1核 1GB 1Mbps 云服务器
  • CentOS 7.2 位
  • 已经安装了PHP
  • 使用putty链接服务器
  • 书面信息

    Nginx:俄罗斯工程师Igor Sysoev开发,高性能的HTTP/反向代理/邮件服务器。

    安装

    在CentOS下安装:

    #使用yum安装,-y表示对所有的提问都回答“yes”,install为安装指令yum -y install nginx

    配置

    Nginx的配置文件默认位置为:/etc/nginx/nginx.conf

    如果说找不到可以搜索一下:

    #locate 搜索文件的位置locate nginx.conf

    如上图,在我的环境中nginx.conf在/etc/nginx/nginx.conf

    使用vim打开文件nginx.conf

    vim /etc/nginx/nginx.conf

    配置文件分析

    nginx.conf内容如下(只截取了没被注掉的部分):

    # nginx运行的用户名user nginx;# nginx启动进程,通常设置成和cpu的数量相等,这里为自动worker_processes auto;# errorlog文件位置error_log /var/log/nginx/error.log;# pid文件地址,记录了nginx的pid,方便进程管理pid /run/nginx.pid;# Load dynamic modules. See /usr/share/nginx/README.dynamic.# 用来加载其他动态模块的配置include /usr/share/nginx/modules/*.conf;# 工作模式和连接数上限events { # 每个worker_processes的最大并发链接数
     # 并发总数:worker_processes*worker_connections
     worker_connections 1024;
    }# 与提供http服务相关的一些配置参数类似的还有mailhttp { # 设置日志的格式
     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记录访问的用户、页面、浏览器、ip和其他的访问信息
     access_log /var/log/nginx/access.log main; # 这部分下面会单独解释
     # 设置nginx是否使用sendfile函数输出文件
     sendfile on; # 数据包最大时发包(使用Nagle算法)
     tcp_nopush on; # 立刻发送数据包(禁用Nagle算法)
     tcp_nodelay on; # 链接超时时间
     keepalive_timeout 65; # 这个我也不清楚...
     types_hash_max_size 2048; # 引入文件扩展名与文件类型映射表
     include /etc/nginx/mime.types; # 默认文件类型
     default_type application/octet-stream; # Load modular configuration files from the /etc/nginx/conf.d directory.
     # See http://nginx.org/en/docs/ngx_core_module.html#include
     # for more information.
     include /etc/nginx/conf.d/*.conf; # http服务上支持若干虚拟主机。
     # 每个虚拟主机一个对应的server配置项
     # 配置项里面包含该虚拟主机相关的配置。
     server { # 端口
     listen 80 default_server; listen [::]:80 default_server; # 访问的域名
     server_name _; # 默认网站根目录(www目录)
     root /usr/share/nginx/html; # Load configuration files for the default server block.
    
     include /etc/nginx/default.d/*.conf; # 默认请求
     location / {
     } # 错误页(404)
     error_page 404 /404.html; location = /40x.html {
     } # 错误页(50X)
     error_page 500 502 503 504 /50x.html; location = /50x.html {
     }
     }
    }

    值得说明的几点

    1. 关于error_log 可以设置log的类型(记录什么级别的信息)有:debug、info、notice、warn、error、crit几种

    2. 关于sendfile
      一般的网络传输过程
      硬盘 >> kernel buffer >> user buffer>> kernel socket buffer >>协议栈
      使用sendfile后
      硬盘 >> kernel buffer (快速拷贝到kernelsocket buffer) >>协议栈
      可以显著提高传输性能。

    3. tcp_nopush和tcp_nodelay
      tcp_nopush只有在启用了sendfile时才起作用,
      在启用tcp_nopush后,程序接收到了数据包后不会马上发出,而是等待数据包最大时一次性发出,可以缓解网络拥堵。(Nagle化)
      相反tcp_nodelay则是立即发出数据包.

    配置

    分析完了配置文件后开始配置环境。

    因为只是配置PHP的服务器,而且只使用一个端口所以只需要改动server部分

    在vim中点击‘i’进入编辑模式。

    server { listen 80 default_server; listen [::]:80 default_server; # 这里改动了,也可以写你的域名
     server_name localhost; root /usr/share/nginx/html; # Load configuration files for the default server block.
     include /etc/nginx/default.d/*.conf; location / { # 这里改动了 定义首页索引文件的名称
     index index.php index.html index.htm;
     } error_page 404 /404.html; location = /40x.html {
     } error_page 500 502 503 504 /50x.html; location = /50x.html {
     } # 这里新加的
     # PHP 脚本请求全部转发到 FastCGI处理. 使用FastCGI协议默认配置.
     # Fastcgi服务器和程序(PHP,Python)沟通的协议.
     location ~ \\.php$ { # 设置监听端口
     fastcgi_pass 127.0.0.1:9000; # 设置nginx的默认首页文件(上面已经设置过了,可以删除)
     fastcgi_index index.php; # 设置脚本文件请求的路径
     fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; # 引入fastcgi的配置文件
     include fastcgi_params;
     }
     }

    修改完成后将vim编辑器切换到一般一半模式(Esc),然后输入:wq保存退出。

    之后重启Nginx服务

    service nginx restart

    以上就配置成功了,但是上面的配置只是nginx配置部分,更多的内容需要继续学习。

    测试

    我们可以通过下面的方法判断Nginx配置是否成功。

    1. 在Nginx的网站根目录(/usr/share/nginx/html)下创建一个php文件,随便起名我的是phpinfo.php

      内容如下:

      <?php
      
       // 顺便可以看一下php的扩展全不全
       phpinfo();
    2. 进入你的网站看看能不能打开文件
      你的ip/文件名 例如:localhost/phpinfo.php

    我的成功了~~

    下载本文
    显示全文
    专题