nginx多版本PHP配置
参考NGINX配置手册 Nginx中文文档|虚拟主机
有讲解到 UNIX Domain Socket 和 tcp 的区别
nginx: fastcgi_pass的配置
视频讲解:【体验课】NGINX快速学习指南
nginx多版本PHP配置
一位客户服务器配置为
- CentOS7
- PHP 7.4
- mysql 5.7
- NGINX 1.15.11
但是因为项目只能使用PHP5.x,因此需要修改相应的服务器配置
安装 nginx
安装依赖包:
# yum -y install pcre pcre-devel openssl openssl-devel gcc gcc-c++ autoconf automake zlib-devel libxml2 libxml2-dev libxslt-devel gd-devel perl-devel perl-ExtUtils-Embed GeoIP GeoIP-devel GeoIP-data make GeoIP-devel GeoIP-update
下载nginx1.15
1
2cd /usr/local/src/
curl -o nginx-1.15.1.tar.gz http://nginx.org/download/nginx-1.15.1.tar.gz创建用户和组
1
2groupadd nginx
useradd nginx -g nginx -s /sbin/nologin -M解压,配置,编译,安装
官网对参数的说明
Building nginx from Sources1
2
3
4
5
6
7
8
9
10
11
12tar -zxvf nginx-1.15.1.tar.gz
cd nginx-1.15.1
测试一下
./configure
如果没报错则开始设置
设置
./configure --prefix=/usr/local/nginx --user=nginx --conf-path=/usr/local/nginx/nginx.conf --pid-path=/usr/local/nginx/nginx.pid --error-log-path=/usr/local/nginx/logs/error.log --http-log-path=/usr/local/nginx/logs/access.log --group=nginx --with-http_ssl_module --with-http_realip_module --with-http_geoip_module --with-http_stub_status_module --with-http_sub_module --with-stream --with-stream=dynamic
编译安装
make && make install
安装出现的一些错误以及解决办法
- Linux Nginx安装以及可能出现错误
- Error: xz compression not available的解决办法
- 如果不指定 nginx.pid 路径,则运行时可能报错
./nginx
启动,重启 nginx 时遇到错误会直接停止 nginx,并删除pid文件,此时解决报错,并启动 nginx 即可。- 解决Nginx: error open() "/usr/local/Nginx/logs/Nginx.pid” failed(2:No such file or directory)
- 添加为系统服务,新建一个服务
$ vim /usr/lib/systemd/system/nginx.service
复制下面的内容,路径改为自己设置的路径
1 | [Unit] |
1 | 设置nginx.service文件的权限 |
- nginx命令行参数:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20nginx 原生参数
-V 查看编译参数。
-h 查看帮助。
-g 设置全局配置指令。
-s 发送信号
信号:
stop 快速关闭
quit 正常关闭,等待工作进程完成当前请求后停止nginx进程
reload 重新加载配置文件
reopen 重新打开日志文件.
使用 ./nginx -s stop/quit/reload/reopen
系统服务指令
systemctl status nginx.service
systemctl start nginx.service
systemctl restart nginx.service
systemctl stop nginx.service
开启服务启动时执行
systemctl enable nginx.service
配置 nginx 虚拟机使用指定版本PHP
# vim /usr/local/nginx/nginx.conf
1 | server{ |
在 http{}
中,一个 server{}
表示一个虚拟机,而虚拟机使用 指定版本 PHP 也只需要设置
1 | location ~ \.php$ { |
伪静态
nginx常用伪静态设置
Nginx针对URL或目录访问控制总结
引用
项目根目录下的 nginx.htaccess 文件include /xx/WWW/xxx/nginx.htaccess;
伪静态规则
允许某些目录下的文件访问
1 | if ($request_filename !~* /(index\.php|htsysadmin|HTSYSADMIN|Bak2010|robots\.txt|favicon\.ico|sitemap\.xml|sitemap\.html|skin|upload)) { |
1 | -e filename 如果 filename存在,则为真 |
相关资料:
Comments