linux介绍
linux是一般用来部署项目。
安装linux操作系统,一般可以采用云服务器,和vmware软件虚拟机。前者需要购买,后者可以使用破解版。这里使用的是云服务器。阿里云(价格相对便宜,仅供学习使用,其它使用途径,买贵的)
ECS购买配置
- 地址: https://account.aliyun.com/
- 进入控制台点击创建实例
- 付费模式:随意选择
- 地区:选择最近的
- 实例规格: 1 cpu 1G内存 ecs.t5-lc2m1.nano 足够, 注意:一般情况不要打开无性能约束模式,好像会收费。突发性性能的实例,效果一般。
- 镜像:选择centos,版本7,64位,注意镜像市场的配置,可以配置tomcat,mysql,javajdk,ftp,但是新手,就不要从这里选择
- 其它配置默认点击购买即可
- 购买之后,重设实例密码
- 上述步骤操作成功,可以看到实例里面有一个公网ip,以后就是通过此 ip 访问 ECS
使用secureCRT(可以直接使用xshell免配置)
- 下载地址:这里不提供啦
- 该软件作用:相当与linux客户端,操作linux
- 连接linux ,username:root, 密码:llinux实例密码,默认端口号:22,hostname:linux公网ip。protocol:SSH2,其它皆为默认(端口号:该端口ECS云服务器安全组里默认开放的)
4. 最后重置实例即可,重置才可生效
linux目录结构
系统启动必须:
/boot:存放的启动**Linux 时使用的内核文件,包括连接文件以及镜像文件**。
/etc:存放所有的系统需要的**配置文件和子目录列表**,更改目录下的文件可能会导致系统不能启动。
/lib:存放**基本代码库**(比如c++库),其作用类似于Windows里的DLL文件。几乎所有的应用程序都需要用到这些共享库。
/sys: 这是linux2.6内核的一个很大的变化。该目录下安装了2.6内核中新出现的一个文件系统 sysfs 。sysfs文件系统集成了下面3种文件系统的信息:针对进程信息的proc文件系统、针对设备的devfs文件系统以及针对伪终端的devpts文件系统。该文件系统是内核设备树的一个直观反映。当一个内核对象被创建的时候,对应的文件和目录也在内核对象子系统中
指令集合:
/bin:**存放着最常用的程序和指令**
/sbin:**只有系统管理员能使用的程序和指令。**
(super bin)
外部文件管理:
/dev :Device(设备)的缩写, 存放的是Linux的外部设备。注意:在Linux中访问设备和访问文件的方式是相同的。
/media:类windows的其他设备,例如U盘、光驱等等,识别后linux会把设备放到这个目录下。
/mnt:临时挂载别的文件系统的,我们可以将光驱挂载在/mnt/上,然后进入该目录就可以查看光驱里的内容了。
临时文件:
/run:是一个**临时文件系统,存储系统启动以来的信息**。当系统重启时,这个目录下的文件应该被删掉或清除。如果你的系统上有 /var/run 目录,应该让它指向 run。
/lost+found:一般情况下为空的,系统非法关机后,这里就存放一些文件。
/tmp:这个目录是用来**存放一些临时文件**的。
账户:
/root:**系统管理员的用户主目录**。
/home:**用户的主目录,以用户的账号命名的(下面存放的是linux用户目录)**。
/usr:**用户的很多应用程序和文件都放在这个目录下,类似于windows下的program files目录(local/存放tomcat)**。
/usr/bin:系统用户使用的应用程序与指令。
/usr/sbin:超级用户使用的比较高级的管理程序和系统守护程序。
/usr/src:内核源代码默认的放置目录。
运行过程中要用:
/var:**存放经常修改的数据,比如程序运行的日志文件(/var/log 目录下)(程序运行的日志在var/log/软件.log下)**。
/proc:**管理内存空间!虚拟的目录**,是系统内存的映射,我们可以直接访问这个目录来,获取系统信息。这个目录的内容不在硬盘上而是在内存里,我们也可以直接修改里面的某些文件来做修改。
扩展用的:
/opt:默认是空的,我们安装额外软件可以放在这个里面。
/srv:存放服务启动后需要提取的数据(不用服务器就是空)
启动secureCRT通过linux命令操作linux
1.ls 列出当前目录下的所有文件或文件夹
2.ls -h 列出目录/文件,并显示其权限
1.前面十个位置,第一个代表:目录/文件 ,剩下的9个,三个为一组,分别表示:可读,可写,可执行,没有rwx,可以用" - "表示没有权限。
2.第1-3确定属主(该文件的所有者,拥有的权限),第4-6同组用户所,拥有的权限,第7-9位,其它用户所拥有的权限
3.剩下的 属于,所属用户,大小,创建日期,文件名等
4.pwd:查看当前目录
5.mkdir -p /test/abc : 创建abc目录,-p 如果父目录test不存在,则创建
6.touch tes.txt :创建文件
7.rm -rf /test/abc 递归强制删除目录
8.tail -n 20 /var/log/mysqld.log :取出指定文件的最后20条数据
9.cd 目录 :切换目录
通过vim/vi 编辑工具,编辑文本数据。
- 按下i/a表示输入模式。
- 退出输入模式按Esc
- 保存退出 :wq
- 不保存退出 :q!
使用vsftpRush上传文件到linux(使用xftp可以直接上传免配置)
linux客户端(secureCRT)上操作:
yum ( Yellow dog Updater, Modified)是一个软件包管理器
yum 语法:
1.yum [options] [command] [package ...]
2.options:可选,选项包括-h(帮助),-y(当安装过程提示选择全部为"yes"),-q(不显示安装的过程)等等。
3. command:要进行的操作。
4.package操作的对象。
yum常用命令
yum check-update 列出所有可更新的软件清单
yum install 包名 安装软件包
yum list 包名* 列出可安装的软件包列表
yum search 查找软件包
yum remove 包名 删除软件包
1.vsftpd服务器安装: yum install vsftpd -y
2.systemctl start vsftpd.service 启动
3.systemctl start vsftpd.service 查看vsftpd软件状态
4.vsftpd服务器启动的端口是21 通过netstat -anp | grep 21 命令查看 端口号21的程序的在线情况
linux netstat命令用来查看网络状态
-a表示在线的所有socket(socket实质是计算机间的一种通信)
-n通过ip查看
-p表示正在使用的程序
netstat -anp 查看所有在线程序和端口号的使用情况linux grep用来查找内容包含 字符串的文件
grep 21
5.为vsftpd服务器创建一个专门的linux用户
mkdir /home/ftptest 创建ftp用户目录
useradd -d /home/ftptest -g ftp -s/sbin/nologin ftptest 创建一个用户 并指定其不能登录
-d <登录目录> 指定ftptest登入的用户
-g <组名 > 指定用户所属组
-s 用户登录的shell
用户名 ftptest
6.设置用户目录权限
chown -R ftptest /home/ftptest 修改该目录的属主为ftptest
-R :指定目录下的所有文件
chmod -R 777 /home/ftptest 修改指定目录 读写执行 权限
(rwx,r分数是4,w分数是2,x分数是1,无权限-分数是0 累加为7+7+5)权限为775
7.设置密码 : passwd 用户名 回车即可
8.配置用户
- vi /etc/vsftpd/vsftpd.conf
修改为anonymous_enable=NO 不允许匿名登入(匿名登入不安全)
chroot_list_enable=YES
(default follows)
chroot_list_file=/etc/vsftpd.chroot_list 将#号全部去掉
- vi /etc/vsftpd/chroot_list 增加被要被限制的用户名(我这里是ftptest)
- vi /etc/vsftpd/vsftpd.conf 最后面加一行 allow_writeable_chroot=YES
这样限制该linux用户访问其它目录,只允许对指定目录(/home/ftptest)的rwx
9.配置vsftpd服务器端口
该服务器有两个端口,一个是21端口 ,另一个是传输端口
- vi /etc/vsftpd/vsftpd.conf 添加三行开放传输端口
pasv_enable=YES
pasv_min_port=30000
pasv_max_port=30010
- 在ECS服务器 安全组规则中分别添加这两个端口,这样vsftprush客户端就可以访问vsftp服务器了
10.用户鉴权解决
- vi /etc/pam.d/vsftpd
注释掉/etc/pam.d/vsftpd文件里这一行:
auth required pam_shells.so
这样不去鉴权,从而允许 ftptest 这种 nologin用户登录 ftp 服务器.
- vi /etc/shells
在/etc/shells文件里面增加一行:
/sbin/nologin
这样允许不能登录系统的用户通过鉴权
11.安装vsftprush客户端
- 安装地址:百度有,这里小白不提供了
2.建立与linux中 vsftpd服务器的连接
主机地址:就是linux公网ip
账户密码:之前新建的
以上步骤走完,需要重启ECS服务器
javajdk安装
yum -y install java-1.8.0-openjdk.x86_64
java -version 测试
出现下图,表示成功
linux mysql安装
https://www.cnblogs.com/hujiapeng/p/9124298.html
1.注意linux对mysql存在大小写问题
配置方法:
1.vi /etc/my.cnf
2.在my.cnf中找到【mysqld】下面加上 lower_case_table_names=1
3.重启mysqld就行了
1.问题:如果修改之后,无法启动,报错Job for mysqld.service failed because the control process exited with error...。可能是你之前安装mysql时,并初始化过mysql数据库。只需要重新删除
这一行,即可登入
lower_case_table_names=1
但是mysql大小写问题依旧存在,解决方案:
systemctl stop mysqld.service
然后删除mysql数据 rm -rf /var/lib/mysql
重新执行上面1.2.3步骤
linux tomcat8安装
1.点击一下连接,下载
Tomcat8 tar
2.secureCRT客户端
systemctl start vsftpd.service 启动
systemctl status vsftpd.service 查看状态
cd /tmp 切换到临时目录
3.通过vsftprush客户端上传,刚才下载的包
1.下载的数据应该是在 ftptest 指定的登入目录 /home/ftptest下
对下载的tar解压 tar -xzf apache-tomcat-8.5.23.tar.gz
2.cd / 切换根目录
4.cp /home/ftptest/ apache-tomcat-8.5.23 /tmp 复制tomcat到tmp目录
5.mkdir /usr/local/tomcat
6.mv apache-tomcat-8.5.23. /usr/local/tomcat
- /usr/local/tomcat/apache-tomcat-8.5.23/apache-tomcat-8.5.23/bin/startup.sh 启动tomcat
表示启动成功
4.查看8080端口情况
netstat -anp | grep 8080
看是否处于监听状态
5.部署web项目,有好几种部署方式
详情看这里https://blog.csdn.net/m0_37505854/article/details/79647963
由于我的是maven项目,直接放到webapps下就行了
6.tomcat服务器已经启动,接下来就是,在linux安全组规则中开放 8080端口了,做法和开放vsftpd服务器端口方法一样
linux tomcat中部署maven项目
1.将当前的maven项目打成一个war包
2.启动secureCRT
- systemctl start mysqld.service 启动mysql
systemctl statu mysqld.service 查看状态
- systemctl start vsftpd.service 启动vsftpd服务器 然后查看状态
- /usr/local/tomcat/apache-tomcat-8.5.23/bin/startup.sh 启动tomcat
- 登入vsftprush客户端,连接之后,将war包上传即可
- 将/home/ftptest/项目war 移到 tomcat/webapps下 即可
从linux安装 -》完整项目部署 -》 项目运行
1.ECS服务器购买
2.linux客户端(secureCRT)下载,配置
常用linux操作
3.vsftp服务器安装,
4.创建访问vsftp服务器的专门linux账户(useradd)(限制专用客户端访问),设置密码,为账户设置目录属主chown,chmod账户对应目录的权限
5.专门配置该用户,在svftpd的配置文件中 ,设置不许匿名登入linux,限制用户访问其它目录,一旦限制该用户访问,该用户的读写便失效了,要在vsftp配置文件中,设置用户对vsftp文件写的权限
6.安全组规则中配置vsftp端口,下载vsftprush客户端
7.下载mysql ,jdk,tomcat
8.部署完整的maven项目到tomcat/webapps下
9.项目运行