Linux-Centos7

win10远程桌面连接阿里云centos7.3

使用secureCRT连接到自己的服务器

安装x windows

yum groupinstall -y "X Window System"

查看已安装软件

yum grouplist

安装桌面

yum groupinstall "GNOME Desktop" "Graphical Administration Tools"

设置系统以图像化界面启动

ln -sf /lib/systemd/system/runlevel5.target /etc/systemd/system/default.target

安装xrdp

yum install -y xrdp

安装vnc server

yum install tigervnc tigervnc-server

启动vncserver,设置开机自启

systemctl start xrdp
systemctl enable xrdp
systemctl status xrdp.service   
ss -antup|grep xrdp

重启服务器

reboot

window远程桌面连接

win+r 
mstsc

输入服务公网ip

注意的是服务器要配置安全组规则,开放端口3389

在阿里云实例列表左侧菜单找到网络与安全,打开安全组,右侧选择配置规则

右上角快速创建规则

自定义端口

3389/3389

授权对象

0.0.0.0/0

可以将一些常见的端口配置进去,在快速创建规则时可以将常用端口打上勾

另外今后想要访问服务器的某个端口时,先要在服务器开启端口,再在阿里云安全组规则,开放端口

服务器开启端口

centos7.x用firewall打开80端口

  1. 关闭与开启防火墙

    启动:systemctl start firewalld
    
    关闭: systemctl stop firewalld
    
  2. 查看防火墙是否开启的状态,以及开放端口的情况

    systemctl status firewalld.service
    
    firewall-cmd --list-all 
    
  3. 通过以下命令开放http 80 端口

    firewall-cmd  --add-port=80/tcp --permanent
    

    命令末尾的–permanent表示用久有效,不加这句的话重启后刚才开放的端口就又失效了

  4. 然后重启防火墙:

    sudo firewall-cmd --reload
    
  5. 再次查看端口的开放情况:

     firewall-cmd --list-all
    

    ports:里出现了 80 端口

然后再阿里云上添加安全组

在window上配置别名

打开C: \Windows \System32\drivers\etc \hosts

追加:

公网ip  别名

x.x.x.x  myCentos7

今后可以使用别名(myCentos7)代替公网ip

可以在服务器上安装jdk,部署mysql,部署一些小型项目

secureCRT远程连接服务器

默认使用的ssh端口是22,如果修改了端口需要更换端口连接服务器

Eclipse发布项目到github

eclipse配置git信息

window->preferences->Team->Git->Configuration->UserSettings–》点击AddEntry…

添加key(user.name)和value(自己的github名称)

点击AddEntry…

添加key(user.email)和value(自己注册github的邮箱)

也可以直接点击open在文件中设置

配置ssh

General–》Network connections–》ssh2

选择本地的.ssh文件夹

创建本地git仓库

右键项目–》Team–》share Project

点击 Use or create repository xxxxx

点击create Repository

向本地仓库提交项目,填写 Commit信息

右击项目->Team->Commit…

在unstaged Changes中选中要提交的东西,右击add to index (或直接右击项目–》team–》add to index) commit

github创建仓库

将本地仓库项目内容推送到远程仓库(github)

右击项目->Team->remote->push

URL填写git仓库ssh地址(或http)

输入用户名密码

选择master分支–》add Spec

next–》finish

commit and push或commit的区别

commit按钮:不能单独的Push某一个文件,只能Push整个项目

commit and push可以单独Push某一个文件

部署tomcat发布项目

参考博客

cd /app

mkdir -p tools

cd tools/

wget http://mirrors.tuna.tsinghua.edu.cn/apache/tomcat/tomcat-9/v9.0.31/bin/apache-tomcat-9.0.31.tar.gz

tar -zxvf apache-tomcat-9.0.31.tar.gz

mv apache-tomcat-9.0.31 tomcat9.0.31/
vim /etc/profile

追加

 CATALINA_HOME=/app/tools/tomcat9.0.31
 
 CATALINA_BASE=/app/tools/tomcat9.0.31
 
 PATH=$PATH:$CATALINA_BASE/bin
 
 export PATH CATALINA_BASE
cd /app/tools/tomcat9.0.31/conf

vi server.xml

