[CentOS 8部署本地Redmine教程]

应用:MySQL + apache + Passenger + Ruby + Redmine

安装MYSQL8.0

使用最新的包管理器安装MySQL

开启启动
安装完成后,运行以下命令来启动MySQL服务并使它在启动时自动启动:


要检查MySQL服务器是否正在运行,请输入

添加密码及安全设置
运行mysql_secure_installation脚本,该脚本执行一些与安全性相关的操作并设置MySQL根密码:

步骤如下:
1.要求你配置VALIDATE PASSWORD component(验证密码组件): 输入y ,回车进入该配
选择密码验证策略等级, 我这里选择0 low),回车
输入新密码两次
确认是否继续使用提供的密码?输入y ,回车
移除匿名用户? 输入y ,回车
不允许root远程登陆? 我这里需要远程登陆,所以输入n ,回车

除test数据库? 输入y ,回车
重新载入权限表? 输入y ,回车


配置远程登陆#
如果需要设置root账户远程登陆,上一步骤中,不允许root远程登陆?这一步需要设为n
接下来本机登录MySQL,将root用户的host字段设为'%',意为接受root所有IP地址的登录请求:
本机登录MySQL:

 

 回车后即可登录,接下来终端变成了mysql>开头:

 接着继续执行mysql语句,将将root用户的host字段设为'%'


设置完成后输入exit退出mysql,回到终端shell界面,接着开启系统防火墙的3306端口:

关闭MySQL主机查询dns
MySQL会反向解析远程连接地址的dns记录,如果MySQL主机无法连接外网,则dns可能无法解析成功,导致第一次连接MySQL速度很慢,所以在配置中可以关闭该功能。
参考文档
打开/etc/my.cnf文件,添加以下配置:


重启服务#

本机测试安装后,MySQL8.0默认已经是utf8mb4字符集,所以字符集不再修改

#创建一个 MySQL数据库
Redmine 支持MySQL/MariaDB, Microsoft SQL Server, SQLite 3, PostgreSQL。我们将会选择 MariaDB 作为数据库后端。
root用户登录,执行交互操作

[root@linuxcool ~]# mysql
mysql> CREATE USER `redmine`@`localhost` IDENTIFIED WITH mysql_native_password BY '
strong-password' PASSWORD EXPIRE DEFAULT;

mysql> CREATE DATABASE redmine CHARACTER SET 'utf8' COLLATE 'utf8_unicode_ci';
mysql> GRANT ALL ON redmine.* TO 'redmine'@'localhost' IDENTIFIED BY 'strong-password';
mysql> GRANT SELECT, LOCK TABLES, INSERT, UPDATE, DELETE, CREATE, DROP, INDEX, ALTER ON `redmine`.* TO 'redmine'@'localhost';
mysql> flush privileges;
mysql>select user,host,authentication_string from mysql.user;
mysql> exit;

#安装Passenger, Apache and Ruby
Passenger 是一个很快速,轻量的网络应用服务器,适用于Ruby, Node.js, and Python,它还可以与Apache Nginx集成。
我们将会安装 Passenger 作为一个 Apache 模块。
启用 EPEL repository:

sudo dnf install epel-release
sudo dnf config-manager --enable epel

一旦源被启用,更新软件包列表,并且安装 RubyApache Passenger:
sudo dnf install httpd mod_passenger passenger passenger-devel ruby

开启 Apache 服务并且启用开机启动:
sudo systemctl enable httpd --now

#创建新系统用户
创建一个新的用户和用户组,主目录为/opt/redmine,用于运行 Redmine 实例:

sudo useradd -m -U -r -d /opt/redmine redmine|

添加apache 用户到 redmine用户组,并且修改/opt/redmine目录权限以便 Apache 能够访问它:sudo usermod -a -G redmine apache
sudo chmod 777 /opt/redmine


#安装 Redmine
浏览 Redmine下载页面,看看有没有更新的版本可用。
安装 构建 Redmine 所需要的 GCC 编译器和库

sudo dnf group install "Development Tools"
sudo dnf install zlib-devel curl-devel openssl-devel mariadb-devel ruby-devel

确定你使用redmine用户运行下面的步骤:
sudo su - redmine

#下载Redmine
使用 curl下载 Redmine 压缩包,Redmine当前最新版本是 4.2.2

curl -L http://www.redmine.org/releases/redmine-4.2.2.tar.gz -o redmine.tar.gz

下载完成后,解压这个包
tar -xvf redmine.tar.gz

配置 Redmine 数据库
拷贝 Redmine 示例数据库配置文件:

sudo cp /opt/redmine/redmine-4.2.2/config/database.yml.example /opt/redmine/redmine-4.2.2/config/database.yml
注:如果提示输入redmine密码可以退出(exit)当前用户,拷贝文件之后再登录redmine用户

使用文本编辑器打开文件,搜索production章节,并且输入我们之前创建的 MySQL 数据库 用户信息:
/opt/redmine/redmine-4.2.2/config/database.yml


