php编译安装,安装Nginx,nginx虚拟主机

  • php编译安装 - php下载地址:https://www.php.net/downloads.php
  • 如图,有不一样版本的php能够下载
  • 下载最新的稳定版本
  • 如图,点击下载
  • 如图,在下载管理页面,复制下载地址,而后取消下载
  • 如图,cd 进入 /usr/local/src 目录
  • 而后使用 wget + 下载地址
  • 这样就能够把 php 压缩包下载到当前的 src 目录里面了
  • 这个目录就是用做下载文件包的目录
  • 如图,下载好压缩包,如今须要解压缩
  • 要解压缩后缀名为 bz2 的文件,如图,须要安装 bzip2 包
  • 而后才能够解压缩 bz2 格式的文件
  • 如图,安装好bzip2包后,使用命令 tar jxvf + 压缩包文件名称 解压文件
  • 如图,成功解压出来 php=7.3.10 目录
  • 解压完成后,就须要编译安装了
  • 上图是 vi 操做小技巧
  • 要编译安装软件包,分为3个部分
  • 首先是配置编译参数,须要预设一些参数
  • 而后是make开始编译,把源码包编译成为二进制包
  • 最后是安装,就是用二进制包进行安装
  • 如图,cd 进入 php-7.3.10 文件夹
  • 就是刚才解压缩出来的目录
  • 如图,通常源码包里面都有安装帮助文件
  • 就是 INSTALL 文件
  • vi 打开这个文件,看到里面有一个网址
  • 这个网址应该是安装帮助文档的网址
  • 由于是跟nginx一块儿使用的,因此查看 nginx 1.4x 的安装文档
  • 上图是现成的配置文件代码,也能够直接套用上图配置
