基础软件的简单安装。

如果 CentOS 服务器是全新的,请先

yum install epel-release
yum update
yum upgrade

MySQL

install

由于我的服务器是 CentOS7.3,故采用MySQL yum repo,找到对应的操作系统版本后,通过 wget 下载到服务器【请根据实际情况选择对应的版本】

wget https://dev.mysql.com/get/mysql57-community-release-el7-11.noarch.rpm
rpm -ivh mysql57-community-release-el7-11.noarch.rpm  // 主要是安装mysql源
yum install mysql-server  // 下子过程中可能需要很长的时间
systemctl start mysqld.service // 启动服务器

config

现在不要尝试通过任何方式登录 MySQL,因为我当前使用的 MySQL 的版本里,root 用户的密码将会在 mysqld 服务器初次启动后随机生成一个

cat /var/log/mysqld.log | grep 'temporary password' // 查询出生成的随机密码
    2018-01-04T16:15:32.319012Z 1 [Note] A temporary password is generated for [email protected]: cNC4Qy?)=,;B

mysql_secure_intallation  // 安全配置,根据实际情况自行配置

这里请注意:如果没有在 my.cnf 中配置 [mysqld] validate_password_policy=LOW 的话,建议直接粘贴原密码,等后续登录进入 root 后再更改秘密。

vim /etc/my.cnf

配置 MySQL 服务器和客户端的字符集【原有的配置不能删】

[mysqld]
character-set-server=utf8

[client]
default-character-set=utf8

[mysql]
default-character-set=utf8

重启服务器

systemctl restart mysqld.service

以 mysql 的 root 用户登录

mysql -u root -p

mysql> SET GLOBAL validate_password_policy=LOW; // 如果密码足够强可以不用设置这一步
mysql> use mysql;
mysql> update user set authentication_string=PASSWORD('******') where User='root';  ******部分为自己的密码
mysql> flush privileges;
mysql> create schema [db_name] DEFAULT CHARACTER SET utf8 COLLATE utf8_general_ci;  // 创建数据库
mysql> create user '[db_user]'@'%' identified by '******'; // 创建用户,******部分为自己的密码
mysql> grant all privileges on [db_name].* to '[db_user]'@'%';
mysql> flush privileges;

至此,MySQL 的所有配置到此结束。关于数据库的表的创建以及初始数据的插入可根据实际情况进行操作。

Redis

Installation1

如果需要更高稳定版,可以前往 https://redis.io/download,找到 install 部分进行安装。

Download, extract and compile Redis with:

wget http://download.redis.io/releases/redis-4.0.6.tar.gz
tar xzf redis-4.0.6.tar.gz
cd redis-4.0.6
make

The binaries that are now compiled are available in the src directory. Run Redis with:

src/redis-server

You can interact with Redis using the built-in client:

src/redis-cli
redis> set foo bar
OK
redis> get foo
"bar"

Installation2

通过 yum 源进行安装

yum install redis // 安装redis

config

根据需要打开/etc/redis.conf配置文件进行配置。这里我需要配置 redis 的密码,只需要添加requirepass ******即可。

systemctl start redis.service // 启动redis
redis-cli -a ******   // 提供认证密码登录redis,如果没有密码直接redis-cli即可
127.0.0.1:6379> ping
PONG
127.0.0.1:6379> keys *
(empty list or set)
127.0.0.1:6379>

由于 redis 默认关闭了远程访问,只需要注释 bind 127.0.0.1 或者更改 IP。

# ~~~ WARNING ~~~ If the computer running Redis is directly exposed to the
# internet, binding to all the interfaces is dangerous and will expose the
# instance to everybody on the internet. So by default we uncomment the
# following bind directive, that will force Redis to listen only into
# the IPv4 lookback interface address (this means Redis will be able to
# accept connections only from clients running into the same computer it
# is running).
#
# IF YOU ARE SURE YOU WANT YOUR INSTANCE TO LISTEN TO ALL THE INTERFACES
# JUST COMMENT THE FOLLOWING LINE.
# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
bind 127.0.0.1

重启 redis 服务后生效systemctl restart redis.service,至此 redis 配置完毕。

vsftp

install

yum install vsftpd

config

接下来需要配置 FTP

vim /etc/vsftpd/vsftpd.conf

添加或更改以下内容:

anonymous_enable=NO
chroot_local_user=YES
chroot_list_enable=YES
# Customization
user_sub_token=$USER
local_root=/home/$USER/ftp
userlist_deny=NO
userlist_enable=YES
userlist_file=/etc/vsftpd/allowed_users

创建一个用户

 useradd -s /sbin/nologin  [user_name]
 cd /home/oj
 mkdir -p ftp/files
 chown -R oj:oj ftp

/etc/vsftpd/添加文件allowed_users,并添加[user_name]。如果提示 cannot read /etc/vsftpd/chroot_list,请创建该文件并将[user_name]写入。至此,vsftpd 配置完毕。

RabbitMQ

在安装 RabbitMQ 之前,需要先安装 erlang,参照官网进行安装。这里我将安装 Zero dependency Erlang RPM(仅仅是为了运行 RabbitMQ)。

记得一定得安装高版本的erlang

vim /etc/yum.repos.d/rabbitmq-erlang.repo

添加以下内容【仅仅针对 CentOS7,其他的请参考erlang的链接】:

[rabbitmq-erlang]
name=rabbitmq-erlang
baseurl=https://dl.bintray.com/rabbitmq/rpm/erlang/20/el/7
gpgcheck=1
gpgkey=https://www.rabbitmq.com/rabbitmq-release-signing-key.asc
repo_gpgcheck=0
enabled=1

安装 erlang

yum install erlang

安装 RabbitMQ

wget https://dl.bintray.com/rabbitmq/all/rabbitmq-server/3.7.2/rabbitmq-server-3.7.2-1.el7.noarch.rpm // 下载RabbitMQ
rpm --import https://dl.bintray.com/rabbitmq/Keys/rabbitmq-release-signing-key.asc
yum install rabbitmq-server-3.7.2-1.el7.noarch.rpm    // 安装RabbitMQ

systemctl start rabbitmq-server.service   // 启动RabbitMQ

配置 RabbitMQ。配置方式有多种,可以用management-plugin,也可以使用rabbitmqctl进行配置。为便于配置,我将采用 command 方式进行配置

rabbitmqctl -q list_users // 查询出所有的用户
rabbitmqctl --help    // 帮助

rabbitmqctl add_user [user_name] ******  // 创建一个用户
rabbitmqctl add_vhost onlinejudge // 创建虚拟节点
rabbitmqctl set_user_tags [user_name] [user_role] // 设置用户标签,请根据 --help中的提示进行修改
rabbitmqctl set_permissions -p [vhost_name] [user_name] '.*' '.*' '.*'    // 设置某用户和某节点的权限
rabbitmqctl list_user_permissions [user_name]  // 查看用户权限

Last

最后查看一下所有的软件是否都正常运行了。

systemctl status redis.service
systemctl status vsftpd.service
systemctl status rabbitmq-server.service

同时也可以将所有的软件都设置为开机自启

systemctl enable redis.service
systemctl enable vsftpd.service
systemctl enable rabbitmq-server.service

至此,相关的配置详情:

#portuserpass
MySQL3306ojopen*@*
Redis6379-open*@*
RabbitMQ5672ojopen*@*
vsftp21ojopen*@*