検索
ホームページバックエンド開発PHPの問題php nginxのインストールと設定方法

php nginx安装配置的方法:首先找到Nginx的配置文件;然后在vim中点击“i”进入编辑模式;接着使用FastCGI协议默认配置;最后重启Nginx服务即可。

php nginxのインストールと設定方法

推荐:《PHP视频教程

写在前面

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

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

工作环境

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

书面信息

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

安装

CentOS下安装:

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

php nginxのインストールと設定方法

配置

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

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

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

php nginxのインストールと設定方法

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

使用vim打开文件nginx.conf

vim /etc/nginx/nginx.conf

配置文件分析

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

php nginxのインストールと設定方法

# 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

php nginxのインストールと設定方法

我的成功了~~

以上がphp nginxのインストールと設定方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
php怎么把负数转为正整数php怎么把负数转为正整数Apr 19, 2022 pm 08:59 PM

php把负数转为正整数的方法:1、使用abs()函数将负数转为正数,使用intval()函数对正数取整,转为正整数,语法“intval(abs($number))”;2、利用“~”位运算符将负数取反加一,语法“~$number + 1”。

php怎么实现几秒后执行一个函数php怎么实现几秒后执行一个函数Apr 24, 2022 pm 01:12 PM

实现方法:1、使用“sleep(延迟秒数)”语句,可延迟执行函数若干秒;2、使用“time_nanosleep(延迟秒数,延迟纳秒数)”语句,可延迟执行函数若干秒和纳秒;3、使用“time_sleep_until(time()+7)”语句。

php怎么除以100保留两位小数php怎么除以100保留两位小数Apr 22, 2022 pm 06:23 PM

php除以100保留两位小数的方法:1、利用“/”运算符进行除法运算,语法“数值 / 100”;2、使用“number_format(除法结果, 2)”或“sprintf("%.2f",除法结果)”语句进行四舍五入的处理值,并保留两位小数。

php怎么根据年月日判断是一年的第几天php怎么根据年月日判断是一年的第几天Apr 22, 2022 pm 05:02 PM

判断方法:1、使用“strtotime("年-月-日")”语句将给定的年月日转换为时间戳格式;2、用“date("z",时间戳)+1”语句计算指定时间戳是一年的第几天。date()返回的天数是从0开始计算的,因此真实天数需要在此基础上加1。

php怎么判断有没有小数点php怎么判断有没有小数点Apr 20, 2022 pm 08:12 PM

php判断有没有小数点的方法:1、使用“strpos(数字字符串,'.')”语法,如果返回小数点在字符串中第一次出现的位置,则有小数点;2、使用“strrpos(数字字符串,'.')”语句,如果返回小数点在字符串中最后一次出现的位置,则有。

php怎么替换nbsp空格符php怎么替换nbsp空格符Apr 24, 2022 pm 02:55 PM

方法:1、用“str_replace("&nbsp;","其他字符",$str)”语句,可将nbsp符替换为其他字符;2、用“preg_replace("/(\s|\&nbsp\;||\xc2\xa0)/","其他字符",$str)”语句。

php字符串有没有下标php字符串有没有下标Apr 24, 2022 am 11:49 AM

php字符串有下标。在PHP中,下标不仅可以应用于数组和对象,还可应用于字符串,利用字符串的下标和中括号“[]”可以访问指定索引位置的字符,并对该字符进行读写,语法“字符串名[下标值]”;字符串的下标值(索引值)只能是整数类型,起始值为0。

php怎么设置implode没有分隔符php怎么设置implode没有分隔符Apr 18, 2022 pm 05:39 PM

在PHP中,可以利用implode()函数的第一个参数来设置没有分隔符,该函数的第一个参数用于规定数组元素之间放置的内容,默认是空字符串,也可将第一个参数设置为空,语法为“implode(数组)”或者“implode("",数组)”。

See all articles

ホットAIツール

Undresser.AI Undress

Undresser.AI Undress

リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover

AI Clothes Remover

写真から衣服を削除するオンライン AI ツール。

Undress AI Tool

Undress AI Tool

脱衣画像を無料で

Clothoff.io

Clothoff.io

AI衣類リムーバー

AI Hentai Generator

AI Hentai Generator

AIヘンタイを無料で生成します。

ホットツール

Safe Exam Browser

Safe Exam Browser

Safe Exam Browser は、オンライン試験を安全に受験するための安全なブラウザ環境です。このソフトウェアは、あらゆるコンピュータを安全なワークステーションに変えます。あらゆるユーティリティへのアクセスを制御し、学生が無許可のリソースを使用するのを防ぎます。

ZendStudio 13.5.1 Mac

ZendStudio 13.5.1 Mac

強力な PHP 統合開発環境

SublimeText3 英語版

SublimeText3 英語版

推奨: Win バージョン、コードプロンプトをサポート!

ゼンドスタジオ 13.0.1

ゼンドスタジオ 13.0.1

強力な PHP 統合開発環境

ドリームウィーバー CS6

ドリームウィーバー CS6

ビジュアル Web 開発ツール