欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  科技

Linux 部署项目经验总结

程序员文章站 2022-10-31 16:14:41
【通用命令】 1.创建文件夹 mkdir -p xxx 2.解压包 tar -zxvf xxxx.tar.gz 3.缩文件 tar zcvf 压缩包名称.tar.gz 要压缩的文件 4.动命令 mv 文件 移动到的位置 5添加服务 chkconfig --ad 6赋权 chmod -R 777 xx ......

 【通用命令】
   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  
  【此步骤可能会引发错误如下
  Linux 部署项目经验总结

处理方案: 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 的起始范围。

Linux 部署项目经验总结

      2、虚拟机设置
       设置虚拟机为host-only模式。
Linux 部署项目经验总结

      3、网卡配置设置
       开机启动系统,然后设置网卡文件。
Linux 部署项目经验总结

 



      4、测试通信
       保存退出,然后重启网卡,利用远程工具测试能否与主机通信。
Linux 部署项目经验总结

 

over~

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

写在最后:

第一次写博客,可能会有些排版或者逻辑方面有疏忽或者错漏,希望各位大佬能不吝指教,万分感谢~