文档:
http://nginx.org/en/linux_packages.html
编辑yum仓库:
vi /etc/yum.repos.d/nginx.repo
粘贴:
[nginx]
name=nginx repo
baseurl=http://nginx.org/packages/centos/7/$basearch/
gpgcheck=0
enabled=1
安装:
yum list |grep nginx
查看一下nginx的yum包
pkill nginx
杀死之前编译安装启动的Nginx
rm -rf /usr/local/nginx/
卸载之前编译安装的Nginx
yum install -y nginx
用yum安装Nginx
配置文件路径:
/etc/nginx
主配置文件:/etc/nginx/nginx.conf
子配置文件:/etc/nginx/conf.d/default.conf
如果修改了配置文件,需要查看配置文件有没有语法错误: nginx -t
结果里面这样显示ok的就是没错误的
nginx -v
可以查看他的版本
nginx -V
查看他的编译参数
启动:
systemctl start nginx
ps aux |grep nginx
查看nginx服务是否启动
关闭Nginx服务:systemctl stop nginx
重启Nginx服务:systemctl restart nginx
补充:
pkill 杀死一个进程,如 pkill nginx
yum remove nginx 卸载Nginx
虚拟主机:
虚拟主机就是一个站点
HTTP1.1 --> host (域名) 一个WEB服务可以有多个站点
从HTTP1.1开始一个WEB服务可以有多个站点,HTTP1.1之前一个服务器只能有一个域名
定义虚拟主机配置文件,以域名为命名。
nginx配置文件:
vi /etc/nginx/nginx.conf
cd /etc/nginx/conf.d/
/etc/nginx/conf.d/default.conf 虚拟主机(站点)配置文件
配置一个虚拟主机(站点)需要注意配置好:域名、文件路径
vi default.conf
这里的localhost就可以用本机的IP访问,但是此时打不开,因为80端口不通
在另外一台Linux服务器,用telnet测试一下80端口
安装一下:yum install -y telnet
测试看到80端口不通
iptables -nvL 查看防火墙规则
CentOS7自带firewalld服务,默认是开启状态。
想让80端口开通,让别人能访问站点,2种方法:
1、关闭firewalld服务;
2、添加80端口到白名单
这2个方法中建议不要直接关firewalld服务,因为这个firewalld服务还是有一定作用的,做实验无所谓
关闭firewalld服务: systemctl stop firewalld
关闭firewalld服务后,telnet测试80端口就通了
这个时候这个默认站点就能访问了
开启firewalld服务:systemctl start firewalld
增加80端口:
firewall-cmd --add-port=80/tcp --permanent (最后的--permanent选项是为了让他永久增加)
firewall-cmd --reload 让配置立即生效
Nginx配置:
虚拟主机就是一个站点,每个站点都有一个域名,上面的例子中没有用域名,直接用的是IP,下面比如我要设定域名:www.aaa.com,编辑配置文件:
vi /etc/nginx/conf.d/default.conf 虚拟主机(站点)配置文件,可以配置域名和路径
nginx -t //查看配置文件是否有错误
nginx -s reload //重载配置文件 (重载之前一定要-t一下,看看是否有错)
systemctl restart nginx //重启 (会中断进程,用户访问会受影响,所以尽量是重载)
接下来需要www.aaa.com指向这个服务器上去才能访问,但是这个域名不是我的,没有它的dns权限,如果有买好自己的域名,可以直接解析过来就好,这里实例用另外一个方法:修改hosts
Linux下的hosts修改:
现在ping这个www.aaa.com域名不是我这个本地IP
Linux下的/etc/hosts,可以修改hosts记录(默认的虚拟主机)
vi /etc/hosts
增加192.168.108.128 www.aaa.com
再去ping一下,此时发现过来了
windows下的hosts修改:
在本地windows目录里面找到hosts
编辑这个文件,里面也加入这行192.168.108.128 www.aaa.com
在windows里面ping他就通了
此时去访问www.aaa.com这个域名的时候就能打开了
这个就是默认虚拟主机,解析任何域名过来都可以打开这个页面
在windows的hosts配置文件里后面再加上www.bbb.com
他同样能打开这个页面
默认虚拟主机就是Nginx的第一个虚拟主机。
目前这个目录里面只有一个虚拟主机,所以他是默认虚拟主机了
cp default.conf 2.conf 拷贝生成一个2.conf
当虚拟主机多的时候,谁排在第一位,谁就是默认虚拟主机
还有一个方法(建议用这个方法):在default.conf里面listen 80 后面加上default_server,加上这个他就变成了默认虚拟主机了
vi default.conf (default.conf 这个路径是:/etc/nginx/conf.d/default.conf)
此时改一下2.conf这个虚拟主机
vi 2.conf
nginx -t //查看配置文件是否有错误
nginx -s reload //重载配置文件
给www.ccc.com定义一个index.html,在本地给加一条www.ccc.com的记录
访问www.ccc.com,显示的就是刚写的index.html内容为2222cccc
此时去访问www.bbb.com,还是访问到了默认虚拟主机
我没有定义www.bbb.com,但是他还是访问到了这个页面,这个就是默认虚拟主机(站点)
任何一个域名只要解析到这个IP,他都能访问到这个站点,所以默认虚拟主机就有一个作用:泛解析
如果有个需求:
有很多域名都需要访问到这个站点,要配置的话,就需要配置很多,比较麻烦,随时都在变动,如果用默认虚拟主机就可以了,不用关心域名多少了,不用去配置了。
如果不需要泛解析,站点默认虚拟主机如果任何人都能访问的话,意味着任何一个域名,只要解析到服务器上就都能访问了,这对服务器来讲就不合适了,此时就应该把默认虚拟主机给禁了
禁掉默认虚拟主机,默认虚拟主机配置里面加一行 deny all;
nginx -t
nginx -s reload
此时再去访问www.bbb.com,就是打不开了,其他指向默认虚拟主机的都是打不开了
但是此时www.ccc.com还是可以访问的
因为www.ccc.com这个并不是默认虚拟主机,配置过他了
定义过的就能访问,没有定义的就不能访问了
后面做网站的时候,虚拟主机配置文件的名字建议用域名作为他的名字,这样以后虚拟主机(站点)多的时候不会弄错,容易管理
开始做一个博客,假设域名是:blog.jinshui.cc
cd /etc/nginx/conf.d/
cp 2.conf blog.jinshui.cc.conf
目前这个域名暂时只作为本地访问,后面用域名直接解析就好,只是本地访问就需要修改本地hosts
mkdir -p /data/wwwroot/blog.jinshui.cc 先建立好站点的目录
vi blog.jinshui.cc.conf 配置虚拟主机设置,主要是域名、路径还有php(这个接下来博客是用php的)
修改了虚拟主机配置文件记得:nginx -t 确认没错误 然后 nginx -s reload 重载配置文件
补充:
快捷键 Ctrl z可以暂停一个进程。 比如,vi的时候,可以先退出vi,然后释放命令行出来。
按fg 就可以回到vi窗口里。
下载: https://cn.wordpress.org/download/
cd /data/wwwroot/blog.jinshui.cc/
wget https://cn.wordpress.org/wordpress-5.0.2-zh_CN.tar.gz
下载完成之后解压:
tar zxvf wordpress-5.0.2-zh_CN.tar.gz
解压完成后,把wordpress目录下所有文件全部(表示所有)移到当前目录下(./)(当前目录是/data/wwwroot/blog.jinshui.cc/)
mv wordpress/ ./
删除wordpress目录和wordpress-5.0.2-zh_CN.tar.gz这个包
rm -rf wordpress wordpress-5.0.2-zh_CN.tar.gz
此时去访问我们的博客就可以看到安装页面了
设置数据库
进入到数据库:
mysql -uroot -paminglinux
创建库:create database blog;
创建用户:grant all on blog.* to ‘blog’@‘127.0.0.1’ identified by ‘pbxfuej3LR4r’;
以上实例中创建用户时一定要用127.0.0.1这个IP,由源到源,因为数据库和程序文件都是在本地服务器的,如果数据库是单独配置在其他服务器上则需要远程的数据库地址
退出快捷键:Ctrl+D
mysql -ublog -ppbxfuej3LR4r -h127.0.0.1 登陆到blog这个库
show databases; 看看都有哪些库
现在就可以继续进行安装wordpress
到这里就安装成功了
此时登陆数据库看看
mysql -ublog -ppbxfuej3LR4r -h127.0.0.1
show databases; 看看都有哪些库
切换某个库: use blog;
查询库里面有什么表: show tables;
然后还可以看到刚刚最新生成的文件
问题处理:
在安装wordpress过程中,需要设定网站程序目录的权限,属主设定为php-fpm服务的那个用户
chown -R php-fpm /data/wwwroot/blog.jinshui.cc
补充:
yum install -y expect //为了安装mkpasswd命令,这个命令用来生产随机密码的
如, mkpasswd -s 0 -l 12
discuz官网:http://www.discuz.net/forum.php
yum install -y git 安装git包就可以使用以下的git命令了
git clone https://gitee.com/ComsenzDiscuz/DiscuzX.git 克隆discuz程序
克隆下来后就会有一个DiscuzX目录,discuz程序就是在DiscuzX目录下的upload目录里面
cp -r DiscuzX/upload /data/wwwroot/bbs.jinshui.cc 拷贝DiscuzX/upload目录并且改名成目标目录
定义虚拟主机(站点bbs.jinshui.cc)配置文件:
1)cd /etc/nginx/conf.d
2)cp blog.jinshui.cc.conf bbs.jinshui.cc.conf
3)修改里面的目录
vi bbs.jinshui.cc.conf
4)nginx -t && nginx -s reload
然后访问bbs.jinshui.cc就到了安装页面了
开始安装:
这些目录需要改可写权限
1)改权限 cd /data/wwwroot/bbs.jinshui.cc && chown -R php-fpm config data uc_server/data uc_client/data
&& 前面的命令执行成功了才会继续执行后面的命令
2)数据库相关操作:
mysql -uroot -paminglinux 进入到数据库
create database bbs; 创建库bbs
grant all on bbs.* to ‘bbs’@127.0.0.1 identified by ‘li60rtvvHAfh’; 创建用户
先退出再连接一下更改成功创建的库,能连接上说明没毛病
3)定义数据库相关的信息
4)完成安装
补充:
1) cp :cp -r 复制目录
2)vi 批量查找替换,一般模式下输入 :1, s / 要 被 替 换 的 字 符 / 替 换 成 的 字 符 / g 如 果 字 符 串 中 含 有 / , 则 需 要 脱 义 , 1 , s/要被替换的字符/替换成的字符/g 如果字符串中含有/,则需要脱义, 1, s/要被替换的字符/替换成的字符/g如果字符串中含有/,则需要脱义,1,s/home/123/home/abc/g
还有一种方法:1,$s#home/123#home/abc#g