修改编码、端口

<Connector port="80" protocol="HTTP/1.1" connectionTimeout="20000" redirectPort="8443" URIEncoding="UTF-8" />
cd ../bin/

vi catalina.sh

在 # OS specific support. 前面加入如下代码:

JAVA_HOME=/usr/java/jdk1.8.0_231-amd64
JRE_HOME=$JAVA_HOME/jre

启动

./startup.sh

将 tomcat9 加入到系统服务列表中:

cd /etc/init.d

vi tomcat9

添加内容

 #tomcat config start - 2019-01-15

  #!/bin/bash
   # description: Tomcat Start Stop Restart
   # processname: tomcat9
   # chkconfig: 2345 20 80
   JAVA_HOME=//usr/java/jdk1.8.0_231-amd64/
   export JAVA_HOME
   PATH=$JAVA_HOME/bin:$PATH
   export PATH
   CATALINA_HOME=/app/tools/tomcat9.0.31/

   case $1 in
   start)
     sh $CATALINA_HOME/bin/startup.sh
   ;;
   stop)
     sh $CATALINA_HOME/bin/shutdown.sh
   ;;
   restart)
     sh $CATALINA_HOME/bin/shutdown.sh
     sh $CATALINA_HOME/bin/startup.sh
   ;;
   esac
   exit 0

   #chmod 755 tomcat
   #chkconfig --add tomcat
   #chkconfig --level 2345 tomcat on
   #chkconfig --list tomcat

  # tomcat config end - 2019-01-15
chmod +x tomcat9

chkconfig --add tomcat9

chkconfig --list

关闭 tomcat9 服务:

service tomcat9 stop

启动 tomcat9 服务:

service tomcat9 start

重启 tomcat9 服务:

 service tomcat9 restart

部署项目

将项目打成war包

将war包复制到webapps下

打开tomcat配置文件,添加虚拟路径

<Context path="/LostSomething" docBase="LostSomething.war" debug="0" privileged="true" reloadable="true"/>

<Context docBase="/app/tools/upload" path="/LostSomething/upload" reloadable="true"/>

启动tomcat

service tomcat9 start

安装RabbitMQ3.6.1

参考博客

cd /app

mkdir -p rabbitmq

cd rabbitmq/

yum -y install gcc glibc-devel make ncurses-devel openssl-devel xmlto perl wget

wget http://www.erlang.org/download/otp_src_18.3.tar.gz


tar -xzvf otp_src_18.3.tar.gz

cd otp_src_18.3/

./configure --prefix=/usr/local/erlang

make && make install

vi /etc/profile
#set erlang environment
ERL_HOME=/usr/local/erlang
PATH=$ERL_HOME/bin:$PATH
export ERL_HOME PATH
source /etc/profile

erl     //测试

cd /app/rabbitmq

wget http://www.rabbitmq.com/releases/rabbitmq-server/v3.6.1/rabbitmq-server-generic-unix-3.6.1.tar.xz

xz -d rabbitmq-server-generic-unix-3.6.1.tar.xz

tar -xvf rabbitmq-server-generic-unix-3.6.1.tar

vi /etc/profile
#set rabbitmq environment
export PATH=$PATH:/app/rabbitmq/rabbitmq/sbin
source /etc/profile

rabbitmq-server -detached       //启动rabbitmq,-detached代表后台守护进程方式启动。

rabbitmqctl status

mkdir /etc/rabbitmq

rabbitmq-plugins enable rabbitmq_management

firewall-cmd --permanent --add-port=15672/tcp

firewall-cmd --permanent --add-port=5672/tcp

systemctl restart firewalld.service


rabbitmqctl add_user superrd superrd  //添加用户,后面两个参数分别是用户名和密码,我这都用superrd了。
rabbitmqctl set_permissions -p / superrd ".*" ".*" ".*"  //添加权限
rabbitmqctl set_user_tags superrd administrator  //修改用户角色
启动服务:rabbitmq-server -detached【 /usr/local/rabbitmq/sbin/rabbitmq-server  -detached 】
查看状态:rabbitmqctl status【 /usr/local/rabbitmq/sbin/rabbitmqctl status  】
关闭服务:rabbitmqctl stop【 /usr/local/rabbitmq/sbin/rabbitmqctl stop  】
列出角色:rabbitmqctl list_users

