【tech】CentOS7.8でsubversion serverを構築するメモ



環境


ホスト:Windows10
仮想化:VirtualBox
OS:CentOS7.8
IP:192.168.56.101

手順


・SElinuxの無効化
vi /etc/sysconfig/selinux


#SELINUX=enforcing
SELINUX=disabled


・firewallの許可設定
firewall-cmd --add-service=http --permanent
firewall-cmd --add-service=https --permanent
firewall-cmd --add-port=3690/tcp --permanent

・設定反映のためリブート
reboot

・subversion関連ソフトのインストール
yum install -y subversion mod_dav_svn mod_ldap mod_ssl

・リポジトリの作成
mkdir -p /svn_repo/test_repo/
ls -ld /svn_repo/test_repo/
sudo svnadmin create --fs-type fsfs /svn_repo/test_repo/repo
svn mkdir file:///svn_repo/test_repo/repo/code -m "create"
svn mkdir file:///svn_repo/test_repo/repo/document -m "create"
svn mkdir file:///svn_repo/test_repo/repo/operation -m "create"

・権限変更
chmod -R g+w /svn_repo/test_repo

・所有者変更
chown -R apache:apache /svn_repo/test_repo/

・設定ファイルの作成
cd /svn_repo/test_repo/repo/conf
cp -p svnserve.conf svnserve.conf.org

・設定ファイルの編集
vi svnserve.conf
 最下部へ下記を追加



[general]
anon-access = read
auth-access = write
authz-db = authz
realm = test.co.jp


・ディレクトリ移動
cd /svn_repo/test_repo/repo/conf/

・ファイルの作成
cp -p authz authz.org

・ファイル編集
vi authz
 最下部へ下記を追記


[/]
* = rw


・仮想ルートを修正
vi /etc/sysconfig/svnserve
 下記の通り修正


#OPTIONS="-r /var/svn"
OPTIONS="-r /svn_repo/test_repo/repo/"


・svn起動
systemctl status svnserve
systemctl enable --now svnserve
systemctl status svnserve

Apacheのセットアップ


・confファイル編集
vi /etc/httpd/conf/httpd.conf
最下部に下記を追加

<Location /svn_repo>
DAV svn
SVNPath /svn_repo/test_repo/repo
AuthzSVNAccessFile /svn_repo/test_repo/repo/conf/authz
</Location>



https化設定

・鍵作成
openssl genrsa -aes128 2048 > server.key


Enter pass phrase:
→svkey ※任意の文字列



openssl rsa -in server.key -out server.key


Enter pass phrase for server.key:
 →svkey


・CSR作成
openssl req -new -key server.key > server.csr
※全て空欄でEnterでOKです(9回Enterを押せばOKです)

・証明書作成
openssl x509 -req -days 3650 -signkey server.key < server.csr > server.crt

・秘密鍵と証明書移動
mkdir /etc/httpd/ssl/
cp server.key server.crt /etc/httpd/ssl/

・パーミッション変更
chmod 400 /etc/httpd/ssl/server.*

・設定変更
cp -p /etc/httpd/conf.d/ssl.conf /etc/httpd/conf.d/ssl.conf.bk

vi /etc/httpd/conf.d/ssl.conf
※以下の通り、2項目を修正


※約101行目
#SSLCertificateFile /etc/pki/tls/certs/localhost.crt
SSLCertificateFile /etc/httpd/ssl/server.crt

※約107行目
#SSLCertificateKeyFile /etc/pki/tls/private/localhost.key
SSLCertificateKeyFile /etc/httpd/ssl/server.key


・HTTP→HTTPSリダイレクト設定
vi /etc/httpd/conf.d/rewrite.conf
※以下記載

<ifModule mod_rewrite.c>
RewriteEngine On
LogLevel crit rewrite:trace3
RewriteCond %{HTTPS} off
RewriteRule ^(.*)$ https://%\{HTTP_HOST}%{REQUEST_URI} [R=301,L]
</ifModule>

・httpdの再起動
systemctl restart httpd
systemctl status httpd
systemctl enable httpd

テストファイルのインポート
echo "test">test.txt
svn import test.txt file:///svn_repo/test_repo/repo/code/test.txt -m "import"
svn list file:///svn_repo/test_repo/repo/code

