前文:Centos7+Nginx+PHP 基础WEB运行环境手工部署
此前我们在Centos7上手工部署了Nginx+PHP的运行环境,然而并没有说到虚拟主机多个站点的部署方法,此文将继续记录Nginx虚拟主机多站点的一些部署及注意细节。
Nginx主配置:/usr/local/Nginx/Nginx.conf
默认网站目录:/usr/local/Nginx/html
如果您的配置和当前的配置不一样,注意将文中路径替换。
准备工作
创建网站目录以及配置目录
#创建网站目录及网站产生的日志存放目录 mkdir /mnt/web/example/wwwroot -p mkdir /mnt/web/example/log -p #创建Nginx加载的虚拟主机配置存放目录 mkdir /usr/local/Nginx/vhost #创建默认文件 echo "<?PHP PHPinfo();>" > /mnt/web/example/wwwroot/index.PHP echo "hi example.com" > /mnt/web/example/wwwroot/index.html #设置权限 chown -R PHP-fpm:www /mnt/web chmod -R 775 /mnt/web
配置文件
普通虚拟主机配置(不支持PHP)
增加一个网站配置
cd /usr/local/Nginx/vhost vi example.conf
log_format soshash.log.format '$remote_addr - $remote_user [$time_local] $request' '$status $body_bytes_sent $http_referer ' '$http_user_agent $http_x_forwarded_for'; server { listen 80; server_name example.com www.example.com *.demo.example.com; index index.html index.htm index.PHP; root /mnt/web/example/wwwroot; access_log /mnt/web/example/log/access.log example.log.format; error_log /mnt/web/example/log/error.log; }
域名绑定(server_name):
- 单域名:server_name www.example.com
- 多域名:server_name www.example.com PHP.example.com
- 泛域名:server_name *.demo.example.com
- 以及正则匹配域名。域名可以绑定多个,只需要用空格分割开即可。
网站目录(root):填写我们预先创建的网站目录。
访问日志文件(access_log):
- access_log 产生日志文件存储路径 日志内容的格式(example.log.format)
- example.log.format 相当于变量一样,需要提前声明。
- 最新版本的 Nginx(1.12.0)需要 将log_format 放置到 server段外部,否则会报一个类似:Nginx: [emerg] "log_format" directive is not allowed here in xxx 的错误。
- #error_log logs/error.log;
- #error_log logs/error.log notice;
- #error_log logs/error.log info;
重载Nginx配置
/usr/local/Nginx/Nginx -s reload
PHP虚拟主机配置(支持PHP)
解析域名并测试访问
http://www.example.com/index.html 有效
http://www.example.com/index.PHP 错误(下载资源文件)
log_format soshash.log.format '$remote_addr - $remote_user [$time_local] $request' '$status $body_bytes_sent $http_referer ' '$http_user_agent $http_x_forwarded_for'; server { listen 80; server_name example.com www.example.com *.demo.example.com; index index.html index.htm index.PHP; root /mnt/web/example/wwwroot; #新增配置如下 location ~ .*\.(PHP|PHP5)?$ { fastcgi_pass 127.0.0.1:9000; fastcgi_index index.PHP; fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; fastcgi_param SCRIPT_NAME $fastcgi_script_name; include fastcgi_params; } access_log /mnt/web/example/log/access.log example.log.format; error_log /mnt/web/example/log/error.log; }
重载Nginx
/usr/local/Nginx/Nginx -s reload
再次测试通过。
类同,配置其他多个虚拟主机也一样如此简单。
多版本PHP简单说明
对于多版本PHP的话,只需要将其他PHP编译安装到另外一个目录,配置网站时监听对应的端口即可。
listen = 127.0.0.1:9001
对应Nginx虚拟主机的配置更改
location ~ .*\.(PHP|PHP5)?$ { fastcgi_pass 127.0.0.1:9001;#不同端口对应不同PHP版本 fastcgi_index index.PHP; fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; fastcgi_param SCRIPT_NAME $fastcgi_script_name; include fastcgi_params; }
异同之处只有这些,配置起来是比较简单的。
原文链接:https://www.f2er.com/centos/377579.html