配置一个nginx+php的web服务器--记录

本人对服务器完全是小白的程度,在大佬师兄的带领下成功配置了web服务器,便想记下来,日后忘了还能看看,同时感谢大佬师兄

安装nginx+php

这一步网上有很多,都挺详细的就跳过了

配置PHP

启用配置文件

将 php 安装目录下的php.ini-development文件拷贝一份重命名为php.ini

配置时区

默认 php 时区为格林尼治时间(零时区时间),为不影响服务器正常运行,要将时区改成服务器的当地时区

编辑php.ini文件,找到date.timezone,取消注释(删除分号),设置为date.timezone = PRC

配置扩展目录路劲

扩展目录是用于放 php 扩展模块的目录。为保证扩展正常加载,首先需正确配置扩展目录路径

编辑php.ini文件,找到extension_dir取消注释并设置为extension_dir = "安装路径\ext",比如我的是extension_dir = "E:\Server\php7\ext"

开启模块扩展

编辑php.ini文件,找到Dynamic Extensions配置区,下方的大量extension键值对即为 PHP 支持的模块扩展

  • 模块扩展说明

bz2:透明地读写 bzip2(.bz2) 压缩文件

curl:支持 libcurl 库,用于连接通讯各类服务器、使用各种通信协议

ffi:调用外部 C 函数

fileinfo:增强文件处理,用于文件信息验证

扫描二维码关注公众号,回复: 8836295 查看本文章

gd2:图像生成及处理

gettext:实现 NLS(Native Language Support) API,用于国际化 php 脚本

gmp:GNU 多精度

intl:国际化扩展,是 ICU 库的包装。用于执行各种语言环境感知操作,包括格式化、音译、编码转换、日历操作、时区和图形等等

imap:邮件客户端协议

ldap:目录服务

mbstring:多字节字符串

exif:可交换图像信息

mysqli:面向对象的 mysql 系统函数增强版,用对象的方式来操作 mysql 数据库

oci8_12c:用于访问 Oracle 数据库

odbc:用于访问 Oracle 数据库

openssl:对称/非对称加密,PBKDF2、PKCS7、PKCS12、X509 以及其他加密操作

pdo_firebird:用于访问 Firebird 数据库

pdo_mysql:实现 php 数据对象 PDO 接口,用于访问 mysql 3.x、4.x、5.x 数据库

pdo_oci:用于访问 Oracle 数据库

pdo_odbc:用于实现开放数据库连接

pdo_pgsql:用于访问 PostgreSQL 数据库

pdo_sqlite:用于访问 sqlite3 数据库

shmop:共享内存

snmp:简单网络管理协议

soap:简单对象访问协议

sockets:提供 socket 通讯服务

sodium:加密库

sqlite3:支持 sqlite3 数据库

tidy:用于清理或修复 HTML、XHTML 以及 XML 文档

xmlrpc:远程过程调用,使用 xml 文本方式传输数据

xsl:扩展样式表语言

  • 开启模块扩展

找到需要使用的模块,取消注释即可

win10编写nginx和php服务管理脚本

下载RunHideConsole

下载地址 https://redmine.lighttpd.net/attachments/660/RunHiddenConsole.zip

编写管理脚本

启动脚本

在 RunHiddenConsole 安装目录下新建StartWeb.bat文件,写入以下代码保存即可

@echooff
echo Starting PHP FastCGI...
RunHiddenConsole E:/Server/php7/php-cgi.exe -b 127.0.0.1:9000 -c E:/Server/php7/php.ini
echo Starting nginx...
RunHiddenConsole E:/Server/nginx/nginx.exe -p E:/Server/nginx

第 3 行中的两个路径分别为 php-cgi.exe 所在路径php.ini 所在路径

第 5 行中的两个路径分别为 nginx.exe 所在路径nginx 的安装根目录

停止脚本

在 RunHiddenConsole 安装目录下新建StopWeb.bat文件,写入以下代码保存即可

@echooff
echo Stopping nginx...
taskkill /F /IM nginx.exe > nul
echo Stopping PHP FastCGI...
taskkill /F /IM php-cgi.exe > nul
exit

共三个文件
在这里插入图片描述

win10中nginx整合php

配置文件路径:nginx 安装路径\conf\nginx.conf

找到server段内的第二个location ~ \.php$代码块
在这里插入图片描述
将其解注释掉,并将fastcgi_param改成$document_root

