liunx使用apache部署多个web【使用lnmpa记录】


前言

提示:废话较多
因为项目需要,所以打算简单学习一下apache部署项目,发现配置和nginx好像啊


一、安装apache环境

1.使用lnmpa一键安装环境

如图
在这里插入图片描述
使用xshell登陆liunx服务器,回车执行

wget http://soft.vpser.net/lnmp/lnmp1.9.tar.gz -cO lnmp1.9.tar.gz && tar zxf lnmp1.9.tar.gz && cd lnmp1.9 && LNMP_Auto="y" DBSelect="5" Bin="n" DB_Root_Password="lnmp.org" InstallInnodb="y" PHPSelect="10" SelectMalloc="1" ApacheSelect="2" ServerAdmin="webmaster@example.com" ./install.sh lnmpa

10分钟左右,返回了结果
php、apache、nginx都OK
mysql8.0安装失败(直接傻眼)

2.安装mysql

修复折腾了半天,最后随手执行了mysql安装指令

yum install mysql

居然直接安装成功了……

在本地去登陆mysql,链接失败(我就知道没这么简单)
ERROR 2002 (HY000): Can’t connect to local MySQL server through socket ‘/tmp/mysql.sock’
在这里插入图片描述

搜了半天,做了各种尝试,就是不能生成mysql.sock,
最后发现,这个是本地链接才用得到的,并不是很重要,本地也可以通过下面指定ip链接

mysql -uroot -h 127.0.0.1 -p 

在这里插入图片描述
开启mysql远程连接,方便本地连接进去

修改root 登陆为%(%:所有ip都可以登陆)
update user set Host = ‘%’ where Host = ‘localhost’ and User=‘root’;
flush privileges;

退出mysql,重启mysql
systemctl stop mysqld.service
systemctl start mysqld.service

为防火墙添加 3306 端口
firewall-cmd --zone=public --add-port=3306/tcp --permanent
重启防火墙
firewall-cmd --reload

//防火墙指令
firewall-cmd --state ##查看防火墙状态,是否是running
systemctl status firewalld.service ##查看防火墙状态
systemctl start firewalld.service ##启动防火墙
systemctl stop firewalld.service ##临时关闭防火墙
systemctl enable firewalld.service ##设置开机启动防火墙
systemctl disable firewalld.service ##设置禁止开机启动防火墙
firewall-cmd --permanent --query-port=80/tcp ##查看80端口有没开放
firewall-cmd --reload ##重新载入配置,比如添加规则之后,需要执行此命令
firewall-cmd --get-zones ##列出支持的zone
firewall-cmd --get-services ##列出预定义的服务
firewall-cmd --query-service ftp ##查看ftp服务是否放行,返回yes或者no
firewall-cmd --add-service=ftp ##临时开放ftp服务
firewall-cmd --add-service=ftp --permanent ##永久开放ftp服务
firewall-cmd --remove-service=ftp --permanent ##永久移除ftp服务
firewall-cmd --add-port=80/tcp --permanent ##永久添加80端口
firewall-cmd --zone=public --remove-port=80/tcp --permanent ##移除80端口
iptables -L -n ##查看规则,这个命令是和iptables的相同的
man firewall-cmd ##查看帮助

如果对安全性不重要的话,可以向我一样,直接关闭防火墙……
systemctl stop firewalld.service

(云服务器安全组记得开放3306端口)
就可以在本地登陆mysql了

3.关闭nginx

防止nginx干扰,干脆停了

1.从容停止服务
这种方法较stop相比就比较温和一些了,需要进程完成当前工作后再停止。
nginx -s quit
2.立即停止服务
这种方法比较强硬,无论进程是否在工作,都直接停止进程。
nginx -s stop
3.systemctl 停止
systemctl属于Linux命令
systemctl stop nginx.service
4.killall 方法杀死进程
直接杀死进程,在上面无效的情况下使用,态度强硬,简单粗暴!
killall nginx

1.nginx直接启动
nginx
2.systemctl命令启动
systemctl start nginx.service
3.查看启动后记录
ps aux | grep nginx
4.重启Nginx服务
systemctl restart nginx.service
5.重新载入配置文件
nginx -s reload
6.查看端口号
netstat -tlnp
7.查看端口号 netstat -anp |grep 端口号
8.查看运行id ps -A |grep 名字
9.查看nginx报错 sudo nginx -t

二、更改apache配置文件

1.创建虚拟网站配置文件

在lnmp可以查看apache 配置文件位置:
Apache目录:/usr/local/apache/
Apache配置文件:/usr/local/apache/conf/httpd.conf
Apache虚拟主机配置文件目录:/usr/local/apache/conf/vhost/
Apache默认虚拟主机配置文件:/usr/local/apache/conf/extra/httpd-vhosts.conf
虚拟主机配置文件名称:/usr/local/apache/conf/vhost/域名.conf

创建自己域名conf文件,放到/usr/local/apache/conf/vhost/目录里面
在这里插入图片描述
在这里插入图片描述
重启apache,输入错误会有提示,如下
service httpd restart
有警告,因为我改了httpd.conf配置,不影响web运行
在这里插入图片描述
到这里就能通过域名访问到站点了

2.配置httpd.cnf

访问后发现一个问题,我通过域名去访问,如果直接输入域名,居然优先展示httpd.cnf里面的index.html文件,而不是我对应域名下面的index.html文件,这个肯定不是我需要的
改httpd.cnf,添加第一个红框内容,就不会通过域名访问主站点了,而是我们域名对应的虚拟站点
在这里插入图片描述

3.apache部署多个web

方法有两个,
1、运行多个apache,每个分别指定一个ip,通过ip区分(公网ip太稀有,一般只有一个)
2、运行一个apache即可,使用虚拟主机,通过域名区分(推荐!)

参考:https://blog.csdn.net/THMAIL/article/details/84326277

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值