每次新服务器搭环境各种找资料各种坑, 专门写一个记录一下。
升级gcc
自带的gcc版本太老了, 不升级后期会经常报警告升级编译器, 甚至直接报错。第一步先把编译器升级一下
下载源码
1 | $ cd /usr/local/src |
解压进入目录, 安装gcc依赖库
1 | $ tar -zxvf gcc-8.3.0.tar.gz |
执行命令后它会自动下载mpfr、gmp、mpc isl这4个库
如果执行报错:tar (child): lbzip2: no exec: no file or directory
解决方法:安装解压软件即可
1 | $ yum -y install bzip2 |
在新目录中配置、编译、安装
1 | $ mkdir build |
编译报错: flex:Command not found
解决方法: 安装flex
1 | $ yum -y install flex |
再次编译之前建议先清空build目录,不然可能会报错:error: `M4’ has changed since the previous run 解决方法: 清空build(你自己创建的)目录
1 | $ rm -rf /usr/local/src/gcc/build/* |
如果清空了目录,需要重新做配置再编译
1 | $ ../configure --prefix=/usr/local/gcc --enable-languages=c,c++ --disable- |
修改软连接后查看gcc版本
1 | $ mv /usr/bin/gcc /usr/bin/gcc_old |
或者删除之前的版本
1 | $ yum -y remove gcc |
升级python
Centos自带的python是2.0版本,需要升级到3.0以上,可以先python -V查看当前python版本。
下载Python最新软件包
1 | $ wget https://www.python.org/ftp/python/3.5.2/Python-3.5.2.tgz |
解压并编译安装
1 | $ tar -zxvf Python-3.5.2.tgz |
备份原来的旧版本python
这里一定要备份, 因为yum中python使用的语法还是2.0的,后面还需要改相关文件
1 | $ mv /usr/bin/python /usr/bin/python2.7.5 |
建立软连接到最新的python
1 | $ ln -s /usr/local/python3.5.2/bin/python3.5 /usr/bin/python |
查看python版本
1 | $ python -V |
yum用的是python2.0的语法 所以需要修改配置文件
1 | $ vim /usr/bin/yum |
解决升级到python3之后出现的bug
升级成功后再使用pip发现报错 The 'pip==9.0.1' distribution was not found
解决方法: 重新安装pip
1 | $ wget https://bootstrap.pypa.io/get-pip.py |
后续再有什么bug, 缺什么安装什么。 比如:
1 | pkg_resources.DistributionNotFound: The 'setuptools==0.9.8' distribution was not found and is required by the application |
就安装对应的包
1 | $ pip install setuptools==0.9.8 |
其他类似的都差不多解决方法
安装最新版Git
千万别用yum直接安装Git, 版本太低。自己下载源码安装
安装前要手动安装下依赖包(可使用rpm -qa | grep wget命令查看是否有安装包)
1 | $ sudo yum install -y zlib-devel perl-ExtUtils-MakeMaker |
去官网下载最新版本的git源码包
前往Git官网查看最新版本git
1 | $ wget https://mirrors.edge.kernel.org/pub/software/scm/git/git-2.9.0.tar.gz |
解压,配置,安装
1 | $ tar -zxvf git-2.9.0.tar.gz |
查看版本
1 | $ git --version |
安装nodejs
通过二进制文件安装
通过官网获取Linux二进制文件(x64)下载地址
下载, 解压文件
1 | sudo mkdir -p /usr/local/lib/nodejs |
修改配置文件 ~/.profile
1 | Nodejs |
更新配置
1 | . ~/.profile |
测试是否安装成功
1 | node -v |
安装MySQL
通过yum安装mysql
删除之前MySQL
检查MariaDB
1 | rpm -qa|grep mariadb |
可能出现结果
1 | mariadb-server-5.5.60-1.el7_5.x86_64 |
删除MariaDB
如果不存在(上面检查结果为空), 则跳过此步骤
1 | rpm -e --nodeps mariadb-server |
其实yum方式安装是可以不用删除mariadb的,安装MySQL会覆盖掉之前已存在的mariadb
检查MySQL
1 | rpm -qa|grep mysql |
删除MySQL
如果不存在(上面检查结果返回空)则跳过步骤
1 | rpm -e --nodeps xxx |
添加MySQL到Yum Repository
查看系统版本
1 | cat /etc/redhat-release |
根据系统到官网查看下载页
1 | wget https://dev.mysql.com/get/mysql80-community-release-el7-3.noarch.rpm |
安装MySQL源
1 | sudo rpm -Uvh mysql80-community-release-el7-3.noarch.rpm |
检查是否安装成功
执行成功后会在/etc/yum.repos.d/目录下生成两个repo文件mysql-community.repo及mysql-community-source.repo
并且通过yum repolist可以看到mysql相关资源
1 | yum repolist enabled | grep "mysql.*-community.*" |
结果类似
1 | !mysql-connectors-community/x86_64 MySQL Connectors Community 108 |
选择MySQL版本
使用MySQL Yum Repository安装MySQL, 默认会选择当前最新的稳定版本. 例如通过上面的MySQL源进行安装的话, 默认安装会选择MySQL 8.0版本, 如果就是想安装该版本, 可以直接跳过此步骤.
如果不是, 比如选择安装MySQL5.7版本, 就需要切换一下版本
查看当前MySQL Yum Repository中所以MySQL版本(每个版本在不同的子仓库中)
1 | yum repolist all | grep mysql |
切换版本
1 | sudo yum-config-manager --disable mysql80-community |
检查当前启用的MySQL仓库
1 | yum repolist enabled | grep mysql |
安装MySQL
1 | sudo yum install mysql-community-server |
该命令会安装MySQL服务器 (mysql-community-server) 及其所需的依赖、相关组件,包括mysql-community-client、mysql-community-common、mysql-community-libs等
启动MySQL
启动
1 | sudo systemctl start mysqld.service |
查看状态
1 | sudo systemctl status mysqld.service |
停止
1 | sudo systemctl stop mysqld.service |
重启
1 | sudo systemctl restart mysqld.service |
修改密码
获取初始密码
MySQL第一次启动后会创建超级管理员账号root@localhost, 初始密码存储在日志文件中:
1 | sudo grep 'temporary password' /var/log/mysqld.log |
修改默认密码
1 | mysql -uroot -p |
1 | mysql> ALTER USER 'root'@'localhost' IDENTIFIED BY '123456'; |
如果出现报错
1 | ERROR 1819 (HY000): Your password does not satisfy the current policy requirements |
是因为密码太简单了. 解决方法如下:
- 使用复杂密码,MySQL默认的密码策略是要包含数字、字母及特殊字符;
- 如果只是测试用,不想用那么复杂的密码,可以修改默认策略,即
validate_password_policy(以及validate_password_length等相关参数), 使其支持简单密码的设定,具体方法可以自行百度 - 修改配置文件
/etc/my.cnf, 添加validate_password=OFF, 保存并重启MySQL
允许root远程访问
1 | mysql > GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY '123456' WITH GRANT OPTION; |
设置编码为utf8
查看编码
1 | mysql> SHOW VARIABLES LIKE 'character%'; |
设置编码
编辑/etc/my.cnf,[mysqld]节点增加以下代码:
1 | [mysqld] |
设置开机启动
1 | systemctl enable mysqld |
安装Nginx
环境安装
gcc安装
安装 nginx 需要先将官网下载的源码进行编译,编译依赖 gcc 环境,如果没有 gcc 环境,则需要安装:
1 | yum install gcc-c++ |
PCRE pcre-devel 安装
PCRE(Perl Compatible Regular Expressions) 是一个Perl库,包括 perl 兼容的正则表达式库。nginx 的 http 模块使用 pcre 来解析正则表达式,所以需要在 linux 上安装 pcre 库,pcre-devel 是使用 pcre 开发的一个二次开发库。nginx也需要此库。命令:
1 | yum install -y pcre pcre-devel |
zlib安装
zlib 库提供了很多种压缩和解压缩的方式, nginx 使用 zlib 对 http 包的内容进行 gzip ,所以需要在 Centos 上安装 zlib 库。
1 | yum install -y zlib zlib-devel |
OpenSSL安装
OpenSSL 是一个强大的安全套接字层密码库,囊括主要的密码算法、常用的密钥和证书封装管理功能及 SSL 协议,并提供丰富的应用程序供测试或其它目的使用。
nginx 不仅支持 http 协议,还支持 https(即在ssl协议上传输http),所以需要在 Centos 安装 OpenSSL 库。
1 | yum install -y openssl openssl-devel |
下载
官网右键获取下载地址

使用wget下载
1 | wget -c https://nginx.org/download/nginx-1.18.0.tar.gz |
解压
1 | tar -zxvf nginx-1.18.0.tar.gz |
配置
其实一般需求下不需要去配置相关东西,默认就可以了。当然,如果自己配置目录也是可以的。
使用默认配置
1 | ./configure |
自定义配置(不推荐)
1 | ./configure \ |
注:将临时文件目录指定为/var/temp/nginx,需要在/var下创建temp及nginx目录
编译安装
1 | make |
查看安装路径
1 | whereis nginx |
启动 停止nginx
1 | cd /usr/local/nginx/sbin/ |
开机自启动
即在rc.local增加启动代码就可以了
1 | vim /etc/rc.local |
增加一行 /usr/local/nginx/sbin/nginx
设置执行权限:
1 | chmod 755 rc.local |
总结
环境安装编译出差无非是缺少相关的环境,根据提示安装即可。 刚安装的新CentOS系统需要安装的环境暂时就这几个,按照顺序装一般没啥问题。