这次重装系统以后,服务器的速度发生了质的飞跃!可以说CentOS在性能上是秒杀一切的存在!
先说下背景,原本4月份刚入手腾讯云服务器的时候,为了省事装了 windows server 2008 作为服务器操作系统,然而最近越来越感觉到服务器性能吃紧。因此决定,将服务器系统重装为CentOS 7.4 64位。
那么数小时的折腾之后,在经过无数次被centos虐出血之后,终于摸索出了自己安装全套环境的方法,在这里分享一下最终成果
一切都开始之前首先需要会使用vim和ssh、scp等基础命令
1、JDK1.8
首先说下坑,众所周知,自带的yum里只有openjdk,我也说不出openJDK和oracleJDK的具体使用的区别,但是我坚持还是用oracleJDK,然后直接从jdk官网找到下载,从chrome的下载任务里找到下载地址,再从服务器wget,继续失败,出现一个神奇的bug,和这位国外的兄台情况基本一样,https://serverfault.com/questions/545982/installing-jdk-on-amazon-linux-box-gives-error-open-of-html-failed-no-such-f,于是在这个国外的问答当中找到坑之所在了,不能wget从官网直接下,因为会验证你有没有点我同意,不管你点没点,后面的安装都会炸。
重点来了
所以,正确的打开方式是,先在你自己电脑下载RPM版的jdk,例如我下的是jdk-8u171-linux-x64.rpm,再用scp等方式,上传到服务器。
我用的命令是 (windows平台 使用网上下载的pscp工具来模拟scp)
pscp C:\Users\Administrator\Downloads\jdk-8u171-linux-x64.rpm root@tczmh.club:/root/
再切换到服务器,第一步 赋权
我的目录用的是/root,我先cd到root下
然后用以下命令赋最高权限给安装包
chmod -R 777 jdk-8u171-linux-x64.rpm
再用以下命令安装
rpm -ivh jdk-8u171-linux-x64.rpm
等到看到以下字样,说明安装完成,并且会自动配置环境变量
Preparing... ################################# [100%] Updating / installing... 1:jdk1.8-2000:1.8.0_171-fcs ################################# [100%] Unpacking JAR files... tools.jar... plugin.jar... javaws.jar... deploy.jar... rt.jar... jsse.jar... charsets.jar... localedata.jar...
那么最后再验证以下jdk是否安装完成
java -version
看到以下结果说明安装完成
java version "1.8.0_171" Java(TM) SE Runtime Environment (build 1.8.0_171-b11) Java HotSpot(TM) 64-Bit Server VM (build 25.171-b11, mixed mode)
2、MYSQL 5.7
mysql的坑不是一点点深了,首先centos从某个版本开始全面使用海狮DB(mariadb)来代替海豚DB(mysql),所以妄想使用yum一条龙安装的话,只能用mariadb了,当然同jdk,我也不知道mariadb和mysql到底有啥区别,反正我就是要用mysql5.7(手动滑稽)
重点来了
那么直接废话少说,我用的是csdn上的大神提供的方法,原文地址https://blog.csdn.net/csdn_979690041/article/details/78506582
这篇文章的“1.4 安装 Mysql 5.7”部分,我亲测了一次成功
下面还是复制过来
3.1 下载mysql源安装包 shell> wget http://dev.mysql.com/get/mysql57-community-release-el7-8.noarch.rpm 3.2 安装mysql源 shell> yum localinstall mysql57-community-release-el7-8.noarch.rpm 3.3 验证源安装是否成功 yum repolist enabled | grep "mysql.*-community.*" 3.4 设置默认需要安装的mysql版本(如果安装5.7可以忽略本步骤) 可以修改vim /etc/yum.repos.d/mysql-community.repo源, 改变默认安装的mysql版本。比如要安装5.6版本,将5.7源的enabled=1改成enabled=0。 然后再将5.6源的enabled=0改成enabled=1即可。 3.5 安装 yum install mysql-community-server 3.6 启动 mysql systemctl start mysqld #停止systemctl stop mysqld 3.7 查看状态 systemctl status mysqld 3.8 设置开机启动 systemctl enable mysqld systemctl daemon-reload 3.9 修改root本地登录密码 mysql安装完成之后,在/var/log/mysqld.log文件中给root生成了一个默认密码。(有时候生成的密码是特殊字符,mysql -uroot -p 会出问题,比如生成的密码 sX;qQZ.L;6Ml 那就用转义 sX\;qQZ.L\;6Ml 即可) shell>grep 'temporary password' /var/log/mysqld.log 2017-05-23T04:53:37.967825Z 1 [Note] A temporary password is generated for root@localhost: wztxYpby+2Gr 然后登录mysql进行修改: 注意 密码有策略 大小写数字和特殊字符 否则报错 shell> mysql -uroot -pwztxYpby+2Gr(可能需要重启先,因为可能会报 ERROR 2002 (HY000): Can't connect to local MySQL server through socket '/var/lib/mysql/mysql.sock' (2) ) mysql> ALTER USER 'root'@'localhost' IDENTIFIED BY 'ShangLi@2017'; 3.10 增加远程登录用 #mysql -uroot -pscLRK@DBadmin2017' GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY 'lrkADMINdb@2017' WITH GRANT OPTION; 增加开发人员使用账号 GRANT ALL PRIVILEGES ON *.* TO 'dev'@'%' IDENTIFIED BY 'ShangLi@2017' WITH GRANT OPTION; 3.11 配置编码和优化配置 `vim /etc/my.cnf` 把下面的复制 覆盖 my.cnf [client] port=3306 default-character-set=utf8 [mysqld] port=3306 character_set_server=utf8 init_connect='SET NAMES utf8' collation-server=utf8_general_ci datadir=/var/lib/mysql socket=/var/lib/mysql/mysql.sock symbolic-links=0 log-error=/var/log/mysqld.log pid-file=/var/run/mysqld/mysqld.pid #优化参数 #设置最大连接数 默认500 max_connections=1024 #临时表分配的内存 默认16M tmp_table_size=200M #定义了用户可以创建的内存表(memory table)的大小。这个值用来计算内存表的最大行数值。这个变量支持动态改变 ,默认16M max_heap_table_size=500M #一个事务,在没有提交的时候,产生的日志,记录到Cache中;等到事务提交需要提交的时候,则把日志持久化到磁盘。默认binlog_cache_size大小32K binlog_cache_size = 1M #事务隔离级别 默认 REPEATABLE-READ 总共4种 READ-UNCOMMITTED, READ-COMMITTED, REPEATABLE-READ, SERIALIZABLE transaction-isolation=REPEATABLE-READ #数据库字段名名是否区分大小写 0不区分 1 区分 lower_case_table_names = 1 #默认mysql对很多联合查询会报警,可以修改sql_mode sql_mode='STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION' 3.12重启服务器 用新端口链接 ssh 用新密码链接数据库
3、Redis 4.0.9
如果是,走到这你还没炸,那么恭喜你。
即将迎来最后一个坑,压轴大坑~~~~Redis
因为他只能通过自己编译的方式安装,这对于linux小白简直是是分分钟劝退的节奏
redis我参考的是这篇csdn https://blog.csdn.net/lc1010078424/article/details/78295482
那么还是简单讲下我最后成功的结果
下载
wget http://download.redis.io/releases/redis-4.0.9.tar.gz
赋权(其实不是很有必要,只是我的个人习惯)
chmod -R 777 redis-4.0.9.tar.gz
解压
tar -xzvf redis-4.0.9.tar.gz
赋权
chmod -R 777 redis-4.0.9
编译
cd redis-4.0.9 make
这里出现了一丢丢小情况 一堆报错
主要的关键字是 gcc: Command not found
意思就是没gcc环境
用下面这命令可以一步到位(建议以后一上手先来一遍)
yum -y install gcc automake autoconf libtool make
然后再来 make 再报错 大概内容是
zmalloc.h:50:31: fatal error: jemalloc/jemalloc.h: No such file or directory
原因是jemalloc重载了Linux下的ANSI C的malloc和free函数。解决办法:make时添加参数。命令如下
make MALLOC=libc
再直接make就过了
make
到这里编译完成 接下来要把编译结果放到一个合适的位置
mkdir -p /usr/local/redis cp src/redis-server /usr/local/redis/ cp src/redis-cli /usr/local/redis/ cp redis.conf /usr/local/redis/
随后简易配置一下
vim /usr/local/redis/redis.conf
我只改了2个地方
分别是关闭保护模式,和开启守护进程
protected-mode no daemonize yes
详细配置可以参考这篇文章 https://www.cnblogs.com/richiewlq/p/8569821.html
接下来编译开机启动 (默认应该是没这个文件,直接用vim创建一个)
vim /etc/init.d/redis
然后粘贴以下内容,前面部分参数根据需要修改
#!/bin/sh # chkconfig: 2345 80 90 # description: Start and Stop redis #PATH=/usr/local/bin:/sbin:/usr/bin:/bin #端口 REDISPORT=6379 #server路径 EXEC=/usr/local/redis/redis-server #cli路径 REDIS_CLI=/usr/local/redis/redis-cli #进程pid PIDFILE=/var/run/redis_6379.pid #配置文件路径 CONF="/usr/local/redis/redis.conf" #密码 #AUTH="123456" case "$1" in start) if [ -f $PIDFILE ] then echo "$PIDFILE exists, process is already running or crashed" else echo "Starting Redis server..." $EXEC $CONF fi if [ "$?"="0" ] then echo "Redis is running..." fi ;; stop) if [ ! -f $PIDFILE ] then echo "$PIDFILE does not exist, process is not running" else PID=$(cat $PIDFILE) echo "Stopping ..." $REDIS_CLI -p $REDISPORT SHUTDOWN while [ -x ${PIDFILE} ] do echo "Waiting for Redis to shutdown ..." sleep 1 done echo "Redis stopped" fi ;; restart|force-reload) ${0} stop ${0} start ;; *) echo "Usage: /etc/init.d/redis {start|stop|restart|force-reload}" >&2 exit 1 esac
另一个配置文件
vim /etc/rc.local
加入
service redis start
赋权
chmod -R 777 /etc/init.d/redis
基本搞定 通过以下命令测试 分别是启动 停止 和检查进程是否存在
service redis start service redis stop ps -ef|grep redis
加入redis命令软连接,方便从控制台操作redis
ln -s /usr/local/redis/redis-cli /usr/bin/redis
4、Tomcat 8.5
如果到这还没炸,那么已经成功99%了
因为和前面3个巨坑比起来,tomcat简直是白送
话说tomcat我都玩了N年了,这里基本不参考攻略了,所以可能不是最最标准的安装方案,但是我自己用够用
那么开始我的安装之旅
首先老样子 下载 这里先cd一下,是回到刚才的默认目录/root,一开始的下载都是在这里
cd wget http://mirrors.hust.edu.cn/apache/tomcat/tomcat-8/v8.5.31/bin/apache-tomcat-8.5.31.tar.gz
解压
tar apache-tomcat-8.5.31.tar.gz
改名字
mv apache-tomcat-8.5.31.tar.gz tomcat85
赋权
chmod -R 777 tomcat85
设置开机启动
vim /etc/rc.d/rc.local
加一句在最后
/root/tomcat85/bin/startup.sh start
赋权
chmod 777 /etc/rc.d/rc.local
根据自己的需求 最后去改一下server.xml配置
tomcat的使用方法见仁见智了 这里只留下一写非常常用的命令
查看控制台输出日志
cat logs/catalina.out
启动
./bin/startup.sh
停止
./bin/shutdown.sh
虚拟路径配置
<Context path="" docBase="项目名" reloadable="true"/>
另外tomcat还可以优化各种性能 下面先看错误示范
conf/server.xml
<Connector port="80" protocol="HTTP/1.1" maxThreads="1000" minProcessors="100" maxProcessors="1000" minSpareThreads="100" maxSpareThreads="1000" enableLookups="false" URIEncoding="utf-8" acceptCount="1000" connectionTimeout="20000" disableUploadTimeout="ture" redirectPort="8443" />
bin/catalina.sh
JAVA_OPTS='-Xms256m -Xmx1566m -XX:PermSize=128m -XX:MaxPermSize=512m'
刚优化完还想检查一下就发现问题了
Java HotSpot(TM) 64-Bit Server VM warning: ignoring option PermSize=128m; support was removed in 8.0 Java HotSpot(TM) 64-Bit Server VM warning: ignoring option MaxPermSize=512m; support was removed in 8.0 15-May-2018 22:37:32.292 WARNING [main] org.apache.catalina.startup.SetAllPropertiesRule.begin [SetAllPropertiesRule]{Server/Service/Connector} Setting property 'minProcessors' to '100' did not find a matching property. 15-May-2018 22:37:32.319 WARNING [main] org.apache.catalina.startup.SetAllPropertiesRule.begin [SetAllPropertiesRule]{Server/Service/Connector} Setting property 'maxProcessors' to '1000' did not find a matching property. 15-May-2018 22:37:32.319 WARNING [main] org.apache.catalina.startup.SetAllPropertiesRule.begin [SetAllPropertiesRule]{Server/Service/Connector} Setting property 'maxSpareThreads' to '1000' did not find a matching property. 15-May-2018 22:37:32.564 WARNING [main] org.apache.tomcat.util.digester.SetPropertiesRule.begin [SetPropertiesRule]{Server/Service/Engine/Host/Context} Setting property 'debug' to '0' did not find a matching property.
意思就是 tomcat8.5 jdk8 已经不支持这些参数了,设了也白设
参考文章
https://blog.csdn.net/jiangguilong2000/article/details/47975457
https://blog.csdn.net/dracotianlong/article/details/8963594
辣么 调整以后的如下
bin/catalina.sh
JAVA_OPTS='-Xms256m -Xmx1566m -XX:MetaspaceSize=128m -XX:MaxMetaspaceSize=256m'
conf/server.xml
<Connector port="80" protocol="HTTP/1.1" maxThreads="1000" enableLookups="false" URIEncoding="utf-8" acceptCount="1000" connectionTimeout="20000" disableUploadTimeout="ture" redirectPort="8443" />
到此就大功告成啦~~啦啦啦~~~