一旦完成,保存你的文件,并且退出编辑器(:wq)

 #安装Ruby依赖
切换到redmine-4.2.2目录并且安装 Ruby 依赖包:

cd ~/redmine-4.2.2
gem install bundler --no-rdoc --no-ri
bundle config set --local path 'vendor/bundle'
bundle install  #注:bubndle安装的时候需要可写权限
#如果速度太慢可以切换bundlebundle config mirror.https://rubygems.org https://gems.ruby-china.com

生成密钥,并且迁移数据库
运行下面的命令来生成密钥,并且迁移数据库:
bundle exec rake generate_secret_token
RAILS_ENV=production bundle exec rake db:migrate

#注:以下为加载默认设置,可不设置
set RAILS_ENV=production
set REDMINE_LANG=zh
bundle exec rake redmine:load_default_data


配置 Apache
切换回你的 sudo 用户,并且创建 Apache Vhost文件:
exit
sudo nano /etc/httpd/conf.d/redmine.conf

或者使用文本编辑器修改redmine.conf
<VirtualHost *:80>
    ServerName localhost
    ServerAlias www.example.com
    DocumentRoot /opt/redmine/redmine-4.2.2/public
        <Directory /opt/redmine/redmine-4.2.2/public>       
             Options Indexes ExecCGI FollowSymLinks

             Require all granted
             AllowOverride all
    
    </Directory>
        ErrorLog /var/log/httpd/example.com-error.log
        CustomLog /var/log/httpd/example.com-access.log combined</VirtualHost>

注:如果有域名,则修改localhost为域名

#重启 Apache 服务,输入:
sudo systemctl restart httpd

#启动redmine服务,执行
bundle exec rails server webrick -e production

默认监听地址为localhost,默认端口为3000。由于我需要外网访问,本身阿里云服务器有对应的内外网ip,所有我将服务地址绑定到其对应的私有ip上
bundle exec rails server webrick -e production -b xxx.xxx.xxx.xxx:3000 #注:xxx.xxx.xxx.xxx为你的server ip, 3000为端口

重新打开服务器防火墙3000端口,并重启防火墙
sudo firewall-cmd --zone=public --add-port=3000/tcp --permanent
sudo firewall-cmd --reload

#访问redmine

打开你的浏览器,输入你的服务器地址(加端口号),访问http://xxx.xxx.xxx.xxx:3000,下面的界面将会出现,登陆时会发现界面是英文的,在个人账户中,设置语言就可以了:

 

 默认的登录凭据如下:
用户名: admin
密码: admin
当你第一次登录时,你将会被提示修改密码,类似下面

 

 一旦你修改了密码,你将会被转向用户页面

注:有转载其他同学的图片和内容进行整合,如有冒犯请见谅!

  • 2
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
以下是在CentOS 7上部署MySQL 8的步骤: 1. 更新系统 使用以下命令更新系统: sudo yum update 2. 下载MySQL 8 从MySQL官网下载MySQL 8的最新版本。使用以下命令将其下载到您的CentOS 7系统中: wget https://dev.mysql.com/get/Downloads/MySQL-8.0/mysql-8.0.25-1.el7.x86_64.rpm-bundle.tar 3. 安装MySQL 8 使用以下命令安装MySQL 8: sudo rpm -ivh mysql-community-common-8.0.25-1.el7.x86_64.rpm sudo rpm -ivh mysql-community-libs-8.0.25-1.el7.x86_64.rpm sudo rpm -ivh mysql-community-client-8.0.25-1.el7.x86_64.rpm sudo rpm -ivh mysql-community-server-8.0.25-1.el7.x86_64.rpm 4. 启动MySQL 8 使用以下命令启动MySQL 8: sudo systemctl start mysqld 5. 配置MySQL 8 使用以下命令配置MySQL 8: sudo mysql_secure_installation 该命令将提示您输入MySQL管理员密码。在此之后,您将被要求进行以下操作: - 从现有的MySQL root用户中删除匿名用户。 - 禁用root用户的远程登录。 - 删除测试数据库。 - 重新加载特权表格以使更改生效。 6. 登录MySQL 8 使用以下命令登录MySQL 8: mysql -u root -p 在提示符下输入您的MySQL管理员密码,然后按Enter键。 7. 创建新的MySQL用户 使用以下命令创建新的MySQL用户: CREATE USER 'newuser'@'localhost' IDENTIFIED BY 'password'; 将“newuser”替换为您要创建的新用户的名称,并将“password”替换为该用户的密码。 8. 授予MySQL用户权限 使用以下命令授予MySQL用户权限: GRANT ALL PRIVILEGES ON * . * TO 'newuser'@'localhost'; 将“newuser”替换为您要授予权限的MySQL用户的名称。 9. 退出MySQL 8 使用以下命令退出MySQL 8: exit 现在,您已经成功地在CentOS 7上部署MySQL 8,并创建了一个新的MySQL用户和授予了该用户权限。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值