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.配置环境变量
vim /etc/profile export JAVA_HOME=/usr/local/jdk1.7.0_80
export JRE_HOME=$JAVA_HOME/jre
export PATH=$PATH:/$JAVA_HOME/bin
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
修改对应内容为
[mysql]
# 设置mysql客户端默认字符集
default-character-set=utf8
socket=/var/lib/mysql/mysql.sock [mysqld]
skip-name-resolve
#设置3306端口
port = 3306
socket=/var/lib/mysql/mysql.sock
# 设置mysql的安装目录
basedir=/usr/local/mysql
# 设置mysql数据库的数据的存放目录
datadir=/usr/local/mysql/data
# 允许最大连接数
max_connections=200
# 服务端使用的字符集默认为8比特编码的latin1字符集
character-set-server=utf8
# 创建新表时将使用的默认存储引擎
default-storage-engine=INNODB
lower_case_table_name=1
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密码
mysql>use mysql;
mysql>update user set password=password('gxogMB$9YV') where user='root' and host='localhost';
mysql>flush privileges;
15.设置远程主机登录:
mysql>GRANT ALL PRIVILEGES ON *.* TO 'wljy'@'%' IDENTIFIED BY 'gxogMB$9YV' WITH GRANT OPTION; 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 部署项目经验总结的更多相关文章
- Linux部署项目遇到问题解决
使用Linux部署web项目,可能会遇到各种各样问题导致服务启动失败,以下是我近期部署项目遇到的问题以及解决方案 一.场景:把war包放入tomcat的webapps文件夹下,然后启动tomcat服务 ...
- Linux部署项目 shell脚本启动 及 Centos7开放指定端口
我们首先要在linux上安装好jdk tomcat mysql 这些基本环境,这些可以在楼主的 Linux入门 里面找到. linux部署spring项目 1. 右击项目,maven ...
- linux部署项目(前后端分离项目)
参考博客 技术栈 路飞学城部署 vue + nginx + uwsgi + django + mysql + redis(就是一个key - value型数据库,缓存型数据库,内存型数据库) 部署步骤 ...
- 解决linux部署项目后,第一次访问初始化数据源的时候很慢的问题
先说一下场景 测试环境是linux - centos6.5,项目是分布式的,分别搭建到linux上 数据货使用的是阿里巴巴数据源 每次重启后的第一次访问会比较慢,查看日志发现 卡在这个地方 ...{d ...
- Linux部署项目
1 安装jdk 第一步:获取Linux系统中jdk安装包和tomcat安装包(后面要用,所以上传两个) 第二步:使用secureCRT客户端工具连到服务器 第三步:使用命令创建一个目录,作为软件的安装 ...
- 初玩Linux部署项目
1,先安装虚拟机2,安装centOS3,安装mysql 安装mysql客户端: yum install mysql 安装mysql 服务器端: yum install mysql-server yum ...
- Linux部署项目简要记录【只是步骤没有配图】
1.服务器(192.168.1.197)新建数据库jspxcms_1206,导入数据2.eclipse打war包3.上传war包到/home/app/apache-tomcat-7.0.68/weba ...
- Linux部署项目常用命令
前言:一般项目都会使用阿里云等服务器作为云服务器.此时必不可免会使用到一系列常用的命令.这里我整合一下常用的命令 1.一般链接阿里云服务器常用的的是xshell跟xftp. 下载路径:https:// ...
- linux部署项目访问mysql问题
springboot以war包形式传到webapps下面,mysql创建库和表,war包里配置数据源是localhost,然后运行tomcat是没有问题的,可以访问通mysql正常请求服务. ssm以 ...
随机推荐
- spring boot integrated mybatis three ways!--转
https://github.com/spring-projects/spring-boot/issues/5400 一.使用mybatis-spring-boot-starter1.添加依赖 org ...
- (转载) Android 带清除功能的输入框控件ClearEditText,仿IOS的输入框
Android 带清除功能的输入框控件ClearEditText,仿IOS的输入框 标签: Android清除功能EditText仿IOS的输入框 2013-09-04 17:33 70865人阅读 ...
- swift语言点评六-Numbers and Basic Values
Topics Logical Values struct Bool A value type whose instances are either true or false. Numeric Val ...
- 3ds Max怎么制作亮木材质的球体
3DSMax怎么制作亮木材质的球体?3DSMax中想要设计一款亮木材质的球体,该怎么设置呢?下面我们就来看看详细的教程,需要的朋友可以参考下! 1.运行软件,选择材质编辑器图标: 3.双击拖拽出的材质 ...
- ZBrush雕刻生物小技巧
本教程主要学习如何使用ZBrush®3D图形绘制软件的工具和笔刷雕刻酷酷的生物造型,我们今天来看看在游戏.媒体和电视领域有着十几年丰富经验的3D角色艺术家Francis-Xavier Martins是 ...
- MySQL常用技能篇
写在之前的话: 之前一直在用MSSERVER,刚用MySQL时有很多的不适应.就此小结一下工作中遇到的问题和场景(用的不是很深入,供初学者参考),文中出现的局限性欢迎指出 MySQL有客户端式(SQL ...
- C语言Huffman压缩和解压
符号表结构体: struct node { // 字符串形式存储的Huffman编码 char code[MAX_CODE_LENGTH]; // 这个字符在文件中出现的次数 long count; ...
- Linux命令之bc - 浮点计算器、进制转换
用途说明 Bash内置了对整数四则运算的支持,但是并不支持浮点运算,而bc命令可以很方便的进行浮点运算,当然整数运算也不再话下.手册页上说bc是An arbitrary precision calcu ...
- dockerhub 推送镜像
登录dockerhub [root@riyimei-node1:/home] > docker login Login with your Docker ID to push and pull ...
- linux 调试相关命令
1. tail -f filename 调试时,log输出到文件,但是又想看到即时输出信息 未完待续....