Bu kılavuzda, CentOS 7 işletim sistemine sahip bir VPS sunucuda Redmine uygulamasını kuruyoruz. Amacımız, ihtiyaç halinde anlaşılır ayarlarla çalışan bir Redmine uygulamasına sahip hazır bir sunucu elde etmektir. Bu süreçte bir veritabanı, ek paketler, Ruby kurulumu yapacak ve Nginx web sunucusunu yapılandıracağız. Bu kılavuzda işlemleri root kullanıcısı ile yapıyoruz; eğer normal bir kullanıcıysanız, komutların başına sudo ekleyin.
Önceden yapılandırılmış sunucu, sipariş formunda mevcuttur.
|
|
1. MariaDB Veritabanı Kurulumu
yum update
yum install epel-release
vi /etc/yum.repos.d/MariaDB.repo
Aşağıdaki yapılandırmayı kopyalayın:
# MariaDB 10.9 CentOS repository list
# http://downloads.mariadb.org/mariadb/repositories/
[mariadb]
name = MariaDB
baseurl = http://yum.mariadb.org/10.9/centos7-amd64
gpgkey=https://yum.mariadb.org/RPM-GPG-KEY-MariaDB
gpgcheck=1
Servisi kurun:
yum install MariaDB-client MariaDB-server
systemctl enable mariadb.service
systemctl restart mariadb.service
Yeni bir veritabanı ve kullanıcı oluşturun
mysql
mysql> CREATE DATABASE redmine CHARACTER SET utf8;
mysql> GRANT ALL ON redmine.* TO 'redmine'@'localhost' IDENTIFIED BY 'You_pasw0Rd-967';
mysql> EXIT;
2. Gerekli Paketlerin Kurulumu
yum install curl gpg gcc gcc-c++ make patch autoconf automake bison libffi-devel libtool
yum install readline-devel sqlite-devel zlib-devel openssl-devel readline glibc-headers glibc-devel
yum install mariadb-devel zlib libyaml-devel bzip2 ImageMagick ImageMagick-devel
yum install yum-utils pygpgme
yum-config-manager --add-repo https://oss-binaries.phusionpassenger.com/yum/definitions/el-passenger.repo
yum install nginx passenger passenger-devel nginx-mod-http-passenger
Kullanıcı ekleyin:
useradd -m -U -r -d /opt/redmine redmine
usermod -a -G redmine nginx
chmod 750 /opt/redmine
3. Redmine Kurulumu
su - redmine
$gpg --keyserver keyserver.ubuntu.com --recv-key 409B6B1796C275462A1703113804BB82D39DC0E3 7D2BAF1CF37B13E2069D6956105BD0E739499BDB
$curl -sSL https://get.rvm.io | bash -s stable
$source /opt/redmine/.rvm/scripts/rvm
$rvm install 2.7
$rvm --default use 2.7
$wget http://www.redmine.org/releases/redmine-4.2.8.tar.gz
$tar -xvf redmine-4.2.8.tar.gz
$cp /opt/redmine/redmine-4.2.8/config/database.yml.example /opt/redmine/redmine-4.2.8/config/database.yml
Veritabanı kullanıcısına göre dosyayı düzenleyin:
$vi /opt/redmine/redmine-4.2.8/config/database.yml
production:
adapter: mysql2
database: redmine
host: localhost
username: redmine
password: "You_pasw0Rd-967"
encoding: utf8
Dosyayı kaydedin ve gerekli paketleri kurun:
$cd ~/redmine-4.2.8
$gem install bundler
$bundle install --without development test postgresql sqlite
$bundle exec rake generate_secret_token
$RAILS_ENV=production bundle exec rake db:migrate
$exit
4. Nginx Yapılandırması
Dosyayı açın ve yapılandırmayı ekleyin:
#vi /etc/nginx/conf.d/example.com.conf
passenger_root /usr/share/ruby/vendor_ruby/phusion_passenger/locations.ini;
passenger_ruby /opt/redmine/.rvm/gems/default/wrappers/ruby;
passenger_instance_registry_dir /var/run/passenger-instreg;
server {
listen 80;
server_name example.com www.example.com;
root /opt/redmine/redmine-4.2.8/public;
log files
access_log /var/log/nginx/example.com.access.log;
error_log /var/log/nginx/example.com.error.log;
passenger_enabled on;
passenger_min_instances 1;
client_max_body_size 10m;
}
Dosyayı kaydedin ve varsayılan nginx modül dosyasında çakışan satırları yoruma alın:
vi /etc/nginx/conf.d/passenger.conf
#passenger_root /usr/share/ruby/vendor_ruby/phusion_passenger/locations.ini;
#passenger_ruby /usr/bin/ruby;
#passenger_instance_registry_dir /var/run/passenger-instreg;
Yapılandırmayı kontrol edin:
nginx -t
nginx: the configuration file /etc/nginx/nginx.conf syntax is ok
nginx: configuration file /etc/nginx/nginx.conf test is successful
systemctl restart nginx
systemctl enable nginx
Aşağıda, SSL sertifikasıyla çalışan bir Nginx yapılandırması sağladık. Kullanıyorsanız, kendi domain adınızı dosyada belirtin. Biz IP adresi kullandık.
4.1 SSL Sertifikalı Nginx Yapılandırması
/etc/nginx/conf.d/example.com.conf
passenger_root /usr/share/ruby/vendor_ruby/phusion_passenger/locations.ini;
passenger_ruby /opt/redmine/.rvm/gems/default/wrappers/ruby;
passenger_instance_registry_dir /var/run/passenger-instreg;
Redirect HTTP -> HTTPS
server {
listen 80;
server_name www.example.com example.com;
include snippets/letsencrypt.conf;
return 301 https://example.com$request_uri;
}
Redirect WWW -> NON WWW
server {
listen 443 ssl http2;
server_name www.example.com;
ssl_certificate /etc/ssl/example.com/fullchain.pem;
ssl_certificate_key /etc/ssl/example.com/privkey.pem;
ssl_trusted_certificate /etc/ssl/example.com/chain.pem;
include snippets/ssl.conf;
return 301 https://example.com$request_uri;
}
server {
listen 443 ssl http2;
server_name example.com;
root /opt/redmine/redmine-4.2.8/public;
SSL parameters
ssl_certificate /etc/ssl/example.com/fullchain.pem;
ssl_certificate_key /etc/ssl/example.com/privkey.pem;
ssl_trusted_certificate /etc/ssl/example.com/chain.pem;
include snippets/ssl.conf;
include snippets/letsencrypt.conf;
log files
access_log /var/log/nginx/example.com.access.log;
error_log /var/log/nginx/example.com.error.log;
passenger_enabled on;
passenger_min_instances 1;
client_max_body_size 10m;
}
Yapılandırmayı uygulamak için servisi yeniden başlatın:
systemctl restart nginx
Redmine kurulumu başarıyla tamamlandı.