location ~ \.php$ {
            root           html;
            fastcgi_pass   127.0.0.1:9000;
            fastcgi_index  index.php;
            fastcgi_param  SCRIPT_FILENAME  $document_root$fastcgi_script_name;
            include        fastcgi_params;
        }

nginx开启gzip压缩

为什么要开启gzip

主要原因是在 HTTP 传输中,数据主要以文本为主,尤其是大量的 js/css/html 文件以及二进制图片文件等。开启 gzip 压缩后,可以在传输的过程中对内容进行压缩处理,以减少带宽的压力,提高用户打开网站的速度

gzip的原理

nginx 实现资源压缩的原理是通过 nginx 默认集成的 ngx_http_gzip_module 模块拦截请求,并对需要压缩的类型做 gzip 压缩

开启gzip

配置文件路径:nginx 安装路径\conf\nginx.conf

在 nginx 的默认配置文件中已经书写了简单开启 gzip 的配置。找到http段内的gzip on;,将其解注释(删除#符号),即可开启最基本的 gzip 服务

配置gzip

常见的配置属性为

gzip_min_length:启用 gzip 压缩的最小文件大小,小于设置值的文件将不会压缩。一般设置为1k

gzip_comp_level:gzip 压缩级别,取值为 1-9,数字越大压缩的越好,也越占 CPU 资源。推荐设置为3

gzip_types:进行压缩的文件类型。javascript 有多种形式。其中的值可以在 mime.types 文件中找到

gzip_vary:是否在 http header 中添加 Vary: Accept-Encoding,建议开启

gzip_disable:禁用 gzip 压缩的条件。IE6 浏览器对 gzip 的支持很差,建议取消对 IE6 的 gzip 压缩

gzip_buffers:设置压缩所需要的缓冲区大小。推荐设置为4 16k

gzip_http_version:设置 gzip 压缩针对的 HTTP 协议版本。默认为 HTTP/1.1,使用反向代理时末端通信为 HTTP/1.0

推荐配置:

# gzip 压缩功能设置
gzip                on;
gzip_min_length     1k;
gzip_comp_level     3;
gzip_types          text/plain text/css application/xml application/json application/javascript application/x-javascript text/javascript application/x-httpd-php image/jpeg image/gif image/png application/vnd.ms-fontobject font/ttf font/opentype font/x-woff image/svg+xml;
gzip_vary           on;
gzip_disable        "MSIE [1-6]\.";
gzip_buffers        4 16k;
gzip_http_version   1.0;

nginx配置多站点

如果需要在一台服务器上为不同的域名运行不同的站点,则需要在 nginx 配置文件中配置相应多个虚拟主机字段

建立多站点目录

虽然可以在 nginx.conf文件中一次性配置很多个 server 段,但是这么做不利于后期维护。建议在配置文件目录下建立一个vhost文件夹,并且为每个站点新建各自的配置文件,将其他的站点配置放入此文件夹中

新建站点配置文件

youzi.cc为例:

站点配置文件路径:E:\Server\nginx\conf\vhost\youzi.cc.conf

  • 在nginx\conf中的nginx.conf编辑配置文件
server {
    listen       80;
    server_name  youzi.cc www.youzi.cc;
    root         E:/youzi/www;

    #charset koi8-r;

    #access_log  logs/host.access.log  main;

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

    #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;
    }

    # pass the PHP scripts to FastCGI server listening on 127.0.0.1:9000
    # 开启 PHP 监听,将 PHP 脚本传递到 FastCGI 服务
    location ~ \.php$ {
        fastcgi_pass   127.0.0.1:9000;
        fastcgi_index  index.php;
        fastcgi_param  SCRIPT_FILENAME  $document_root$fastcgi_script_name;
        include        fastcgi_params;
    }
}

引入多站点配置文件

站点配置文件需要在主配置文件nginx.conf的 http 段中引入

http {
    # 引入多站点配置文件
    include  vhost/*.conf;
}

最后将网站放入root的路径
在这里插入图片描述

域名解析

localhost是一个域名,127.0.0.1为IP地址。Windows系统中,约定127.0.0.1为本地IP地址。localhost是其对应的域名。配置是在hosts文件中设置的,Windows下该文件位置为:C:\Windows\System32\drivers\etc目录下hosts文件。
在这里插入图片描述
在这里插入图片描述

发布了6 篇原创文章 · 获赞 0 · 访问量 422

猜你喜欢

转载自blog.csdn.net/Xyouzi/article/details/104064426