./configure --prefix=/usr/local/php-fpm --with-config-file-path=/usr/local/php-fpm/etc --enable-fpm --with-fpm-user=php-fpm --with-fpm-group=php-fpm --with-mysqli --with-pdo-mysql=/usr/local/mysql --with-mysql-sock=/tmp/mysql.sock --with-libxml-dir --with-gd --with-jpeg-dir --with-png-dir --with-freetype-dir --with-iconv-dir --with-zlib-dir --enable-soap --enable-ftp --enable-mbstring --enable-exif --with-pear --with-curl --with-openssl
  • 直接套用这个代码配置编译参数
  • 复制到xshell里面,直接回车,就会开始检测
  • 编译过程通常会有一些错误
  • 如图,通常来讲这个 gcc包都是要安装的
  • 如图,检测出现错误,根据这个错误信息
  • 猜想应该是 libxml2 的包没有安装
  • 如图,使用 yum list | grep libxml2 搜索跟 libxml2 有关的包有哪些
  • 能够看到有这样包存在
  • 这些包里面,通常来讲用的是 libxml2.devel.x86_64
  • devel 是开发者的意思
  • 这里安装一下这个包
  • 而后继续使用编译配置代码从新进行检测
  • 如图,从新检测,又出现错误了
  • 根据错误信息判断,多是缺乏 OpenSSL 有关的包
  • 继续使用 yum list | grep OpenSSL 搜索跟这个名词有关的包
  • 如图,使用 yum list | grep -i OpenSSL 搜索
  • 使用 -i 选项是为了忽略大小写
  • 若是不使用 -i 只能搜索 OpenSSL 的包
  • 可是如图,咱们实际须要的是 openssl-devel 包
  • 若是不忽略大小写的话是没办法搜索到 openssl 这样小写的单词的
  • 使用 yum install -y openssl-devel 安装这个包
  • 安装好以后,继续使用配置文件代码检测
  • 如图,又发现错误
  • 根据错误信息,猜想跟 cURL 包有关
  • 继续使用 yum list | grep -i curl 搜索相关的包
  • 如图,此次须要安装的包是 libcurl-devel
  • 因此使用 yum install -y libcurl-devel
  • 安装完成后,继续使用配置文件代码检测
  • 如图,根据错误信息,猜想跟 jpeglib 有关的包
  • 继续使用 yum list | grep -i jpeg
  • 如图,须要的是 libjpeg-turbo-devel 包
  • 因此使用 yum install -y libjpeg-turbo-devel
  • 安装完成后继续使用配置文件代码检测
  • 如图,此次错误跟 png 有关
  • 继续使用 yum list | grep -i png | grep devel
  • 这样能够筛选两次,先筛选 png的包,再筛选带有 devel的包
  • 如图,libpng-devel 是咱们须要的包
  • 使用 yum install -y libpng-devel
  • 安装完成后继续使用配置文件代码检测
  • 后续还有可能出现别的错误,若是出现跟freetype有关的错误信息
  • 就安装上图的这个包 freetype-devel
  • 如图,配置文件代码检测成功,使用 echo $? 测试,返回 0
  • 说明没有错误发生
  • 这样就表示配置没有问题了
  • 不过还有可能会出现的一个情况是,mariadb版本与php版本不兼容
  • 若是配置文件检测出现这个错误
  • 就应该使用能够适配php版本的mariadb版本
  • 如图,这就是数据库版本与php版本不适配的错误信息
  • 如图,这是警告的错误信息
  • 表示配置文件代码里面,--with-mysql,xxx,xxx
  • 这3个选项是不支持的
  • 由于php不一样的版本,有些选项上一个版本支持,下一个版本不支持
  • 这里就是说明这三个选项在这个版本是不支持的选项,须要删除
  • 直接删除,再从新测试就行了
  • 测试经过之后,就能够开始编译了
  • 如图,直接输入 make 而后回车
  • 下面就会出现一些编译的信息,如今等待编译完成
  • 不过编译过程也可能错误
  • 若是出现错误,可能须要从新编译或者解决错误
  • 如图,编译过程出现了这个错误
  • 意思是有一些库文件找不到
  • 以前的配置文件代码里面,有一个选项 --with-mysqli=xx/xx/xx
  • 以前这个地址是指向/usr/local/mysql/bin/mysql_config 这个路径的
  • 可是经过这个路径,有一些库文件找不到
  • 上图缺失的库文件,老版本的 mysql 或者 mariadb 里面是有的
  • 由于最新的mariadb版本可能比php版本要新,因此php版本须要的一些文件
  • 新版的mariadb里面可能没有,因此还有下载一个老版的mariadb
  • 使用 yum install -y mariadb 能够下载 5.x 版本的mariadb
  • 下载完成后,把 --with-mysqli 后面的地址去掉
  • 只留下 --with-mysqli 这个选项,这样系统就会自动在全部目录里面搜索
  • 由于安装了老版本的mariadb,系统自动搜索到老版本mariadb的库文件
  • 就会直接使用了,这样就解决了这个新版数据库缺乏老版本文件的问题了
  • 解决问题后,从新配置文件检测,而后 make
  • 如图,build complete 表示编译成功了
  • 如图,编译完成后,使用 make install 安装编译好的文件
  • 其实就是把编译好的文件拷贝到 /usr/local/php-fpm 目录里面
  • 这个目录是以前在配置文件代码里面定义好的
  • 安装完成后,如图,进入 /usr/local/php-fpm/ 目录
  • ls 查看目录内容,找到 etc 目录
  • cd 进入 etc 目录,ls查看内容
  • 能够看到,有一个叫作 php-fpm.conf.default
  • 这个文件是php-fpm服务的配置文件模板
  • 目前 php-fpm配置文件还不存在,因此须要将模板复制一份
  • 当作配置文件使用
  • 如图,把模板文件复制一份,并重命名为 php-fpm.conf
  • php-fpm.conf 就是服务的配置文件了
  • 除了fpm服务的配置文件以外,还须要一个php的配置文件
  • 如图,进入源码包的目录 /usr/local/src/php-7.3.10/
  • 找到图中的两个文件,分别是 php.ini.development , php.ini.production
  • 这两个文件就是php的配置文件,可是用途不一样
  • php.ini.development 是用于测试环境的
  • php.ini.production 是用于生产环境的
  • 就是若是使用php的机器是用来作测试的,就使用 development
  • 用来生产的,就用 production
  • 咱们的机器是用来学习测试的,因此就用 development
  • 如图,diff 能够比较两个文件内容有什么不一样之处
  • 两个文件之中不相同的内容就会显示在下面
  • 如图,须要把 php.ini.development 复制一份到 /usr/local/php-fpm/etc/ 目录下面
  • 而且重命名为 php.ini
  • 如今两个配置文件都有了
  • 就须要配置启动脚本了
  • 如图,在 /usr/local/src/php-7.3.10/ 目录下
  • 使用命令 cp sapi/fpm/init.d.php-fpm /etc/init.d/php-fpm
  • 就是把php-7.3.10目录里面的一个文件 init.d.php-fpm
  • 复制一份到 /etc/init.d/ 目录下面
  • 而且重命名为 php-fpm
  • 这样就算配置好服务启动脚本了
  • 而后使用 chkconfig --add php-fpm 添加一下php-fpm服务到服务列表
  • 如图,查看服务列表,能够看到php-fpm出现了
  • 如图,开启 php-fpm服务,提示权限不够
  • 如图,提示权限不够,因此使用 chmod 755 /etc/init.d/php-fpm 修改文件权限为755
  • 而后从新启动service,可是仍是显示错误信息
  • 按照提示,是143行的问题,跟 pool有关
  • 如图,使用 vi 打开这个配置文件
  • 要定位 143 行,能够先让文件显示行数
  • 通常模式下,使用 :set nu 回车
  • 这样就能够显示文件的行数
  • 直接输入 143 + ctrl + g 就能够直接定位到143行
  • 就是先输入143,而后按 ctrl+g 也就是大写的G
  • 就能够定位到前面输入数字的行数
  • 如图,定位到了 143行
  • 这是一个路径,能够cd进入 /usr/local/php-fpm/etc/php-fpm.d/目录查看一下
  • 如图,进入这个目录后,查看内容
  • 发现只有一个 www.conf.default 文件
  • 这也是一个模板文件
  • 如图,把模板文件复制一份,并重命名为 www.conf ,这就是要使用的文件
  • 启动php-fpm服务还要配置池子,也就是 pool
  • 这个www.conf 就是pool的配置文件,也是必需要有的
  • 监听什么端口,使用哪一个socket就是这个配置文件决定的
  • 如今建立了pool的配置文件,从新启动服务
  • 如图,仍是发生错误
  • 看错误信息,跟 user php-fpm 有关
  • 这是由于,以前在配置php的时候,指定了php的用户是 php-fpm
  • 可是这个用户尚未被建立,因此如今须要建立这个用户
  • 使用命令 useradd php-fpm
  • 如图,再启动 php-fpm 服务,此次没有错误了
  • 如图,检查一下是否启动,pa aux | grep php-fpm
  • 能够看到,服务以及启动了
  • 如图,netstat -lntp 查看tcp协议的信息
  • 能够看到 php-fpm 监听了 9000 端口
  • 检查事后,说明php-fpm成功启动了

