Linux 部署项目经验总结
【通用命令】
1.创建文件夹
mkdir -p xxx
2.解压包
tar -zxvf xxxx.tar.gz
3.缩文件
tar zcvf 压缩包名称.tar.gz 要压缩的文件
4.动命令
mv 文件 移动到的位置
5添加服务
chkconfig --ad
6赋权
chmod -r 777 xxx
7.想开的端口是否已开
firewall-cmd --query-port=666/tcp
提示 no 表示未开
8开永久端口号
firewall-cmd --add-port=666/tcp --permanent
提示 success 表示成功
【运行环境安装】
一、安装 jdk 1.7
参考资料
1.解压包
tar -zxvf jdk-7u80-linux-x64.tar.gz
2.将jdk移动到 /usr/local 这个目录下面
mv jdk1.7.0_80/ /usr/local/
3.配置环境变量
1 vim /etc/profile 2 3 export java_home=/usr/local/jdk1.7.0_80 4 export jre_home=$java_home/jre 5 export path=$path:/$java_home/bin 6 export classpath=./:/$java_home/lib:/$java_home/jre/lib
4.重新加载文件
source /etc/profile
5.检查是否安装成功
java -version
其他:
1.如果linux本身安装了 linux jdk,可以通过如下命令查找对应安装目录
which java
2.如何更改默认 jdk 为自己刚刚安装的jdk
参考
二、安装 tomcat 8
1.上传 tomcat 文件,首选 tomcat8
安装包自行下载
2.解压包
tar –zxvf 路径/包名
3.修改防火墙端口放行
firewall-cmd --add-port=8080/tcp --permanent
提示 success 表示成功
4.启动 tomcat,停止tomcat
进入 tomcat/bin ,执行
./startup.sh
./shutdown.sh
5.查看tomcat运行情况
ps -ef|grep tomcat
6.添加tomcat服务
1.复制服务脚本tomcat/bin/catalina.sh到/etc/init.d
cp $ catalina _ home /bin/catalina.sh /etc/init.d/tomcat
2.修改该脚本
-a.在第三行插入
chkconfig: 2345 10 90
description:tomcat service
-b.设置java环境变量到该脚本中
catalina_home=/usr/local/tomcat/apache-tomcat-8.5.35-8070
java_home=/usr/local/jdk1.7.0_80
3.设置服务脚本为可执行权限
chmod 755 /etc/init.d/tomcat
4.添加(注册)服务
chkconfig --add tomcat
5.开机启动
chkconfig tomcat on
6.tomcat 调优
vi /usr/local/apache-tomcat-7.0.63/bin/catalina.sh
java_opts="-server -xms1024m -xmx10240m -xx:permsize=128m -xx:maxpermsize=512m -xx:maxnewsize=128m"
三、安装 nginx
重点:nginx 首先要安装 gcc 等依赖库,之后无论是否有网络都可以进行安装
1.利用 yum 安装依赖
yum -y install gcc gcc-c++ gdb
备注:如果服务器无法访问网络,则需要利用挂载技术,重新指定本地的 yum 源
2.利用ftp工具,上传 nginx 响应依赖包,参考路径为 /home/wljy/nginx
——有网络情况下安装方法——
1.检查是否已经安装 nginx
find -name nginx
2.卸载已有的 nginx
yum remove nginx
3.下载 nginx 或者使用 ftp 上传到 /usr/local/src
wget http://nginx.org/download/nginx-1.14.1.tar.gz
4.解压包
tar -zxvf nginx-1.14.1.tar.gz
5.安装
1、 ./configure --prefix=/usr/local/nginx
【此步骤可能会引发错误如下
处理方案: yum -y install pcre-devel openssl openssl-devel 】
2、 make
3、 make install
6.查看 nginx 安装目录
whereis nginx
备注:
//启动命令
安装路径下的 /nginx/sbin/nginx
//停止命令
安装路径下的 /nginx/sbin/nginx -s stop
或者 : nginx -s quit
//重启命令
安装路径下的 /nginx/sbin/nginx -s reload
四、安装 mysql5.6
1.卸载系统自带的 mariadb
rpm -qa|grep mariadb
rpm -e --nodeps 上句命令查出来的命令
2.删除原有的 my.cnf
rm /etc/my.cnf
3.创建 mysql 用户组
groupadd mysql
4.创建 mysql 用户
useradd -g mysql mysql
5.上传 mysql 安装包并解压到 /usr/local
tar -zxvf mysql-5.6.42-linux-glibc2.12-x86_64.tar.gz
mv mysql-5.6.42-linux-glibc2.12-x86_64 mysql
mv mysql /usr/local
6.复制配置文件 my.cnf 到 etc 目录下
cd /usr/local/mysql/support-files
cp my-default.cnf /etc/my.cnf
修改对应内容为
1 [mysql] 2 # 设置mysql客户端默认字符集 3 default-character-set=utf8 4 socket=/var/lib/mysql/mysql.sock 5 6 [mysqld] 7 skip-name-resolve 8 #设置3306端口 9 port = 3306 10 socket=/var/lib/mysql/mysql.sock 11 # 设置mysql的安装目录 12 basedir=/usr/local/mysql 13 # 设置mysql数据库的数据的存放目录 14 datadir=/usr/local/mysql/data 15 # 允许最大连接数 16 max_connections=200 17 # 服务端使用的字符集默认为8比特编码的latin1字符集 18 character-set-server=utf8 19 # 创建新表时将使用的默认存储引擎 20 default-storage-engine=innodb 21 lower_case_table_name=1 22 max_allowed_packet=16m
备注:资源包中已经包含了修改好的 my.cnf,可直接复制到指定路径下
7.执行安装步骤
cd /usr/local/mysql
chown -r mysql:mysql ./
./scripts/mysql_install_db --user=mysql --basedir=/usr/local/mysql/ --datadir=/usr/local/mysql/data/
此操作可能会触发找不到 prel 依赖包的错误
解决方案:先执行 yum install -y perl-module-install.noarch 再执行初始化 mysql 操作
8:修改当前data目录的拥有者为 mysql 用户
chown -r mysql:mysql data
9.授权my.cnf,否则会无法创建各类文件
chmod 777 /etc/my.cnf
10.设置开机自启动
cd /usr/local/mysql
cp ./support-files/mysql.server /etc/rc.d/init.d/mysqld
chmod +x /etc/rc.d/init.d/mysqld
chkconfig --add mysqld ##将 mysql 的服务加到系统服务
chkconfig --list mysqld ##检查服务是否生效
11.运行 msql
service mysqld start/stop/restart
12.将 mysql 的 bin 目录加到 path 环境变量中,使 mysql 命令可用
cd ~
vi .bash_profile
输入“e”,代表编辑改文件。
export path=$path:/usr/local/mysql/bin
按一下 "esc" 键 ,结束编辑;
source .bash_profile
13.登录 mysql,mysql 默认是没有密码的,直接回车就可以
mysql -u root -p
14.更改root密码
1 mysql>use mysql; 2 mysql>update user set password=password('gxogmb$9yv') where user='root' and host='localhost'; 3 mysql>flush privileges;
15.设置远程主机登录:
1 mysql>grant all privileges on *.* to 'wljy'@'%' identified by 'gxogmb$9yv' with grant option; 2 3 mysql>flush privileges;
五、安装redis
1.上传安装文件到 /home/wljy/redis
安装包自行下载
2.解压包,复制解压文件到 /usr/local/src
3.编译安装tcl
cd /usr/local/src/tcl8.6.1/unix
./configure && make && make install
4.安装 redis
cd /usr/local/src/redis-4.0.6/src
make malloc=libc && make install
5.配置redis
mkdir -p /etc/redis mkdir -p /var/redis/6379 mkdir -p /var/log/redis/6379 cp /usr/local/src/redis-4.0.6/redis.conf /etc/redis/6379.conf cp /usr/local/src/redis-4.0.6/utils/redis_init_script /etc/init.d/redisd chmod 755 /etc/init.d/redisd
6.修改 redis 配置参数
vi /etc/redis/6379.conf daemonize yes pidfile /var/run/redis_6379.pid port 6379 dir /var/redis/6379 logfile "/var/log/redis/6379/redis.log" requirepass dev2017 bind 127.0.0.1#此配置可导致外网链接失败 protected-mode no
7.修改内核信息
vi /etc/sysctl.conf vm.overcommit_memory = 1 sysctl -p
8.redis 启动测试
cd /etc/init.d/ ./redisd start
9.redis 添加服务
vi /etc/init.d/redisd
//添加 chkconfig 和 description 两行 不然会提示 服务 redisd 不支持 chkconfig
//start下面的 "$exec $conf"改为"$exec $conf &" 否则无法后台运行
chkconfig: 2345 90 10 description: redis is a persistent key-value database chkconfig --add redisd
备注:现在已经可以通过服务启动或关闭redis,相关命令如下
service redisd start service redisd stop【防火墙对应端口号放行】
——防火墙配置方法一 firewall ——
1.查询端口号80 是否开启: firewall-cmd --query-port=80/tcp 2.永久开放80端口号: firewall-cmd --permanent --zone=public --add-port=80/tcp 3.查看防火墙状态: systemctl status firewalld.service 4.启动|关闭|重新启动 防火墙 systemctl [start|stop|restart] firewalld.service systemctl restart firewalld.service systemctl stop firewalld.service systemctl start firewalld.service
——防火墙配置方法二— iptables ——
配置防火墙 //打开防火墙文件 sudo vi /etc/sysconfig/iptables //新增行 开放80端口 -a input -p tcp -m state --state new -m tcp --dport 80 -j accept //保存退出 //重启防火墙 sudo service iptables restart
【挂载磁盘,添加本地 yum 源】
虚拟机挂载时,是在已经运行的虚拟机上,利用光盘重新添加系统iso文件即可
如果无法控制虚拟机的时候,可以将镜像文件复制到yum目录下,执行之后的配置即可
1.创建文件
mkdir -p /mnt/yum-iso mkdir /yum
2.添加挂载
mount -t auto /dev/cdrom /mnt/yum-iso/
备注:dev 下的文件名称可根据实际情况修改
3.复制文件到 yum 路径下
cp -a /mnt/yum-iso/ /yum/
4.备份 repo
cd /etc/yum.repos.d/ tar zcvf repo-bk.tar.gz centos-* rm -f centos-base.repo centos-cr.repo centos-debuginfo.repo centos-fasttrack.repo centos-sources.repo centos-vault.repo
5.编辑本地 repo 配置文件
vi centos-media.repo
[c7-media] name=centos-$releasever - media baseurl=file:///yum/yum-iso/ gpgcheck=0 enabled=1 gpgkey=file:///etc/pki/rpm-gpg/rpm-gpg-key-centos-7
6.制作 cache
yum clean all yum makecache
7.查看当前正在使用的yum源地址
yum repolist all
【其他问题记录】
1.当centos没有安装ifconfig
yum search ifconfig yum install net-tools.x86_64
2.当安装openssl时提示,you need perl5,可通过 yum 安装 perl
yum install perl*
3.【未解决】mysql 无法重启问题解决 warning: world-writable config file ‘/etc/my.cnf’ is ignored
解析:在关闭数据库的命令发现 mysql 关不了,提示 warning: world-writable config file ‘/etc/my.cnf’ is ignored ,大概意思是权限全局可写,任何一个用户都可以写。mysql 担心这种文件被其他用户恶意修改,所以忽略掉这个配置文件。这样 mysql 无法关闭
4.部署完成后上传的图片无法查看,而服务器中已经上传成功
解析:此问题是tomcat8出现的问题,需要修改 tomcat/bin/catalina.sh
vi /usr/local/tomcat/tomcat-xxx/bin/catalina.sh :/umask,将0027改为0022
修改完成后重启tomcat
5.nginx make 时报 “make: *** no rule to make target `build', needed by `default'. stop.”
解析:没有预先安装 nginx 所需各种依赖,安装完成后执行 config 再执行 make
6.机器硬件信息查询
//查看系统位数、内核版本
uname -a
//查看系统版本
rpm -q centos-release
//磁盘分区和使用情况
df -h
//查看 cpu 信息
cat /proc/cpuinfo | grep name
//内存情况
cat /proc/meminfo | head -4
7.tomcat 内存泄漏问题解决
配置项:
java_opts="-server -xms128m -xmx512m -xx:permsize=128m -xx:maxpermsize=512m -xx:maxnewsize=128m"
备注:-xmx 最大内存,不超过物理内存的1/2
备注:
if [ $have_tty -eq 1 ]; then (插入位置) echo "using catalina_base: $catalina_base"
8.linux 下执行数据库脚本
1、进入 mysql:
mysql -u 用户名 -p
2、在 mysql-front 中新建你要建的数据库,这时是空数据库,如新建一个名为 blog 的目标数据库( mysql>create database blog; )
3、输入: mysql>use 目标数据库名
4、导入文件: ysql>source 导入的文件名;
9、nginx 403 forbidden 的解决办法
原因:nginx.cnf 配置的 root 里面的根目录权限不足或根目录内无已配置的首页文件
解决方案:
1、 赋予权限给根目录
chmod –r 755 根目录地址 nginx.cnf 文件顶部配置:
1、配置为 ps –ef|grep nginx 下 nginx 进程的用户
2、 user root (终极方案)
2、 忽略,或者将index.html 文件放进根目录
3、参考这里
10、无法获取网络
方法一
vi /etc/sysconfig/network-scripts/ifcfg-ens33
将 onboot=no 改成 onboot= yes
重启服务 service network restart
方法二
(方法一无效时使用)
关闭网络管理
systemctl stop networkmanager
重启网络管理
systemctl start network.service
(网络详解见问题12)
11、mysql 报错 access denied for user ''@'localhost' to database
解决方案:将 mysql 库中 user 表里面所有用户名为空的数据删除,重启即可
12、vmware 虚拟机下 linux 网络配置
上网方式选择
桥接:虚拟机能连接互联网,并且外部部网络和局域网都能访问到虚拟机
nat:虚拟机能连接互联网,但是不在意虚拟机与宿主机是否能通信(比如连接 ssh),外部网络不能访问虚拟机
仅主机:虚拟机不能连接互联网,并且虚拟机与宿主机能够相互通信
【桥接模式】虚拟机中参考配置
1、编辑网卡配置文件
vim /etc/sysconfig/network-scripts/ifcfg-eth0
--若不存在 ehh0 可在同目录中寻找其他配置文件,具体文件名可查询网络配置 ifconfig –a
2、关键参数修改
onboot : 是否启用网卡
需修改为【yes】,否则以后每次都要使用【ifup eth0】启动网卡
bootproto : 获取ip 方式
【static】静态 ip、【dhcp】动态分配、【none】不使用
1、若使用【staic】静态 ip 模式,需要修改如下配置
onboot=yes bootproto=staic netmask=255.255.255.0#子网掩码,与宿主机一致 ipaddr=192.168.*.*#静态 ip 地址,与宿主机在同一网段内,且不能被其他设备占用 gateway=192.168.1.1#网关,与宿主机一致
之后,再编辑一下文件设置 dns,否则能联网但是无法解析域名
vim /etc/resolv.conf
该文件默认为空文件
nameserver 114.114.114.114 nameserver 8.8.8.8
dns 无需与宿主机一致,但是一定要设置,否则就使用 ip 吧
最后使用 service network restart 重启网络服务,即可联网
2、 若使用【dhcp】动态分配的方式获取 ip,需要修改如下配置
onboot=yes bootproto=dhcp
【仅主机】虚拟机中参考配置
1、共享网络
如果要使得虚拟机能联网,我们可以将主机网卡共享给 vmware network adapter vmnet1 网卡,从而达到虚拟机联网的目的。接下来,我们就来测试一下。
首先设置“虚拟网络编辑器”,可以设置 dhcp 的起始范围。
2、虚拟机设置
设置虚拟机为host-only模式。
3、网卡配置设置
开机启动系统,然后设置网卡文件。
4、测试通信
保存退出,然后重启网卡,利用远程工具测试能否与主机通信。
over~
写在最后:
第一次写博客,可能会有些排版或者逻辑方面有疏忽或者错漏,希望各位大佬能不吝指教,万分感谢~
上一篇: Linux下的压缩与解压缩
下一篇: 女人提出离婚无法挽回,是什么原因