再一次centos7下安装tomcat、jdk、nginx、redis、docker与配置各自的自启动

注:以下的所有配置,如需外部访问,都需要使用防火墙开启对应端口,开启端口指令如下:

firewall-cmd –zone=public –add-port=***/tcp –permanent (***则是端口)

然后重启防火墙

1)查看是否有自带jdk

java -version:如果有则删除,没有则进行第2)步

查看java文件:rpm -qa | grep java

进行删除:rpm -e –nodeps ****(***则是上面查出来的文件名)(注:noarch文件可以不用删除)

2)安装jdk后,编辑环境变量配置文件:vim /etc/profile,在该文件中添加java的环境变量,如下:

export JAVA_HOME=/usr/local/jdk/jdk1.8.0_201 export CLASSPATH=.:$JAVA_HOME/jre/lib/rt.jar:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar export PATH=$PATH:$JAVA_HOME/bin
export JAVA_HOME=/usr/local/jdk/jdk1.8.0_201 export CLASSPATH=.:$JAVA_HOME/jre/lib/rt.jar:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar export PATH=$PATH:$JAVA_HOME/bin
export JAVA_HOME=/usr/local/jdk/jdk1.8.0_201 export CLASSPATH=.:$JAVA_HOME/jre/lib/rt.jar:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar export PATH=$PATH:$JAVA_HOME/bin

3)使环境变量文件立即生效

source /etc/profile

查看是否安装成功:java -version

1)我pull的docker.io/mysql:5.6版本,然后创建三个/data/mysql/data,/data/mysql/conf,/data/mysql/logs/文件夹,用于mysql的文件挂载,执行如下指令运行mysql容器:

docker run –privileged=true -p 3306:3306 –name mysql57-1 -v /data/mysql/data/:/var/lib/mysql -v /data/mysql/conf/:/etc/mysql/conf.d -v /data/mysql/logs/:/logs -e MYSQL_ROOT_PASSWORD=12345678 -d mysql:5.7

–privileged=true:加上这个最保险,之前遇见不加这个,运行不成功,log中显示没有权限

1)将redis.conf,redis-server,redis-cli复制到新建的redis文件中,修改redis.conf文件的以下参数:
注释掉 bind 127.0.0.1

将 protected-mode 修改为 no,不然外部无法连接

将 daemonize 修改为yes,后台运行

另外我将dump文件的目录修改了一下:dir /usr/local/redis/redis/dump/

2)使用复制出来的redis.conf文件启动,上面的修改也是改文件

1)nginx的操作有(到sbin目录下):

./nginx :启动nginx

./nginx -s stop:停止nginx

./nginx -s reopen:重启nginx

2)如果要使用nginx的反向代理,可以使用SwitchHosts软件修改域名映射(这个域名可以随便定义,不过不要定义互联网已经使用过的,因为这个域名只能本地解析)如:192.168.**.** www.123xx.com即可实现域名与本地ip映射,经过映射后,即可使用域名:8080访问tomcat

3)如果想要使用域名直接访问tomcat,就需要使用nginx的反向代理即可

1)docker设置为开机启动:systemctl eable docker.service

2)将docker中的容器设置为开机启动:docker update –restart=always ***(容器id)

3)进入/usr/lib/systemd/system/ 这个目录

4)添加my-nginx.service文件,内容如下:

[Unit] Description=nginx After=network.target #在什么服务之后运行 [Service] Type=simple PIDFile=/usr/local/nginx/logs/nginx.pid #管道文件,绝对路劲 ExecStart=/usr/local/nginx/sbin/nginx #开启指令 ExecStop=/usr/local/nginx/sbin/nginx -s stop #停止指令 ExecReload= /usr/local/nginx/sbin/nginx -s reload #重启 PrivateTmp=true [Install] WantedBy=multi-user.target #这个很重要,这样设置好就行
[Unit] Description=nginx After=network.target #在什么服务之后运行 [Service] Type=simple PIDFile=/usr/local/nginx/logs/nginx.pid #管道文件,绝对路劲 ExecStart=/usr/local/nginx/sbin/nginx #开启指令 ExecStop=/usr/local/nginx/sbin/nginx -s stop #停止指令 ExecReload= /usr/local/nginx/sbin/nginx -s reload #重启 PrivateTmp=true [Install] WantedBy=multi-user.target #这个很重要,这样设置好就行
[Unit] Description=nginx After=network.target #在什么服务之后运行 [Service] Type=simple PIDFile=/usr/local/nginx/logs/nginx.pid #管道文件,绝对路劲 ExecStart=/usr/local/nginx/sbin/nginx #开启指令 ExecStop=/usr/local/nginx/sbin/nginx -s stop #停止指令 ExecReload= /usr/local/nginx/sbin/nginx -s reload #重启 PrivateTmp=true [Install] WantedBy=multi-user.target #这个很重要,这样设置好就行