・ブラウザアクセス
https://192.168.56.101/svn_repo



【tech】ubuntu18.04 Redmine4をNginxで動かす手順メモ



以前redmine4をインストールする手順のメモをblogに書き残していましたが、
最近nginxを触ってみたいと思っていたので、Nginxで動かしてみた手順のメモです!

動画作りました!

・環境


ubuntu18.04 (minimal) on VirtualBox
(IP:192.168.56.150)
WEB:Nginx
DB:MySQL
MySQLDB rootユーザPW:RootPW123!
Redmine用DB名:redmine
RedmineDB ユーザ:redmine
Redmineuser PW:Redmine123!


私が使っているPC(のメモリが8GBの物)です!
私は今このPCのメモリを現在では32GBにアップグレードして使っています!笑
安くなりましたよねメモリ。SSDも安くなってるので買い換えたいです!笑

それでは手順です!



・rootになる
sudo su

・アップデート
apt-get update

・Redmine関係のPKGインストール
apt-get install -y net-tools curl mysql-server mysql-client libmysqlclient-dev imagemagick libmagickwand-dev libcurl4-openssl-dev git-core subversion

・GPGキーのインポート
gpg --keyserver hkp://keys.gnupg.net --recv-keys 409B6B1796C275462A1703113804BB82D39DC0E3 7D2BAF1CF37B13E2069D6956105BD0E739499BDB

・rvmのダウンロード
curl -sSL https://get.rvm.io | bash -s stable

・rvmの展開
source /etc/profile.d/rvm.sh

・rvmのインストール
rvm install 2.6.0

・rvmのリロード
source /usr/local/rvm/scripts/rvm

・.bashrcへ追記
echo '[[ -s "/usr/local/rvm/scripts/rvm" ]] && source "/usr/local/rvm/scripts/rvm"' >> ~/.bashrc

・./bashrcのリロード
source ~/.bashrc



・ver確認
ruby -v
rvm -v

・MySQLモードへ以降
mysql -u root -p
 →PW:Root123!

・Redmine用データベースの作成
create database redmine;
create user redmine@localhost identified by 'Redmine123!';
grant all privileges on redmine.* to redmine@localhost identified by 'Redmine123!';
flush privileges;
exit

・Passengerのインストール
gem install passenger -N

・Nginxのインストール
passenger-install-nginx-module

・ディレクトリの移動
cd /opt/nginx/

・ディレクトリの移動
cd conf/

・configファイルの作成
vi nginx.conf
→23行目に下記設定追加