安装Nginx

  • nginx 有两种安装方法
  • 一种是编译安装
  • 一种是yum安装
  • 先讲编译安装的方法
  • 首先进入nginx官网: http://nginx.org/
  • 如图,能够看到有各类各样的版本
  • 应该下载带有 stable 字样的版本
  • stable 表示这是稳定版而不是测试版
  • 点击一个要下载的版本,进入这个下载的页面
  • 能够看到有三个分类,分别是 mainline,stable,legacy
  • mainline 是指正在开发的版本,至关于测试版
  • stable 是最新的稳定版本
  • legacy 是过去老的稳定版本
  • 咱们下载最新的稳定版本 1.16.1
  • 如图,点击下载,而后将下载地址复制
  • 到linux 里面使用 wget 下载
  • cd 进入 /usr/local/src/ 目录,这是专门放下载包的目录
  • 如图,使用 wget + 下载地址 下载压缩包
  • 下载完成后,如图, tar zxvf 压缩包名称 ,进行解压缩
  • 解压完成后,须要编译安装,能够查看官网的文档
  • 如图,点击右边的 documentation
  • 进入 installing 页面,点下面的源码安装(building nginx from sources)
  • 能够看到,这里有各类编译参数的说明文档,能够研究一下
  • 翻到本页的最下面,能够看到一个配置编译参数的示例
  • 如图,通常来讲,只须要配置上图中的两个编译参数就够了
  • 这个编译参数里面,prefix是配置nginx的安装目录的
  • with-http_ssl_module是配置ssl模块的,有这个模块,才可使用ssl的服务
  • 如图,首先进入解压缩出来的目录,nginx-1.16.1
  • 而后使用 ./configure --prefix=/usr/local/nginx --with-http_ssl_module 命令进行配置
  • 如图,配置过程没有出错,还可使用 echo $? 检测是否有错误
  • 返回 0 表示配置过程没有出错
  • 如图,配置完成就使用 make && make install 命令进行编译安装
  • 这条命令会先执行 make ,如图没有错误就会继续执行 make install
  • make是编译的命令,make install 是安装的命令
  • 就是把编译好的文件复制到指定的安装目录里面
  • 如图,编译安装完成,使用 echo $? 检测,返回 0
  • 表示编译安装没有问题
  • 编译安装过程之中,有可能出现 zlib 或者 pcre not found 之类的错误
  • 若是有这个错误,就使用上图的命令安装 zlib-devel,pcre-devel这两个包就好了
  • nginx 的启动命令的路径是 /usr/local/nginx/sbin/nginx
  • 使用这个路径就能够启动 nginx
  • 还有两种方法能够简单的使用 nginx命令 就能够启动nginx服务
  • 好比把这个目录加入到环境变量的目录里面,就能够直接使用 nginx命令了
  • 或者对/usr/local/nginx/sbin/nginx这个路径作一个软连接
  • 放到环境变量的目录里面也是可行的
  • 如图,nginx 服务启动了,master process 是主进程
  • worker process 是子进程,不少服务是由不一样的子进程提供的
  • 主进程就是管理全部子进程的
  • 可是如今没有启动脚本,只能手动使用 /usr/local/nginx/sbin/nginx 来启动服务
  • 这样不方便管理
  • 如图,cd /usr/local/nginx/conf/ 进入这个目录
  • nginx 的配置文件就存放在这个目录里面
  • nginx.conf文件就是nginx的配置文件
  • 如图,netstat -ltnp |grep nginx 查看nginx监听的端口是哪一个
  • 这里显示为 80 端口
  • 上面能够看到 worker子进程的用户是 nobody
  • 默认就是nobody,若是想改变子进程的用户
  • 就能够在nginx配置文件里面定义

  • 除了手动安装nginx之外
  • 还可使用 yum 来安装
  • 首先仍是进入nginx官网
  • 上图文档就是 yum 安装nginx的文档
  • 如图,首先要建立 /etc/yum.repos.d/nginx.repo 这个文件
  • 使用命令 vi /etc/yum.repos.d/nginx.repo
  • 建立并打开这个文件,目前里面是空的,须要复制一些文件内容进去
  • 如图,把上图的内容复制到 /etc/yum.repos.d/nginx.repo 这个文件里面去
