项目技术架构(前置准备):
- 项目运行的电脑:(工作中)服务器,(学习中)虚拟机。
- 项目运行服务器所在操作系统:Linux操作系统。
- 项目运行必须使用的软件:数据库软件(MySQL),网址服务软件(Nginx、Apache),代码运行环境(Java、PHP)等。(具体需要根据实际情况做出选择与更改) 为了节省时间我们一般使用套件进行安装,套件地址lnmp.org/auto.html
选择好之后我们可以点击生成按钮,会生成在线下载并安装对应软件的Linux命令。
安装完成后我们需要进行以下检查:
1.对安装成功的软件进行版本号检查
- MySQL:mysql --version
- Nginx:nginx -v
- PHP:php -v
2.检查软件服务是否正常启动
- MySQL:systemctl status mysqld
- Nginx:systemctl status php-fpm
- PHP:systemctl status nginx
异常处理:
- 异常产生的原因:
- 是Nginx 启动时 PID 文件并未生成,导致文件无法读取
- 处理方法:在/usr/lib/systemd/system/nginx.service目录下添加语句:
-
ExecStartPost=/bin/sleep 0.1
- 作用是在执行可执行文件前等待0.1秒。
当软件运行无异常后我们就可以进行项目部署了
1.首先查看虚拟机/服务器的IP地址
- 命令: ifconfig
2.在浏览器输入IP地址会显示欢迎来到Nginx的页面
3. 切换到指定目录(源码压缩包需要放置的位置)
-
命令:cd 指定目录
4. 确认切换路径是否正确
-
命令:pwd
5. 上传文件
-
命令:rz
- 输完命令点击回车,会弹出目录,我们需要选择需要的压缩包进行上传
6. 确认文件是否上传成功
-
命令:ls
- 查看当前目录下是否显示上传的压缩包
7. 解压文件
-
原始解压命令:unzip -d ./ 压缩包名称
-
简化解压命令:unzip 压缩包名称
8. 确认文件是否解压成功
-
命令:ls
- 查看当前目录下是否有解压后的文件
9. 修改权限
-
命令:chmod -R 777 解压后的文件的目录
10. 确认权限是否修改成功
-
命令:ls -l 解压后的文件的目录
11. 查找网址服务程序配置文件所在路径
- 命令:find / -name 配置文件目录名称
12. 切换到配置文件所在目录,并查看配置文件是否在目录下
-
切换命令:cd /etc/nginx/配置文件目录名称
-
查看命令:ls
13. 删除配置文件,并确认是否删除成功
-
命令:rm -rf 配置文件名称
14. 上传最新的配置文件
-
命令:rz
- 输入命令后点击回车,会弹出目录,选择配置文件进行上传
15. 上传后查看配置文件是否上传成功
-
命令:ls
- 查看配置文件是否在当前目录下
16. 重启服务,确认网址服务程序是否启动成功
-
重启程序命令:systemctl restart nginx
-
也可以直接重启服务器:命令:shutdown -r now
-
查看命令:systemctl status nginx
17.最后我们在浏览器输入以下网址进入部署的项目的前后台:
我们以TPshop商城为例进行环境搭建:
上传项目压缩包文件到 /usr/share/nginx/html (需要根据实际情况选择压缩包上传的位置)
配置文件目录:/etc/nginx/conf.d(一般会告诉我们配置文件路径,如果没有我们可以通过配置文件名称进行查找)
1. 切换到指定目录(源码压缩包需要放置的位置)
-
命令:cd /usr/share/nginx/html
2. 确认切换路径是否正确
-
命令:pwd
3. 上传文件
-
命令:rz
4. 确认文件是否上传成功
-
命令:ls
5. 解压文件
-
原始解压命令:unzip -d ./ tpshop.zip
-
简化解压命令:unzip tpshop.zip
6. 确认文件是否解压成功
-
命令:ls
7. 修改权限
-
命令:chmod -R 777 www
8. 确认权限是否修改成功
-
命令:ls -l www
9. 查找网址服务程序配置文件所在路径
- 命令:find / -name conf.d
10. 切换到配置文件所在目录,并查看配置文件是否在目录下
-
切换命令:cd /etc/nginx/conf.d
-
查看命令:ls
11. 删除配置文件,并确认是否删除成功
-
命令:rm -rf default.conf
12. 上传最新的配置文件
-
命令:rz
13. 查看配置文件是否上传成功
-
命令:ls
14. 重启服务,确认网址服务程序是否启动成功
-
重启程序命令:systemctl restart nginx
-
也可以直接重启服务器:命令:shutdown -r now
-
查看命令:systemctl status nginx
到这里我们完成了环境部署,接下来我们需要初始化tpshop项目
初始化tpshop项目:
1.在浏览器地址栏中输入 服务器(虚拟机)ip/index.php , 会进入到tpshop的安装页面
-
在浏览器输入 服务器(虚拟机)ip/index.php,我们看到的页面为下图,我们点击“接受”
-
我们看到的页面为下图,正常情况下,环境检测应该是没有问题的,直接点击“下一步”
-
我们看到的页面为下图,在创建数据页面中,输入对应的信息,点击“创建数据”,即可安装
-
安装完成后,我们看到以下页面
2.我们可以在浏览器输入 服务器(虚拟机)的ip地址 进入tpshop的前端页面 输入服务器(虚拟机)的ip地址/admin 进入tpshop的后端页面
-
在浏览器输入 服务器(虚拟机)ip 后,我们会看到以下页面
-
在浏览器输入 服务器(虚拟机)ip/admin 后,我们会看到以下页面
到这里我们的TPshop商城环境搭建就完成了
Linux相关介绍:
Linux 介绍
1. 操作系统:管理软、硬件的媒介
2. 常见操作系统:windows,Mac,Linux,Unix,Android,ios
3. Linux特点:开源免费
4. Linux常见版本:Ubuntu,CentOS,Redhat(小红帽)
5. Linux使用领域:应用服务器,数据库服务器,移动手机
Linux 文件目录结构
1. 目录结构:树状结构
2. 常见的目录及存放文件:
/home:用户目录(资料、文件、软件)
/bin:放工具
/root:权限管理程序
/usr:软件
Linux命令:
Linux 命令格式
1. 基础格式:命令 选项 参数 (选项,参数选填)
2. Linux帮助手册(首选百度)
help:命令 --help(ls --help)
man:man 命令(man ls)
查看目录内容--ls
ls [选项] [文件或目录]
-l:以列表方式详细显示内容信息
-a:显示所有文件,包含隐藏文件及目录目录
-h:显示出文件的大小
切换目录--cd
cd [目录名称]
cd或cd~,cd /root :到root目录
cd ./ :切换到下一级目录
cd .// :切换到上一级目录
创建目录--mkdir
mkdir [选项] 目录名称
-p:实现多个层级目录创建(套娃)
创建文件--touch
touch 文件名
删除文件或目录--rm
rm [选项] 目录名或文件名
-r:表示删除文件夹及文件夹下所有内容
-f:表示强制删除,不提示
-i:表示有提示
复制文件或目录--cp
cp [选项] 源文件 目标文件
-r:复制目录
-f:不提示
-i:有提示
-v:显示复制的进度
移动文件或目录--mv
mv 源文件 目标文件
-f:不提示
-i:有提示
查看文件命令
cat [选项] 文件名 (文件内容较少)
-n:对所有行进行行编号
-b:对非空行进行行编号
more [选项] 文件名 (文件内容较多)
grep [选项] 文件名
-n:显示行号
-v:不包含搜索的文件名(取反)
-i:忽略大小写
grep -n ^文件名 (以文件名开头)
grep -n 文件名$ (以文件名结尾)
grep -n [Ss]ifna[Ll] (以S/s开头,以L/l结尾)
重定向-->,>>
- 使用场景:将显示在终端的内容通过重定向添加或追加到另一个文件中
语法格式:
需要在终端展示的内容 重定向命令 保存的文件名称
">":覆盖文件中原有内容
说明:如果没有文件,创建文件之后再写入展示内容;
如果有文件,会自动删除文件之后,再创建
">>":不会覆盖原有文件(追加)
说明:如果没有文件,创建文件之后再写入展示内容;如果有文件,在文件中继续写入展示内容
如:ls -l > 1.txt
管道符--|
- 作用:对于输出结果(控制台展示的内容),进行额外的处理
语法格式:
输出结果(控制台内容) | 对于结果额外处理的Linux命令
分页:more
过滤:grep
如:ls -l /usr/bin | more
ls /usr/bin | grep ^au
关机与重启命令
暴力型:不管程序是否关闭,强制进行操作(可能会导致程序损害)
重启:reboot
关机:halt
- 温和型:先将程序关闭之后,在进行操作(如果程序无法关闭,那么操作就无法进行)
重启:shutdown -r 参数
关机:shutdown -h 参数
参数:
1、now(立刻关闭)2、24小时时间(定时关闭)
3、+数字(延迟多少时间进行关闭)
1.工作重启或关机,一定是使用温和型方式操作
2.如果遇到程序无法自动关闭导致操作进行不下去,怎么办?
a.通过进程,执行Linux命令关闭该程序
b.再使用温和型方式进行操作
查看系统进程--ps(获取进程号PID)
- 使用场景:某一个软件(程序)卡死,需要将其进程杀死,那么首先要查看它的进程号
ps -aux
-a:显示所有进程
-u:显示详细状态
-x:显示没有控制终端的进程
结合grep:ps -aux | grep mysql
查看系统进程--top(实时动态查看,相当于Window的任务管理器)
- 使用场景:服务器运行缓慢
top
M:内存大小排序
P:CPU使用率排序
q:退出
关闭进程--kill
kill -9 进程号 (强制关闭对应的进程)
查看系统监听端口--netstat
- 使用场景:查看某一个程序在服务器中运行时的端口号(访问某个程序时,需要设置端口号)
netstat -anp
-a:显示所有端口
-n:用数字显示对应的端口
-p:显示进程id
结合grep:netstat -anp | grep [程序名称](查看某个程序的端口)
查看系统监听端口--lsof
- 使用场景:启动服务器中的某一个程序,发现启动失败。查看其中程序使用的默认端口号是否被占用
lsof -i (如果不给出条件,打开所有进程)
lsof -i:3306 (显示使用端口3306的进程信息)
查看日志信息命令
head 文件名 (默认显示前十行内容)
head -20 文件名 (显示前二十行内容)
tail 文件名 (默认显示最后十行内容)
tail -20 文件名 (显示最后二十行内容)
tail -f 日志文件信息 | grep -n 错误信息过滤(404,400,401,403,error)
权限基本概念
读 read r 4
写 wirte w 2
执行 execute x 1
修改用户权限-chmod
- 使用场景:测试环境部署项目时,将项目的安装包放入Linux服务器后,需要设置权限
chmod [选项] 权限数字 文件名
更改目录下所有文件权限:-R
755分别表示:拥有者权限(rwx)/用户组权限(rx)/其他用户权限(rx)
用户管理--查看登录账户、切换用户、用户退出
查看当前用户:whoami
切换用户:su 用户名
用户退出:exit
查找指定文件
- 使用场景:进行环境部署时,将安装包解压之后需要针对某个配置文件进行修改
find 路径(范围) -name 查找文件/目录名称
打包和解包
打包
tar -cvf 打包名称.tar 被打包的文件/路径
-c:create创建
-v:进度
-f(必须放在最后面):files文件
解包
解在当前目录:tar -xvf 打包的名称.tar
解在指定目录:tar -xvf 打包的名称.tar -C 路径名称
压缩和解压缩
- gzip
压缩
tar -zcvf 压缩名称.tar.gz 被压缩的文件/路径
解压缩
解压到当前目录:tar -zxvf 压缩包的名称.tar.gz
解压到指定目录:tar -zxvf 压缩包的名称.tar.gz -C 路径名称
- zip
压缩:
zip -r 压缩名称.zip 被压缩的文件/路径
解压缩:
unzip -d 解压后的目录 压缩包的名称.zip
vi 编辑器
打开文件:vi 文件名(带后缀)
编辑文件:按a/i/o,进入“插入模式”,编辑内容
保存文件:
按exc退出插入模式,按shift+:进入末行模式
输入wq:保存后退出,输入q!:不保存直接退出