安装docker

uname -r  查看内核版本  要大于3.10

yum install -y yum-utils device-mapper-persistent-data lvm2


yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo

显示

repo saved to /etc/yum.repos.d/docker-ce.repo


yum install -y docker-ce


systemctl start docker

vim /etc/docker/daemon.json

{
  "registry-mirrors": ["https://br10hqrl.mirror.aliyuncs.com"]
}
systemctl daemon-reload && systemctl restart docker

解决zip文件解压中文乱码

安装p7zip

yum install -y p7zip*

解压文件

7za x file.zip

安装convmv

yum -y install convmv 

进入中文乱码目录

convmv -r -f utf8 -t iso88591 * --notest --nosmart && convmv -r -f gbk -t utf8 * --notest --nosmart

Docker

Docker下软件的安装和配置

MySQL

docker pull mysql

docker run -p 3306:3306 --name mysql -e MYSQL_ROOT_PASSWORD=1111111 -d mysql 

docker update --restart=always s2d1f
docker ps
docker exec -it 7bd2036d200a /bin/bash

mysql -uroot -p
GRANT ALL ON *.* TO 'root'@'%';

flush privileges;

ALTER USER 'root'@'localhost' IDENTIFIED BY 'password' PASSWORD EXPIRE NEVER;

ALTER USER 'root'@'%' IDENTIFIED WITH mysql_native_password BY '123456';

flush privileges;

Redis

Docker 安装 Redis 单机模式

docker pull redis:latest

mkdir /app/docker_redis
cd /app/docker_redis
wget http://download.redis.io/redis-stable/redis.conf

vi redis.conf

docker run -p 6379:6379 --name redis -v /app/docker_redis/redis.conf:/etc/redis/redis.conf -v /app/docker_redis/data:/data -d redis redis-server /etc/redis/redis.conf --appendonly yes --requirepass 111111 

docker update --restart=always 513f

docker ps

Rabbit MQ

docker 安装rabbitMQ

docker pull rabbitmq

docker run -d --name rabbitmq -p 5672:5672 -p 15672:15672 -v `pwd`/data:/var/lib/rabbitmq --hostname myRabbit -e RABBITMQ_DEFAULT_VHOST=my_vhost -e RABBITMQ_DEFAULT_USER=admin -e RABBITMQ_DEFAULT_PASS=admin 7471fb821b97 

docker update --restart=always 27c1sdfsf

docker ps
docker exec -it rabbitmq rabbitmq-plugins enable rabbitmq_management 

可能再rabbitmq服务启动后,springboot连接不上rabbitmq服务,这是因为admin用户默认Can access virtual hosts 设置的是my_vhost,导致了使用该用户连接不上,需要更改Virtual Hosts 为/或其他的地址

报错异常

SimpleMessageListenerContainer : Failed to check/redeclare auto-delete queue

22:36:25.698 [http-nio-8080-exec-3] ERROR m.MyUrlDecisionManager - [decide,47] - 用户还没有登录
22:36:42.430 [AMQP Connection 192.168.2.150:5672] ERROR c.r.c.i.ForgivingExceptionHandler - [log,119] - An unexpected connection driver error occured
java.net.SocketException: socket closed
	at java.net.SocketInputStream.socketRead0(Native Method)
	at java.net.SocketInputStream.socketRead(SocketInputStream.java:116)
	at java.net.SocketInputStream.read(SocketInputStream.java:170)
	at java.net.SocketInputStream.read(SocketInputStream.java:141)
	at java.io.BufferedInputStream.fill(BufferedInputStream.java:246)
	at java.io.BufferedInputStream.read(BufferedInputStream.java:265)
	at java.io.DataInputStream.readUnsignedByte(DataInputStream.java:288)
	at com.rabbitmq.client.impl.Frame.readFrom(Frame.java:91)
	at com.rabbitmq.client.impl.SocketFrameHandler.readFrame(SocketFrameHandler.java:184)
	at com.rabbitmq.client.impl.AMQConnection$MainLoop.run(AMQConnection.java:598)
	at java.lang.Thread.run(Thread.java:745)