## Nginx的安装方式
### yum源安装
>[success] Nginx官方的yum源地址:http://nginx.org/packages/centos/6/noarch/RPMS/
> 在这里暂不做讲解
### 源码包安装
>[success]Nginx的安装依赖于以下三个包,意思就是在安装Nginx之前首先必须安装一下的三个包,安装顺序如下:
1 SSL功能需要openssl库,下载地址:http://www.openssl.org/
2 gzip模块需要zlib库,下载地址:http://www.zlib.net/
3 rewrite模块需要pcre库,下载地址:http://www.pcre.org/
以上三个可以不用单独编译安装。
### Nginx源码包下载
> 官方网站:http://nginx.org
> 当前最新版本下载地址:http://nginx.org/download/nginx-1.13.4.tar.gz
~~~
wget http://nginx.org/download/nginx-1.13.4.tar.gz
~~~
**关闭selinux和防火墙**
~~~
setenforce 0
service iptables stop
~~~
**检查安装依赖项**
执行下面的命令安装nginx的依赖库
~~~
yum -y install gcc pcre pcre-devel zlib zlib-devel openssl openssl-devel
~~~
**创建nginx运行账户和组**
安装之前需要首先创建一个nginx运行账户,该账户不能直接登录系统
~~~
groupadd www
useradd www -s /sbin/nologin -g www
~~~
**配置Nginx安装选项**
关于nginx的安装选项可以参考官网的参数说明,在这里只做一下简单的配置,只指定一下它的安装位置,其它其它用默认配置
~~~
./configure --prefix=/usr/local/nginx
~~~
官网参数配置说明:http://nginx.org/en/docs/configure.html
常规配置:(执行时放到一行执行)
~~~
./configure
--sbin-path=/usr/local/nginx/nginx
--conf-path=/usr/local/nginx/nginx.conf
--pid-path=/usr/local/nginx/nginx.pid
--with-http_ssl_module
--with-pcre=../pcre-8.41
--with-zlib=../zlib-1.2.11
--user=www
--group=www
~~~
**编译并安装**
~~~
make && make install
~~~
**启动、停止、重启**
需要切换到nginx的安装目录中的sbin目录下
#### 启动nginx
`nginx`
可通过ps -ef | grep nginx查看nginx是否已启动成功
#### 停止nginx
~~~
nginx -s stop
~~~
#### 重新启动
~~~
nginx -s reload
~~~
#### 默认站点测试
访问方式,本地访问和远程访问(通过IP访问),CentOS默认远程访问不了,因为:80端口没有开。解决办法:关闭防火墙或者临时清空防火墙规则!
#### 配置nginx开机启动
将/usr/local/nginx/sbin/nginx命令添加到/etc/rc.d/rc.local文件中,rc.local文件会在系统启动的时候执行。但CentOS7建议将开机启动服务写成服务描述文件添加到系统服务中,因为rc.local默认没有执行权限,需要给它添加执行权限。
~~~
vim /etc/rc.d/rc.local
# 添加如下参数
/usr/bin/nginx
chmod +x /etc/rc.d/rc.local
~~~
这里是其中的一种方式,也可以使用 chkconfig nginx on,但是这种方式,需要首先编写一个nginx的启动脚本。后面会讲到。
### 配置环境变量
> 查看环境变量 echo $PATH
配置环境变量,这个一般在服务器端是没有必要的。在这里也简单说一下
~~~
vi /etc/profile
#编辑后,使环境变量立即升效,执行下面命令
source /etc/profile
~~~
#### 把nginx配置成一个服务
使其可以通过service nginx restart 进行启动,停止,重启,在这里需要为nginx单独编写一个服务启动脚本。请参考脚本编写详情
脚本处理好之后,就非常方便设置开机启动了。
~~~
chkconfig --add nginx
chkconfig nginx on
~~~
#### 使nginx 支持PHP
测试php文件能否正常解析
这时可以在默认站点根目录创建一个index.php,其内容如下:
~~~
<?php
phpinfo();
~~~
访问时会提示下载,说明PHP文件并没有正常解析!
#### 解决办法
通过修改nginx的站点配置文件解决
修改nginx的配置文件(/usr/local/nginx/conf/nginx.conf)
#把下面这段代码复制一份,到 Server 站点配置 中,并去掉前面的注释
~~~
#location ~ \.php$ {
#root html;
#fastcgi_pass 127.0.0.1:9000;
#fastcgi_index index.php;
#fastcgi_param SCRIPT_FILENAME web根目录$fastcgi_script_name; #这里不建议写死,可以使用$document_root来代替
#include fastcgi_params;
~~~
}
到这里php配置文件就可以正常解析了
#### 多站点的设置
多站点的设置,建议把每个站点的配置文件分开来写,然后,通过 include /conf/vhosts/*.conf的形式进行加载
在这里准备两个域名:
www.a.com 解析到服务器IP
www.b.com 解析到服务器IP
**创建站点配置文件目录**
~~~
mkdir /usr/local/nginx/conf/vhosts
~~~
#### 编辑 nginx.conf
添加如下内容
~~~
include /usr/local/nginx/conf/vhosts/*.conf
~~~
**创建站点目录**
~~~
# 创建www.a.com 站点目录
mkdir /var/www/www.a.com
# 创建测试首页
vim /var/www/www.a.com/index.php # 输入本站域名:www.a.com
# 创建www.b.com 站点目录
mkdir /var/www/www.b.com
# 创建测试首页
vim /var/www/www.b.com/index.php # 输入本站域名:www.b.com
~~~
#### 创建站点配置文件
创建www.a.com站点配置文件
~~~
# 创建www.a.com 站点配置文件
mkdir /var/local/nginx/conf/vhosts/www.a.com.conf
#其内容如下:
server {
listen 80;
server_name www.a.com; # 设置域名
index index.php index.html; #默认主页
root /var/www/www.a.com; # 站点目录
# Load configuration files for the default server block.
include /etc/nginx/default.d/*.conf; #加载扩展配置
location / {
}
error_page 404 /404.html;
location = /40x.html {
}
error_page 500 502 503 504 /50x.html;
location = /50x.html {
}
#以下是PHP的支持,可以使用公共文件进行引入
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;
}
}
~~~
创建www.b.com 站点配置文件
~~~
# 直接复制a站点的,然后进行修改即可
cp ./www.a.com.conf ./www.b.com.conf
~~~
#### 重启 nginx 并测试两个站点
~~~
service nginx restart
~~~
分别打开 www.a.com.conf,www.a.com.conf 这两个网址进行测试。
到这时,lNMP的服务器环境就搭建好了。
- 前言准备
- Linux新服务器的前期配置
- 认识linux下的Web服务器
- Linux的基本配置
- LNMP一键安装包快速部署web服务器
- LAMP服务器环境部署
- LAMP服务器管理
- LNMP服务器环境部署
- LNMP服务器管理
- lnmp一键安装包-常见问题
- 使用包管理器快速部署环境
- 包管理器快速部署LAMP服务器环境
- 升级php和mysql版本
- 包管理器快速部署LNMP服务器环境
- 使用源码包部署Linux服务器web环境
- 编译LAMP服务器环境部署
- apache安装与配置
- mysql的安装与配置
- PHP的安装与配置
- 编译LNMP服务器环境部署
- nginx服务启动脚本
- 源码安装常见问题
- Centos6与Centos7的区别
- 默认控制系统服务工具不同
- 设置开机启动的方式不同
- 编写service启动脚本
- 编写systemctl启动脚本
- 服务器安全
- 隐藏服务器信息
- Linux服务器防火墙设置
- 防火墙设置脚本
- 邮件发送
- 任务脚本的编写
- 服务器磁盘和服务器健康状态脚本
- 服务器登录报警脚本
- 数据库备份脚本
- 定时任务及应用
- 常见问题
- linux中使用ping命令不同的问题
- Linux中无法发送邮件
- mailx通过ssl方式发送邮件
- Mysql配置文件
- Linux TCP/UDP 常用端口
- Linux常见命令
- 系统信息
- 关机 (系统的关机、重启以及登出 )
- 文件和目录
- 文件搜索
- 挂载一个文件系统
- 磁盘空间
- 用户和群组
- 文件的权限
- 文件的特殊属性
- 打包和压缩文件
- RPM包
- YUM软件包升级器
- DEB 包 (Debian, Ubuntu 以及类似系统)
- APT 软件工具 (Debian, Ubuntu 以及类似系统)
- 查看文件内容
- 文本处理
- 字符设置和文件格式转换
- 文件系统分析
- 初始化一个文件系统
- SWAP文件系统
- 备份
- 光盘
- 网络-(以太网和WIFI无线)
- vi命令
- cut命令 截取
- Mysql
- MySQL备份-增量备与恢复命令实战
- mysqlbinlog
- mysql的安装
- 卸载mysql
- mysql多实例安装
- mysql 常用基础命令操作
- linux安装jdk、rpm安装mysql
- linux制作本地yum源
- shell脚本