[nginx-stable]
name=nginx stable repo
baseurl=http://nginx.org/packages/centos/$releasever/$basearch/
gpgcheck=1
enabled=1
gpgkey=https://nginx.org/keys/nginx_signing.key
module_hotfixes=true
  • 如图,右边的 nginx-stable 表示仓库源是 nginx-stable
  • 就是从刚才编辑的源文件获得的
  • 咱们要下载到的是 nginx.x86_64
  • 能够看到版本是 1.16.1
  • 首先使用 killall nginx 把nginx的服务所有关闭
  • 若是没有killall命令,也可使用 pkill nginx 杀死nginx进程
  • 如图,ps 查看nginx进程,能够看到nginx 进程已经没有了
  • 而后须要把以前安装的nginx删除,才能够yum安装新的nginx
  • cd /usr/local/ 进入安装目录
  • rm -rf nginx 这样就删除了 /usr/local/nginx/ 目录了
  • /usr/local/nginx就是以前指定的安装目录
  • 而后就能够用yum安装了,yum install -y nginx
  • 执行以上命令,系统就会自动安装nginx了
  • 使用yum的方法安装nginx后
  • nginx的配置文件的路径是 /etc/nginx/nginx.conf
  • 使用 nginx -v 能够查看版本信息
  • 使用 nginx -V 能够查看yum编译安装时的配置参数
  • 如图,要启动nginx 可使用 systemctl start nginx
  • 能够看到,nginx服务启动了
  • 若是要关闭服务,可使用 systemctl stop nginx
  • 重启服务是 systemctl restart nginx
  • 如图,若是修改了nginx的配置文件
  • 可使用 nginx -t 检查配置文件是否有语法错误
  • yum 安装nginx 比较方便管理,安装过程也是全自动
  • 推荐使用 yum 安装nginx

