配置一个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:增强文件处理,用于文件信息验证
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文件。
上一篇: 采用单例设计模式的Runtime类
下一篇: ios-MKMapView上添加大头针