①如果nginx在运行则执行:systemctl restart my-nginx.service

②如果成功,说明配置没有问题,再执行:systemctl enable my-nginx.service 这是将ningx加入开机启动中

③如果①失败了,则systemctl status my-nginx.service查看失败原因

④如果①的时候,服务没有运行,直接systemctl start my-nginx.service即可

5)添加my-redis.service,内容如下:

[Unit] Description=redis After=syslog.terget After=network.target [Service] Type=simple PIDFile=/var/run/redis_6379.pid ExecStart=/usr/local/redis/redis/redis-server /usr/local/redis/redis/redis.conf #以我们复制后的那个文件为启动的配置文件 ExecStop=/usr/local/redis/redis/redis-cli shutdown Restart=always [Install] WantedBy=multi-user.target
[Unit] Description=redis After=syslog.terget After=network.target [Service] Type=simple PIDFile=/var/run/redis_6379.pid ExecStart=/usr/local/redis/redis/redis-server /usr/local/redis/redis/redis.conf #以我们复制后的那个文件为启动的配置文件 ExecStop=/usr/local/redis/redis/redis-cli shutdown Restart=always [Install] WantedBy=multi-user.target
[Unit] Description=redis After=syslog.terget After=network.target [Service] Type=simple PIDFile=/var/run/redis_6379.pid ExecStart=/usr/local/redis/redis/redis-server /usr/local/redis/redis/redis.conf #以我们复制后的那个文件为启动的配置文件 ExecStop=/usr/local/redis/redis/redis-cli shutdown Restart=always [Install] WantedBy=multi-user.target

后续执行同4)

6)添加my-tomcat.service

[Unit] Description=tomcat After=docker.service After=syslog.target network.target remote-fs.target nss-lookup.target [Service] Type=forking # 此处之前添加了一个PIDFile,但是发现没有他也可以 ExecStart=/usr/local/tomcat/apache-tomcat-7.0.57/bin/startup.sh ExecReload=/bin/kill -s HUP $MAINPID ExecStop=/bin/kill -s QUIT $MAINPID PrivateTmp=true [Install] WantedBy=multi-user.target
[Unit] Description=tomcat After=docker.service After=syslog.target network.target remote-fs.target nss-lookup.target [Service] Type=forking # 此处之前添加了一个PIDFile,但是发现没有他也可以 ExecStart=/usr/local/tomcat/apache-tomcat-7.0.57/bin/startup.sh ExecReload=/bin/kill -s HUP $MAINPID ExecStop=/bin/kill -s QUIT $MAINPID PrivateTmp=true [Install] WantedBy=multi-user.target
[Unit] Description=tomcat After=docker.service After=syslog.target network.target remote-fs.target nss-lookup.target [Service] Type=forking # 此处之前添加了一个PIDFile,但是发现没有他也可以 ExecStart=/usr/local/tomcat/apache-tomcat-7.0.57/bin/startup.sh ExecReload=/bin/kill -s HUP $MAINPID ExecStop=/bin/kill -s QUIT $MAINPID PrivateTmp=true [Install] WantedBy=multi-user.target

另外好像还需要在 tomcat的bin目录下的setclasspath.sh和catalina.sh文件中添加如下代码:

export JAVA_HOME="/usr/local/jdk/jdk1.8.0_201"
export JAVA_HOME="/usr/local/jdk/jdk1.8.0_201"
export JAVA_HOME="/usr/local/jdk/jdk1.8.0_201"

后续命令同上

最后重启reboot虚拟机试一下是否成功

原文链接:https://blog.csdn.net/qq_37978623/article/details/99690012

© 版权声明
THE END
喜欢就支持一下吧
点赞0 分享