nginx虚拟主机

  • 虚拟主机就是 host(域名)
  • 从http1.1开始支持虚拟主机的功能
  • 之前,一个web服务,只能支持一个host
  • 后来有了虚拟主机的功能,一个web服务就能够支持多个host
  • 也就是一个nginx服务,能够运行多个网站
  • 每一个网站都是不一样的域名(host)
  • 如图,cd 进入 /etc/nginx/ 目录
  • 能够看到有个文件 nginx.conf ,这是nginx的配置文件
  • vi 打开 nginx.conf 文件查看内容
  • 如图,这是 nginx.conf 的内容
  • 在 http 的括号内,最后一行
  • include /etc/nginx/conf.d/*.conf;
  • 这行代码意思是 /etc/nginx/conf.d/ 目录内的
  • 以 .conf 作结尾的文件都会被加载
  • conf.d 目录内的每一个以 .conf 结尾的文件都是一个虚拟主机配置文件
  • 因此要配置虚拟主机,就须要到 /etc/nginx/conf.d/ 目录去配置
  • 如图,进入conf.d目录,ls 查看目录内容
  • 能够看到,只有一个 default.conf 文件
  • 也就是说,目前只有一个默认的虚拟主机存在
  • vi default.conf 打开文件,查看内容
  • 第一个部分是 server 代码块
  • 每个 server 代码块,就表明了一个虚拟主机
  • server 代码块内部,定义了虚拟主机的一些属性
  • listen 80 表示这个虚拟主机监听了80端口
  • server_name localhost 表示域名
  • 也就是host名称,这里host叫作 localhost
  • 这个域名是能够自定义的
  • root /usr/share/nginx/html; 是定义根目录
  • 每一个host都要对应一个根目录
  • 跟这个虚拟主机有关的文件就放在根目录里面
  • 好比这个网站的文章,图片,网页文件等等
  • index index.html index.htm; 表明索引页
  • 访问这个网站的时候,首先进入的就是索引页
  • 也就是若是访问这个网站,会进入 index.html这个页面
  • 在windows浏览器上面,输入linux虚拟机的ip地址
  • 由于开启了nginx服务,因此输入虚拟机ip能够访问nginx里面的虚拟主机
  • 可是这里显示没法访问,多是端口不通
  • 登陆第二台虚拟机,使用 telnet 192.168.64.128 80
  • 检测第一台虚拟机这个ip地址端口是否能够连通
  • 显示没有该命令,就安装一下 yum install -y telnet
  • 如图,使用telnet检测ip端口是否连通,信息显示 no route to host
  • 这说明这个80端口是不通的
  • 端口不通通常是由于防火墙限制了
  • 回到第一台虚拟机,使用 iptables -nvL 查看一下防火墙
  • 如图,firewalld 开启了,因此80端口多是被控制了,没法连通
  • 有两种方法能够开放80端口
  • 一种是关闭firewalld防火墙,第二种是把80端口加入白名单
  • 关闭 firewalld 可使用 systemctl stop firewalld
  • 不过关闭防火墙不太安全,通常来讲仍是不要关闭
  • systemctl start firewalld 打开firewalld
  • 使用命令 firewall-cmd --add-prot=80/tcp --permanent
  • 就能够增长 开放80端口的规则 到firewalld里面
  • 可是如今尚未生效,须要从新加载一下firewalld规则
  • 使用命令 firewall-cmd --reload
  • 这样就能够从新加载firewalld规则
  • 放开80端口后,再到第二台虚拟机telnet一下
  • 如图,此次没有什么错误信息出来,成功连通了
  • 从新到浏览器输入虚拟机ip 192.168.64.128 就进入上图页面了
  • 成功链接
  • 若是想修改网站域名,能够 vi /etc/nginx/conf.d/default.conf
  • 在这个配置文件里面修改
  • 如图,这里原本是 localhost,如今修改成 www.aaa.com
  • 这样,这个网站的域名就被修改成 www.aaa.com 了
  • 修改完域名,保存退出,如图,使用 nginx -t 检测配置文件
  • 信息显示没有语法错误
  • 而后须要使用 nginx -s reload 重载配置文件
  • 配置文件修改了以后须要从新载入才能生效
  • 也可使用 systemctl restart nginx 重启nginx服务
  • 这样也能够重载配置文件,可是这样会中断nginx进程
  • 中断进程,别人就服务访问这个网站了
  • 若是使用 nginx -s reload 重载就不会中断进程
  • 重载过程当中,别人仍是能够访问这个网站
  • 因此应该使用重载,不要使用重启比较好
  • 如今host域名修改成了 www.aaa.com
  • 可是仍是不能使用这个域名访问这个网站
  • 由于这个域名尚未跟 192.168.64.128 这个ip绑定
  • 因此就算输入这个域名,也没办法链接到这个ip地址来
  • 要把主机ip地址,和虚拟主机的域名绑定
  • 使用 vi /etc/hosts 编辑这个文件
  • 如图,文件内写 ip地址,后面写域名
  • 而后保存退出
  • 这样就在本机上面把这个域名跟ip地址绑定了
  • 如图,在本机上面 ping 一下 www.aaa.com 这个域名
  • 是能够连通的
  • windows里面也有host文件
  • 如图,在 c:/windows\system32\drivers\etc 目录下面
  • 就有 hosts 文件
  • 如图,用记事本打开hosts文件,输入虚拟机ip地址和域名
  • 这样,在windows上面,这个ip地址就跟这个域名绑定了
  • 使用这台电脑访问这个域名的时候,就会链接到这个ip地址去
  • 如图,在windows浏览器,输入www.aaa.com ,就进入了这个页面
  • 成功链接了这个网站
  • 如图,还能够写第二个域名,用两个域名均可以链接到这个ip地址
  • 一个ip地址能够绑定多个域名,使用不一样的域名能够链接到同一个ip地址
  • 如今,访问的这个nginx的虚拟主机,就是默认虚拟主机
  • 默认虚拟主机就是 nginx 的第一个虚拟主机
  • 如图,把 default.conf 配置文件复制一份,并重命名为 2.conf
  • 这样就有两个配置文件了,也就是有两个虚拟主机了
  • ls 查看,2.conf 显示在前面
  • 也就是说 2.conf 变成了默认虚拟主机
  • 通常来讲,若是有多个虚拟主机文件,排在最前面的,就是默认虚拟主机
  • 可是,还有一种方法,能够手动指定某一个虚拟主机为默认虚拟主机
  • 目前有两个虚拟主机配置文件,default.conf 和 2.conf
  • vi default.conf 编辑这个文件
  • 如图,在 80端口后面,写上 default_server
  • 而后保存退出
  • 这样就手动指定了 default.conf 为默认虚拟主机
  • 还须要 vi 2.conf 修改域名为 www.ccc.com
  • 由于 2.conf 是直接复制 default.conf 来的
  • 里面的配置信息都同样,可是这是两个虚拟主机
  • 域名不能是同样的
  • 还要修改 2.conf 的根目录
  • 两个不一样的虚拟主机,除了域名,根目录也不能是相同的
  • 这里修改成 /tmp/html 目录
  • 而后保存退出
  • 如图,nginx -t 检测配置文件有没有语法错误
  • 而后 nginx -s reload 从新加载配置文件
  • 由于刚才指定了 www.ccc.com 的根目录是 /tmp/html/
  • 目前这个目录还不存在,因此须要建立一个
  • mkdir /tmp/html/
  • 而后在html目录内建立并追加一些内容进 index.html这个文件
  • 由于 www.ccc.com 这个虚拟主机的索引页面就是 index.html
  • 可是目前根目录里面没有这个文件,因此须要建立一个
  • 而后还须要往里面输入一些内容,方便辨认
  • 因此使用 echo 1111 > /tmp/html/index.html
  • 这样就能够建立 /tmp/html/index.html 这个文件
  • 而且把 1111 这个内容写入文件里面
  • 如图,想在windows浏览器访问 www.ccc.com 这个虚拟主机
  • 还要把 www.ccc.com 这个域名跟服务器ip地址进行绑定
  • 用记事本打开,把域名写在 ip 地址后面
  • 如今有三个域名绑定了这个 ip 地址
  • 访问这三个域名,都会链接到这个 ip 地址
  • 如图,因为ccc域名被占用了,因此 2.conf 的域名修改成 www.ddd.com
  • hosts 文件里面也要修改成 www.ddd.com
  • 如图,在windows浏览器中,输入 www.ddd.com
  • 能够看到,跳转到一个页面,内容为 1111
  • 这就是刚才建立的 index.html文件的内容
  • 如图,输入域名 www.bbb.com
  • 跳转的页面跟 www.aaa.com 如出一辙
  • 目前只配置了两个虚拟主机,一个是 www.aaa.com ,另一个是 www.ddd.com
  • 并无配置 www.bbb.com 这个虚拟主机,为何 www.bbb.com 能够跳转 www.aaa.com 页面呢
  • 这是由于设置了 www.aaa.com 虚拟主机为默认虚拟主机
  • 在 windows上面的 hosts文件里面,www.bbb.com 绑定了 nginx 服务器的ip地址
  • 因此在windows浏览器上面输入 www.bbb.com 就会跳转到 nginx 服务器
  • 可是没有配置 www.bbb.com 的虚拟主机的状况下
  • nginx 就会让这个域名链接到 默认虚拟主机去
  • 没有指定虚拟主机的链接,链接到nginx服务器上时,自动全都会链接到默认虚拟主机上
  • 可是这样会产生一个问题
  • 别人可使用任意域名绑定服务器的ip地址
  • 就能够访问服务器的默认虚拟主机,这不是咱们想要的
  • 应该是只能经过指定的域名,才可以访问到网站
  • 这才是咱们想要的
  • 因此,通常都是要把 默认虚拟主机禁掉
  • 这样其它机器就只能经过 指定的域名来访问虚拟主机了
  • 如图,vi default.conf 编辑配置文件
  • 在 server_name 下面一行,加入 deny all;
  • 这样,就能够把这个默认虚拟主机禁掉
  • 这样服务器里面就没有默认虚拟主机了
  • 两个虚拟主机都只能经过指定的域名进行访问
  • 修改完,保存退出
  • nginx -t 检测配置文件语法错误
  • nginx -s reload 重载配置文件
  • 设置了禁用默认虚拟主机后,如图
  • 使用 www.bbb.com 直接就是 403 页面
  • 使用 www.aaa.com 就能够正常跳转到虚拟主机
  • 这就说明,禁用默认虚拟主机生效了

  • 如今开始,能够尝试作一个博客在服务器上面
  • 如图,首先,cp 2.conf tom.blog.conf
  • 复制 2.conf 并重命名为 tom.blog.conf
  • tom.blog.conf就是第三个虚拟主机的配置文件
  • 虚拟主机配置文件的名称应该以域名做为名称
  • 由于若是有不少虚拟主机的话,不用域名做为名称就会很难分别哪一个配置文件对应哪一个虚拟主机
  • 因此用域名作配置文件名称方便管理
  • 如图,在windows的hosts文件里面加入 tom.blog.com
  • 这样就可使用这个域名链接到nginx服务器的ip地址了
  • 如图,还须要 vi tom.blog.conf
  • 把配置文件内的域名修改成 tom.blog.com
  • 这样使用 tom.blog.com 链接到服务器的时候
  • nginx 就会跳转到这个虚拟主机上去了
  • 不过这样只有内网能访问这个虚拟主机
  • 若是要外网也能访问,就须要去dnspod作域名解析
  • 在dnspod里面,把这个域名跟服务器的ip地址进行绑定
  • 这样才能使用这个域名,经过外网访问
  • 如图,除了修改域名,还须要修改根目录
  • 这里修改成 /tmp/tomblog 目录为根目录
  • 而后使用 ctrl + z 能够暂停当前任务
  • 回到shell界面
  • 如图,vi tom.blog.conf 的任务被中止了
  • 跳到了shell界面,使用 mkdir /tmp/tomblog/
  • 建立了 tomblog 目录,由于指定了这个目录为根目录
  • 可是这个目录不存在,因此须要建立一个
  • 若是要回到 vi tom.blog.conf 任务
  • 可使用命令 fg 回车 就能够回到刚才暂停的任务里去
  • 如图,除了修改域名和根目录,还有别的要改
  • 作博客准备使用 workpress 来作
  • 这是一个php写的程序,能够用来管理博客
  • 因此这个虚拟主机的配置文件里面要增长对 php的支持
  • index 那一行,增长了 index.php
  • 这是 php程序要用的文件
  • 下面的 location 代码块原本是被注释掉的代码块
  • 如今把注释符号删除,使这个代码块生效
  • 这个也是php程序须要用到这个代码块配置
  • 代码块内部,root行后面的值
  • 修改成 /tmp/tomblog; 就是根目录
  • 由于php程序要放到这个根目录里面,因此这里要定义为根目录
  • 而后下面的 fastcgi_param 那一行后面的值
  • 把 $fastcgi_script_name 前面的值删除
  • 在前面加上 /tmp/tomblog ,也是根目录
  • 其它的注释信息都删掉了,没什么做用
  • 而后保存退出
  • 使用 nginx -t 检测配置文件错误
  • 没错就使用 nginx -s reload 重载配置文件
  • 而后百度下载 wordpress
  • 复制下载地址
  • cd /tmp/tomblog/ 进入虚拟主机根目录
  • 使用 wget + 下载地址 把wordpress下载到根目录里面
  • 如图,下载好就解压缩出来
  • 如图,使用 mv wordpress5.3/* ./
  • 意思是把 wordpress5.3目录下面的全部文件
  • 挪到当前目录下,也就是根目录下
  • 符号 * 是通配符,wordpress5.3/* 表示这个目录下面的全部文件
  • 符号 . 表示当前目录,因此 ./ 表示当前目录
  • 这样 wordpress5.3目录下的文件就所有移动到根目录下了
  • 而后须要把 wordpress5.3目录,还有压缩文件都删除掉
  • rm -rf wordpress5.3 wordpress5.3.zip
  • 使用上面命令把wordpress目录和压缩文件都删除
  • 使用ls命令查看根目录文件,能够看到,有一个文件
  • index.php,这个文件是以前在配置文件里面,定义到索引页面那一行去了
  • 若是访问这个虚拟主机,首先会进入 index.php 这个文件生成的索引页面
  • 如图,访问 tom.blog.com 域名
  • 就跳转到这个 wordpress 安装页面了
  • 这样页面就是 index.php 文件生成的页面
  • 这样 wordpress 链接配置成功了
  • 而后就是更深刻的功能的安装了,下章笔记继续记录
相关文章
相关标签/搜索