ThinkChat2.0新版上线,更智能更精彩,支持会话、画图、视频、阅读、搜索等,送10W Token,即刻开启你的AI之旅 广告
## 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的服务器环境就搭建好了。