include vhost/*.conf;




・ディレクトリの作成
mkdir -p /opt/nginx/conf/vhost

・ディレクトリの移動
cd /opt/nginx/conf/vhost/

・redmine用のconfig作成
vi redmine.conf

→下記設定の記述

 server {
        listen       80;
        server_name  www.kusomemo.tokyo;

        root /var/www/redmine/public;
        passenger_enabled on;
        client_max_body_size      10m; # Max attachemnt size

        \# redirect server error pages to the static page /50x.html
        \#
        error_page   500 502 503 504  /50x.html;
        location = /50x.html {
            root   html;
        }
    }




・ディレクトリ移動
cd /lib/systemd/system/

・サービスの定義
vi nginx.service
→下記設定を記述


[Unit]
Description=The NGINX HTTP and reverse proxy server
After=syslog.target network.target remote-fs.target nss-lookup.target

[Service]
Type=forking
PIDFile=/opt/nginx/logs/nginx.pid
ExecStartPre=/opt/nginx/sbin/nginx -t
ExecStart=/opt/nginx/sbin/nginx
ExecReload=/bin/kill -s HUP $MAINPID
ExecStop=/bin/kill -s QUIT $MAINPID
PrivateTmp=true

[Install]
WantedBy=multi-user.target


・systemdのリロード
systemctl daemon-reload

・Nginxの起動
systemctl start nginx

・Nginxの自動起動設定
systemctl enable nginx

・portの確認
netstat -plntu | grep nginx

Redmineのインストール




・ディレクトリの作成
mkdir -p /var/www/redmine

・ディレクトリの移動
cd /var/www

・Redmineのダウンロード
svn co https://svn.redmine.org/redmine/branches/4.0-stable redmine
→下記メッセージが表示されたら「T」→「Enter」
 ※まれにERRORになりましたが、もう一度同じコマンドを
  入力したら何故かダウンロードできました。


Error validating server certificate for 'https://svn.redmine.org:443':
- The certificate is not issued by a trusted authority. Use the
fingerprint to validate the certificate manually!
Certificate information:
- Hostname: svn.redmine.org
- Valid: from Sun, 08 Jan 2017 00:00:00 GMT until Wed, 08 Jan 2020 23:59:59 GMT
- Issuer: Gandi, Paris, Paris, FR
- Fingerprint: ab:f1:c8:b7:69:a6:99:bd:20:c1:59:a4:5f:60:9e:27:2d:81:82:b7
(R)eject, accept (t)emporarily or accept (p)ermanently?


・ディレクトリの移動
cd redmine

・サンプルファイルのコピー
cp config/configuration.yml.example config/configuration.yml
cp config/database.yml.example config/database.yml

・ymlファイルの編集
vi config/database.yml
→DB「redmine」のユーザ名・パスワードを編集

production:
  adapter: mysql2
  database: redmine
  host: localhost
  username: redmine
  password: "Redmine123!"
  encoding: utf8




・ディレクトリの作成
mkdir -p tmp tmp/pdf public/plugin_assets

sudo chown -R www-data:www-data files log tmp public/plugin_assets

sudo chmod -R 775 files log tmp public/plugin_assets

・bundlerのインストール
gem install bundler
bundle install --without development test

・トークンの作成
bundle exec rake generate_secret_token

・DBの作成
RAILS_ENV=production bundle exec rake db:migrate
RAILS_ENV=production bundle exec rake redmine:load_default_data

「en」→「Enter」
jaだとエラーになりました。。

・Nginxのリスタート
systemctl restart nginx

・firewallの許可
firewall-cmd --add-service=http --permanent

・firewallの再起動
firewall-cmd --reload

ブラウザを立ち上げ「192.168.56.150」へアクセス
画面右上の「ログイン」をクリック。

Login:admin
Password:admin



楽天トラベル

皆さん既にやってると思いますが、 AmazonPrimeだとAmazon Music Unlimitedが月額780円でできるんですね!
最近知ってapple musicから乗り換えました。(200円ですが安い方がいいに越したことはないです笑)

下のRedmineの本は kindle unlimitedで無料で読めますのでお勧めです!(30日無料期間に読んで解約もアリだと思います。笑)



【tech】【動画あり】Nginxでredmine4を動かすメモ(CentOS7 Ruby-2.6.0 MySQL5.7)



CentOS8にRedmine4をインストールしてみました!(webrick)

https://kusomemo.tokyo/tech/centos8-redmine4-webrick/

以前redmine4をインストールする手順のメモをblogに書き残していましたが、
最近nginxを触ってみたいと思っていたので、Nginxで動かしてみた手順のメモです!

動画作りました!

・環境


CentOS7.5 (minimal) on VirtualBox
(IP:192.168.56.150)
WEB:Nginx
DB:MySQL
MariaDB rootユーザPW:RootPW123!
Redmine用DB名:redmine
RedmineDB ユーザ:redmine
Redmineuser PW:Redmine123!


私が使っているPC(のメモリが8GBの物)です!
私は今このPCのメモリを現在では32GBにアップグレードして使っています!笑
安くなりましたよねメモリ。SSDも安くなってるので買い換えたいです!笑

それでは手順です!

・Redmine関連PKGのインストール
yum install -y zlib-devel patch curl-devel ImageMagick-devel openssl-devel httpd-devel libtool apr-devel apr-util-devel bzip2 mysql-devel ftp wget gcc-c++ autoconf readline readline-devel zlib libyaml-devel libffi-devel make automake bison iconv-devel subversion

・GPGキーのインポート
gpg --keyserver hkp://keys.gnupg.net --recv-keys 409B6B1796C275462A1703113804BB82D39DC0E3 7D2BAF1CF37B13E2069D6956105BD0E739499BDB

・rvmのダウンロード
\curl -sSL https://get.rvm.io | bash -s stable

・rvmの展開
source /etc/profile.d/rvm.sh

・rvmのインストール
rvm install 2.6.0

・rvmのリロード
source /usr/local/rvm/scripts/rvm

・.bashrcへ追記
echo '[[ -s "/usr/local/rvm/scripts/rvm" ]] && source "/usr/local/rvm/scripts/rvm"' >> ~/.bashrc

・./bashrcのリロード
source ~/.bashrc

・ver確認
ruby -v
rvm -v

・MySQLのリポジトリ追加
rpm -Uvh https://dev.mysql.com/get/mysql57-community-release-el7-9.noarch.rpm

・リポジトリの確認
yum repolist

・MySQLをインストール
yum install -y mysql-server

・MySQLを起動
systemctl start mysqld

・MySQLの自動起動
systemctl enable mysqld

・初期PWの確認
grep 'temporary password' /var/log/mysqld.log


2019-04-12T15:04:04.771898Z 1 [Note] A temporary password is generated for root@localhost: (%lD:&;o=7eu


※この場合「(%lD:&;o=7eu」です

・MySQLモードへ以降
mysql -u root -p

・ユーザの作成
ALTER USER 'root'@'localhost' IDENTIFIED BY 'RootPW123!';

・DBの作成
create database redmine;
create user redmine@localhost identified by 'Redmine123!';
grant all privileges on redmine.* to redmine@localhost identified by 'Redmine123!';
flush privileges;
exit

・Passengerのインストール
gem install passenger -N

・Nginxのインストール
passenger-install-nginx-module

→下記メッセージが表示されたら「Enter」


Welcome to the Phusion Passenger Nginx module installer, v6.0.2.

This installer will guide you through the entire installation process. It
shouldn't take more than 5 minutes in total.

Here's what you can expect from the installation process:

  1. This installer will compile and install Nginx with Passenger support.
  2. You'll learn how to configure Passenger in Nginx.
  3. You'll learn how to deploy a Ruby on Rails application.

Don't worry if anything goes wrong. This installer will advise you on how to
solve any problems.

Press Enter to continue, or Ctrl-C to abort.


→下記メッセージが表示されたら「!」を入力。
Ruby・Pythonにスペースキーでチェックをつけて「Enter」


Which languages are you interested in?

Use < space > to select.
If the menu doesn't display correctly, press '!'

(*) Ruby
> (*) Python
( ) Node.js
( ) Meteor


上記メッセージが表示されたら「1」→「Enter」
→ダウンロードが始まります。


Automatically download and install Nginx?

Nginx doesn't support loadable modules such as some other web servers do,
so in order to install Nginx with Passenger support, it must be recompiled.

Do you want this installer to download, compile and install Nginx for you?

  1. Yes: download, compile and install Nginx for me. (recommended)
    The easiest way to get started. A stock Nginx 1.15.8 with Passenger
    support, but with no other additional third party modules, will be
    installed for you to a directory of your choice.

  2. No: I want to customize my Nginx installation. (for advanced users)
    Choose this if you want to compile Nginx with more third party modules
    besides Passenger, or if you need to pass additional options to Nginx's
    'configure' script. This installer will 1) ask you for the location of
    the Nginx source code, 2) run the 'configure' script according to your
    instructions, and 3) run 'make install'.

Whichever you choose, if you already have an existing Nginx configuration file,
then it will be preserved.

Enter your choice (1 or 2) or press Ctrl-C to abort: 1


下記メッセージが表示されたら「Enter」


Downloading Nginx...
Verifying Nginx checksum...
Extracting Nginx source tarball...
# tar xzvf /tmp/passenger.1u3rsgk/nginx.tar.gz
nginx-1.15.8/
////////////////////////////
nginx-1.15.8/auto/cc/name
nginx-1.15.8/auto/cc/owc
nginx-1.15.8/auto/cc/sunc


Where do you want to install Nginx to?

Please specify a prefix directory [/opt/nginx]:


下記メッセージが表示されたら「Enter」で完了です。


--------------------------------------------

Nginx with Passenger support was successfully installed.

The Nginx configuration file (/opt/nginx/conf/nginx.conf)
must contain the correct configuration options in order for Phusion Passenger
to function correctly.

This installer has already modified the configuration file for you! The
following configuration snippet was inserted:

http {
...
passenger_root /usr/local/rvm/gems/ruby-2.6.0/gems/passenger-6.0.2;
passenger_ruby /usr/local/rvm/gems/ruby-2.6.0/wrappers/ruby;
...
}

After you start Nginx, you are ready to deploy any number of Ruby on Rails
applications on Nginx.

Press ENTER to continue.


・ディレクトリの移動
cd /opt/nginx/

・ディレクトリの移動
cd conf/

・configファイルの作成
vi nginx.conf
→23行目に下記設定追加


include vhost/*.conf;


・ディレクトリの作成
mkdir -p /opt/nginx/conf/vhost

・ディレクトリの移動
cd /opt/nginx/conf/vhost/

・redmine用のconfig作成
vi redmine.conf

→下記設定の記述

server {
listen 80;
server_name www.kusomemo.tokyo;

root /var/www/redmine/public;
passenger_enabled on;
client_max_body_size 10m; # Max attachemnt size

# redirect server error pages to the static page /50x.html
#
error_page 500 502 503 504 /50x.html;
location = /50x.html {
root html;
}
}

・ディレクトリ移動
cd /lib/systemd/system/

・サービスの定義
vi nginx.service
→下記設定を記述


[Unit]
Description=The NGINX HTTP and reverse proxy server
After=syslog.target network.target remote-fs.target nss-lookup.target

[Service]
Type=forking
PIDFile=/opt/nginx/logs/nginx.pid
ExecStartPre=/opt/nginx/sbin/nginx -t
ExecStart=/opt/nginx/sbin/nginx
ExecReload=/bin/kill -s HUP $MAINPID
ExecStop=/bin/kill -s QUIT $MAINPID
PrivateTmp=true

[Install]
WantedBy=multi-user.target


・systemdのリロード
systemctl daemon-reload

・Nginxの起動
systemctl start nginx

・Nginxの自動起動設定
systemctl enable nginx

・portの確認
netstat -plntu | grep nginx

・ディレクトリの作成
mkdir -p /var/www/redmine

・ディレクトリの移動
cd /var/www

・Redmineのダウンロード
svn co https://svn.redmine.org/redmine/branches/4.0-stable redmine
→下記メッセージが表示されたら「T」→「Enter」
※まれにERRORになりましたが、もう一度同じコマンドを
入力したら何故かダウンロードできました。


Error validating server certificate for 'https://svn.redmine.org:443':
- The certificate is not issued by a trusted authority. Use the
fingerprint to validate the certificate manually!
Certificate information:
- Hostname: svn.redmine.org
- Valid: from Sun, 08 Jan 2017 00:00:00 GMT until Wed, 08 Jan 2020 23:59:59 GMT
- Issuer: Gandi, Paris, Paris, FR
- Fingerprint: ab:f1:c8:b7:69:a6:99:bd:20:c1:59:a4:5f:60:9e:27:2d:81:82:b7
(R)eject, accept (t)emporarily or accept (p)ermanently?


・ディレクトリの移動
cd redmine

・サンプルファイルのコピー
cp config/configuration.yml.example config/configuration.yml
cp config/database.yml.example config/database.yml

・ymlファイルの編集
vi config/database.yml
→DB「redmine」のユーザ名・パスワードを編集

production:
  adapter: mysql2
  database: redmine
  host: localhost
  username: redmine
  password: "Redmine123!"
  encoding: utf8

・ディレクトリの作成
mkdir -p tmp tmp/pdf public/plugin_assets

・所有者の変更
sudo chown -R nobody:nobody files log tmp public/plugin_assets

・権限の変更
sudo chmod -R 775 files log tmp public/plugin_assets

・bundlerのインストール
gem install bundler
bundle install --without development test

・トークンの作成
bundle exec rake generate_secret_token

・DBの作成
RAILS_ENV=production bundle exec rake db:migrate
RAILS_ENV=production bundle exec rake redmine:load_default_data

「en」→「Enter」
jaだとエラーになりました。。

・Nginxのリスタート
systemctl restart nginx

・firewallの許可
firewall-cmd --add-service=http --permanent

・firewallの再起動
firewall-cmd --reload

ブラウザを立ち上げ「192.168.56.150」へアクセス

画面右上の「ログイン」をクリック。

Login:admin
Password:admin

※初回のログインはパスワードの変更を求められます。

以上です、無事インストールできましたか?できなかった方はコメントください!

下のRedmineの本は kindle unlimitedで無料で読めますのでお勧めです!(30日無料期間に読んで解約もアリだと思います。笑)