Top > サーバー > CentOS7

最終更新日 2018/08/17 ※このページは書きかけです

さくらのVPS(v3) 2GのCentOS7環境の
サーバー設定手順をざっくりとまとめる。

目次 Edit

環境 Edit

さくらのVPS(v3) 2G
CentOS 7 x86_64

基本設定 Edit

  1. rootでログイン
  2. 最新の状態に更新する
    # yum update
    途中、更新して大丈夫?的な確認が出るので、キーボードの y を押して続行します。
  3. nanasiでログインできるか確認
    login as:nanasi
    nanasi@127.0.0.1's password:[パスワード入力]
  4. 公開鍵でログインできるようにする
    puttygen(他ソフトでもok)使って秘密鍵、公開鍵を生成します。
    公開鍵はputtygenのauthorized_keysのところをコピペして authorized_keys という拡張子無しのテキストファイルを作成します。(『公開鍵の保存』ではありません)
    作成した authorized_keys ファイルを
    home/nanasi/.ssh
    上記フォルダにWinSCP等のアプリを使ってアップロードします。
    パーミッションを変更します
    # chmod 700 ~/.ssh/                 # 自分以外のアクセスを禁止
    # chmod 600 ~/.ssh/authorized_keys  # 自分以外の読み書きを禁止
    今後公開鍵が複数必要になった場合はキーを連結してひとつの authorized_keys ファイルを作成する必要があります。
    秘密鍵はパスフレーズ無しでローカルに保存し、PuTTYやWinSCPの認証ファイルに使用してください。
    puttygenで作成した拡張子がppkの秘密鍵は、Windows10のUbuntuでsshする場合などはフォーマットが異なるためそのままでは使用できません。
    PuTTYでOpenSSH方式に変換できるので変換してから使用してください。
  5. SSHログイン制限をかける
    設定に失敗するとログインできなくなる可能性があるので慎重に
    # vim /etc/ssh/sshd_config
    Port 3843
    PermitRootLogin no
    PermitEmptyPasswords no
    PasswordAuthentication no
    AllowUsers nanasi
    Port 3843SSHログインのポートを22から3843に変更する(変更後の数値は任意)
    PermitRootLogin norootユーザーのログインを禁止する
    PermitEmptyPasswords no空のパスワードを禁止する
    PasswordAuthentication noパスワードでのログインを禁止する
    AllowUsers nanasinanasiユーザーのみログイン可能にする
    パスワードでのログインをここで禁止しても、さくらのVPSコントロールパネルからはパスワードでログインできるので、万が一秘密鍵を紛失したりしても大丈夫。
    sshd をリブート
    # service sshd restart
  6. ファイアウォールの設定
    iptablesを設定する
    # vim /etc/sysconfig/iptables
    *filter
    :INPUT   ACCEPT [0:0]
    :FORWARD ACCEPT [0:0]
    :OUTPUT  ACCEPT [0:0]
    :RH-Firewall-1-INPUT - [0:0]
    
    -A INPUT -j RH-Firewall-1-INPUT
    -A FORWARD -j RH-Firewall-1-INPUT
    -A RH-Firewall-1-INPUT -i lo -j ACCEPT
    -A RH-Firewall-1-INPUT -p icmp --icmp-type any -j ACCEPT
    -A RH-Firewall-1-INPUT -p 50 -j ACCEPT
    -A RH-Firewall-1-INPUT -p 51 -j ACCEPT
    -A RH-Firewall-1-INPUT -p udp --dport 5353 -d 224.0.0.251 -j ACCEPT
    -A RH-Firewall-1-INPUT -p udp -m udp --dport 631 -j ACCEPT
    -A RH-Firewall-1-INPUT -p tcp -m tcp --dport 631 -j ACCEPT
    -A RH-Firewall-1-INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
    
    # SSH
    -A RH-Firewall-1-INPUT -m state --state NEW -m tcp -p tcp --dport 3843  -j ACCEPT
    # HTTP
    -A RH-Firewall-1-INPUT -m state --state NEW -m tcp -p tcp --dport 80    -j ACCEPT
    # HTTPS
    -A RH-Firewall-1-INPUT -m state --state NEW -m tcp -p tcp --dport 443   -j ACCEPT
    # FTP1, FTP2
    -A RH-Firewall-1-INPUT -m state --state NEW -m tcp -p tcp --dport 20    -j ACCEPT
    -A RH-Firewall-1-INPUT -m state --state NEW -m tcp -p tcp --dport 21    -j ACCEPT
    # SMTP
    -A RH-Firewall-1-INPUT -m state --state NEW -m tcp -p tcp --dport 25    -j ACCEPT
    # MySQL
    -A RH-Firewall-1-INPUT -m state --state NEW -m tcp -p tcp --dport 3306  -j ACCEPT
    # REJECT
    -A RH-Firewall-1-INPUT -j REJECT --reject-with icmp-host-prohibited
    
    COMMIT
    ポート3843の数値は、前項で設定したSSHの接続ポートにしておくこと。
    行末などに余計な改行があるとうまくいかないので注意する。
    COMMITのあとにも改行が無いように注意する。
    iptablesを再起動する
    # service iptables restart
  7. webサーバーの設定
    Apacheのインストール
    # yum install httpd
    httpdを自動起動onにする
    # chkconfig httpd on
    httpd.confを編集してセキュリティを高める
    # vim /etc/httpd/conf/httpd.conf
    ServerTokens Prod
    ServerSignature Off
    Options -Indexes FollowSymLinks
    ServerTokens Prod最低限のサーバー情報をレスポンスヘッダーで返すようにする
    ServerSignature Offエラーメッセージなどをクライアントに返す際のフッターラインを表示しない
    Options -Indexes FollowSymLinksファイルの一覧を表示させないようにする
    追加でhttpd.confを編集
    # vim /etc/httpd/conf/httpd.conf
    KeepAlive On
    KeepAlive On長時間持続する HTTP セッションを提供。参考 http://httpd.apache.org/docs/2.2/ja/mod/core.html#keepalive
    設定に問題ないかをチェック
    # service httpd configtest
    問題なければ
    Syntax OK
    と表示されるので、httpdを起動する。
    # service httpd start
    httpd を起動中:                                            [  OK  ]
    /var/www/html/の所有権をnanasiにする
    # chown -R nanasi:nanasi /var/www/html/
    適当に、「Hello World!!」などと書いた index.html を作成し、/var/www/html/にアップロードして、ブラウザにサーバーのIPでアクセスすれば、表示される。
  8. VirtualHostの設定をして、(複数)ドメインの管理ができるようにする
    ここではhoge.comというドメインに対して設定すると仮定する。
    hoge.comのhtml用フォルダを作成します。
    # mkdir -p /var/www/hoge.com/public_html
    (-p は、存在しないフォルダも作成してくれるオプション)
    オーナーをnanasiに設定
    # chown -R nanasi:nanasi /var/www/hoge.com
    VirtualHostを有効にする
    # vim /etc/httpd/conf/httpd.conf
    NameVirtualHost *:80
    hoge.comに対するVirtualHostの設定ファイルを作成する
    # vim /etc/httpd/conf.d/hoge.com.conf
    <VirtualHost *:80>
       DocumentRoot /var/www/hoge.com/public_html
       ServerName www.hoge.com
       ServerAlias hoge.com
       DirectoryIndex index.html index.php
       ErrorLog /var/log/httpd/hoge.com_error_log
       CustomLog /var/log/httpd/hoge.com_access_log combined
       AddDefaultCharset UTF-8
       <Directory "/var/www/hoge.com/public_html">
           AllowOverride All
       </Directory>
    </VirtualHost>
    設定に問題ないか、テストする
    # service httpd configtest
    Syntax OK
    問題なければ、webサーバーを再起動
    # service httpd restart
    httpd を停止中:                                            [  OK  ]
    httpd を起動中:                                            [  OK  ]
    nanasiユーザーに切り替える
    # exit
    適当にhoge.comのトップページを作ってみる
    $ vim /var/www/hoge.com/public_html/index.html
    <html>
    hello from hoge.com
    </html>
    ドメインを、サーバーのIPに向ける設定を行う
    管理人はVALUE DOMAINでドメイン管理しているので、VALUE DOMAINのサイトから設定を行う
    まず、ネームサーバーを「当サービス内のネームサーバーをご利用になるにはここをクリックして下さい。 」をクリックして設定。
    次に「DNSレコード/URL転送の変更」で、
    a * サーバーのIPアドレス
    と入力して保存。
    反映されるまで、数分かかるので、しばらく待つ。
    しばらく待ったら、ブラウザで hoge.com にアクセスしてみる。
    無事に hello from hoge.com と表示されれば成功。
  9. phpの設定
    phpインストール
    # yum install php php-devel php-mysql php-gd php-mbstring
    インストール確認
    # php -v
    PHP 5.3.3 (cli) (built: Feb 22 2013 02:51:11)
    Copyright (c) 1997-2010 The PHP Group
    Zend Engine v2.3.0, Copyright (c) 1998-2010 Zend Technologies
    php.iniの編集
    # vim /etc/php.ini
    error_log = /var/log/php_errors.log
    mbstring.language = Japanese
    mbstring.internal_encoding = UTF-8
    mbstring.http_input = auto
    mbstring.detect_order = auto
    expose_php = Off
    date.timezone = Asia/Tokyo
    mbstring.internal_encoding = UTF-8エンコーディングはUTF-8で
    expose_php = OffOffにしとかないとセキュリティ的によろしくないらしい
    設定を反映させるために、httpdを再起動
    # service httpd restart
  10. MySQLの設定
    MySQLのインストール
    # yum install mysql-server
    設定を変更。主に日本語設定。
    # vim /etc/my.cnf
    symbolic-links=0 と [mysqld_safe] の間に以下を挿入
    character_set_server=utf8
    default-storage-engine=InnoDB
    innodb_file_per_table
    [mysql]
    default-character-set=utf8
    [mysqldump]
    default-character-set-utf8
    mysqlサービスを開始
    # service mysqld start
    初回のインストール設定を実行
    # mysql_secure_installation
    最初の
    Enter current password for root (enter for none):
    は何も入力せずエンターで次に進む
    次は、rootのパスワードを入れますか?という質問なので、Yでrootのパスワードを入力
    次に、確認用にもう一度rootのパスワードを入力
    あとは、デフォルトで大丈夫なのでYを入力して最後まで進める。
    起動時にmysqlが起動するように設定しておく
    # chkconfig mysqld on
    ちゃんとインストールできたかを確認
    # mysql -u root -p
    Enter password:
    rootのパスワードを入力すると、ずらずらっと文字が出力されて
    mysql>
    という状態になれば問題なし。
    exit
    で抜ける。
  11. パスワードのランダム生成コマンド mkpasswd 用に必要なパッケージをインストール
    # yum install expect
    パスワード生成時は
    # mkpasswd -l 46
    とやると、46ケタのランダムなパスワードを生成してくれる。
  12. phpMyAdminでMySQLの管理を行えるようにする
    # yum install phpmyadmin
    ブラウザからアクセスできるように設定ファイルを編集
    # vim /etc/httpd/conf.d/phpMyAdmin.conf
    <Directory /usr/share/phpMyAdmin/>
      <IfModule mod_authz_core.c>
        # Apache 2.4
        <RequireAny>
          Require ip 127.0.0.1
          Require ip ::1
        </RequireAny>
      </IfModule>
      <IfModule !mod_authz_core.c>
        # Apache 2.2
    # 以下4行をコメントアウト
    #    Order Deny,Allow
    #    Deny from All
    #    Allow from 127.0.0.1
    #    Allow from ::1
    # 以下2行を追加
        Order allow,deny
        Allow from all
      </IfModule>
    </Directory>
    クッキー認証(Cookie認証)に変更する
    # vim /etc/phpMyAdmin/config.inc.php
    $cfg['blowfish_secret'] = '適当なパスフレーズ';
    $cfg['Servers'][$i]['auth_type']     = 'cookie';
    上記、適当なパスフレーズは
    # mkpasswd -l 46
    で生成したものをコピペすると良い。
    phpMyAdminの内部で使用するパスフレーズなので、特に覚える必要などはない。
    ここまでできたら、apacheを再起動
    # service httpd restart
    あとはブラウザで
    (サーバーのIPアドレス)/phpmyadmin
    でアクセスできるはず。
  13. Node.jsのインストール
    nvmで管理することにします。
    インストールするNode.jsのバージョンはv0.10.13です。
    まずnvmをgitから取得します。
    $ git clone git://github.com/creationix/nvm.git ~/.node
    Initialized empty Git repository in /home/nanasi/.node/.git/
    remote: Counting objects: 696, done.
    remote: Compressing objects: 100% (464/464), done.
    remote: Total 696 (delta 339), reused 557 (delta 221)
    Receiving objects: 100% (696/696), 105.69 KiB | 106 KiB/s, done.
    Resolving deltas: 100% (339/339), done.
    nvmを有効にして、Node.jsをインストールします。
    $ . ~/.node/nvm.sh
    $ nvm install v0.10.13
    /usr/bin/which: no shasum in (/usr/local/bin:/bin:/usr/bin:/usr/local/sbin:/usr/sbin:/sbin:/home/nanasi/bin)
    ######################################################################## 100.0%
    Now using node v0.10.13
    ちゃんとインストールできたかを確認。v0.10.13と表示されていれば、OK
    $ node -v
    v0.10.13
    ログイン時に自動でnvmとnodeが起動するようにします。
    vimで以下の2行を追加します。
    成功すればログイン時に Now using node v0.10.13 と表示されるはずです。
    $ vim ~/.bashrc
    source ~/.node/nvm.sh
    nvm use v0.10.13
    参考サイト
    http://com4tis.net/2013/05/21/sakura-vps-apache-node-js-install-1/
    http://blog.summerwind.jp/archives/1464

ユーザーの追加 Edit

rootユーザーを使わなくて済むように、新規ユーザーを追加します。
以下は『nanasi』というユーザーを『wheel』グループに追加する手順です。

  1. ユーザーを追加(wheelグループとして)
    # useradd -G wheel nanasi
  2. パスワードを設定
    # passwd nanasi
    Changing password for user nanasi.
    New UNIX password: [パスワードを入力]
    Retype new UNIX password: [上で入力したパスワードを再度入力]
    passwd: all authentication tokens updated successfully.
    ※ちなみに「wheel」は「big wheel(大物、重要人物、有力者、大立者)」いうスラングが由来らしいです。

sudoの設定 Edit

追加したユーザーはroot権限を持っていないので特定のコマンドを実行できません。
そこで、一時的にroot権限を取得してコマンドを実行できるようにするのがsudoです。

  1. visudo(sudoの設定専用コマンド)を実行
    以下のコマンドを実行するとエディタが立ち上がります。
    # visudo
  2. 追加したユーザーがsudoできるようにする
    グループ単位で sudo できるようにするには以下のようにします。
    %wheel ALL=(ALL) ALL
    グループに権限を与えるのではなく、ユーザー単位で権限を与えたい場合は以下のようにします。
    nanasi ALL=(ALL) ALL
  3. その他sudoを実行する上で便利になる設定
    # sudoのタイムアウト時間を60分に設定(デフォルトは5分)
    Defaults  timestamp_timeout=60
  4. 編集したvisudoに問題ないかチェック
    以下のコマンドでvisudoに問題がないかどうかチェックできます。
    # visudo -c
    以下の様なテキストが出力されていれば問題なしです。
    /etc/sudoers: parsed OK
    エラーが出ていた場合はvisudoで編集した箇所に問題がないかどうか確認してください。

日本語環境にする Edit

  1. ロケールを日本語に変更
    # localectl set-locale LANG=ja_JP.UTF-8
  2. 反映
    # source /etc/locale.conf
  3. 日本語環境になったか確認
    # date
    2018年  8月 18日 土曜日 17:41:02 JST

※参考にしたサイトにはIBUSとフォントのインストールが必要と書いてあったが問題なく動いているようなのでスルーした。
インストールする場合は以下。
IBUS(Intelligent Input Bus)をインストール

# yum install ibus-kkc

日本語フォント(VLゴシック)をインストール

# yum install vlgothic-*

vim Edit

最新版vimのビルドとインストール Edit

デフォルトでもvimは最小構成でインストールされていますが、自前でビルドして最新版をインストールします。

  1. すでにvimがインストールされているか確認
    # yum list installed | grep vim
    vim-minimal.x86_64                2:7.4.160-4.el7                @anaconda
    上記ではvimがすでに最小構成でインストールされていますが、
    アンインストールするとsudoも消えて、sudoを入れるとvim-minimalも入るらしいのでそのままにしておきます。
  2. ncursesをインストール
    ncursesはビルドに必要なライブラリです。
    # yum install ncurses-devel
  3. homeディレクトリに移動
    # cd ~
  4. gitでソースをダウンロード
    gitはソース管理のアプリケーションです。
    vimフォルダが作成され、そこにソースコードがダウンロードされます。
    # git clone https://github.com/vim/vim.git
  5. vimフォルダに移動
    # cd vim
  6. 最新バージョンに更新
    クローンした時点で最新版になっていますが、念の為更新します。
    # git pull
  7. srcフォルダに移動
    $cd src
  8. ビルド状態をきれいにする
    # make distclean
  9. ビルド
    # make
  10. ビルドしたvimをインストール
    # sudo make install
  11. インストールされたか確認
    # vim --version
    VIM - Vi IMproved 8.1 (2018 May 18, compiled Aug 17 2018 01:13:49)

公式サイトの解説(英語)
https://www.vim.org/git.php

vimの設定 Edit

全ユーザー同じ設定で構わない場合は /usr/local/share/vim/vimrc もしくは /etc/vimrc を編集します。
(vimで『:echo $VIM』を実行して表示されたディレクトリ直下のvimrcです)

ユーザー個別で設定したい場合は、 ~/.vimrc を編集(存在しなければ新規作成)します。
以下おすすめ設定です。※ファイルがすでに存在していた場合は追記します。

# vim /usr/local/share/vim/vimrc
"----- 基本 -----
set fenc=utf-8              " エンコード
"set nobackup               " バックアップファイル作らない
set noswapfile              " スワップファイル作らない
set showcmd                 " 入力中のコマンドをステータスに表示する
"set mouse=a                " マウス有効に
"set clipboard=unnamedplus,autoselect    " クリップボード有効に
set wildmenu                " コマンドライン補完を拡張モードにする

"----- 見た目関連 -----
" set number                " 行番号を表示
set title                   " 編集中ファイル名の表示
set showmatch               " 対応するカッコを強調
"set matchtime=2            " 対応するカッコを強調する時間
"set list                   " タブ空白改行を可視化
set visualbell              " ビープ音を可視化
set cursorline              " 現在の行を強調表示
"set cursorcolumn           " 現在の列を強調表示
set tabstop=4               " タブ幅を4にする
set noexpandtab             " タブの代わりに空白を使わない
set autoindent              " オートインデント有効
set smartindent             " スマートインデント有効
"set ruler                  " カーソルが何行目何列目に置かれているかを表示
syntax on                   " シンタックスハイライト
set virtualedit=onemore     "カーソルを行末の一つ先まで移動可能にする
set whichwrap=b,s,h,l,<,>,[,],~ "行頭、行末で行のカーソル移動を可能にする
set backspace=indent,eol,start  "バックスペースでの行移動を可能にする
"let &t_ti.="\e[5 q"            "カーソルの形状を変更

"----- ステータスライン関連 -----
set statusline&             " リセット
set statusline+=%<          " 行が長すぎるときに切り詰める位置
set statusline+=%F          " ファイル名
set statusline+=%m          " 変更チェック
set statusline+=[%n]        " バッファ番号
set statusline+=%r          " 読み込み専用
set statusline+=%h          " ヘルプページなら[HELP]表示
set statusline+=%w          " プレビューなら[Preview]表示
set statusline+=[%{&ff}]    " フォーマット
set statusline+=[%Y]        " ファイルタイプ
set statusline+=%=          " これ以降は右寄せ
set statusline+=%l/%L行     " 現在行数/全行数
set statusline+=\           " 空白(\ )
set statusline+=%c列        " 現在列数
set statusline+=\           " 空白(\ )
set statusline+=%{&fileencoding}    " エンコード
set laststatus=2            " ステータスを表示

"----- 検索関連 -----
set ignorecase              " 大文字小文字の区別なく検索
set smartcase               " 大文字が含まれていた場合は区別して検索
set incsearch               " インクリメンタルサーチ
set wrapscan                " 最後まで行ったら最初に戻る
set hlsearch                " 検索語をハイライト表示

"----- 配色関連 -----
set background=dark         " ダーク系のカラースキームを使う
colorscheme desert          " 配色

"----- 全角表示を可視化 -----
function! ZenkakuSpace()
    highlight ZenkakuSpace cterm=underline ctermfg=lightblue guibg=darkgray
endfunction
if has("syntax")
    augroup ZenkakuSpace
        autocmd!
        autocmd ColorScheme * call ZenkakuSpace()
        autocmd VimEnter,WinEnter,BufRead * let w:m1=matchadd("ZenkakuSpace", " ")
    augroup END
    call ZenkakuSpace()
endif

PuTTYでvimを動かしている時にクリップボードを使う Edit

  • PuTTYの
    設定>ウィンドウ>選択
    『Shift がアプリケーションのマウス使用を無効にする』
    のチェックがONになっていることを確認する
  • Shiftを押しながらvim上の範囲をドラッグするとクリップボードにコピーされる
  • Shiftを押しながら右クリックでクリップボードの値がvim上にペーストされる

Logwatch Edit

Logwatchはログを収集して毎日定時にメールで概要を報告してくれます。

  1. logwatchをインストール
    # yum install logwatch
  2. 設定ファイルを編集
    # /etc/logwatch/conf/logwatch.conf
    MailTo = hoge@hoge.com # メール送信先アドレス (rootにするとrootユーザー宛に送信される)
    Detail = High          # レポートの詳細度 (Low Mid High)
    Output = mail          # レポートの出力先 (stdout mail)
    Format = html          # レポートのフォーマット (text html)
  3. メールで正しくレポートが届くか確認
    # logwatch --output mail
    ※メールは、デフォルトの設定だと深夜(4時くらい?)に送られてきます。
    これは cron.daily の設定時間に依存するようです。

FTP Edit

FTPはSCPを使用するため特に何も導入しません。
クライアントはWinSCPを使います。

Subversionのインストール Edit

最新のSubversion1.8系をインストールします。
yumで管理したいので、WANdiscoという会社が公開しているリポジトリを使わせてもらいます。

  1. 現在インストールされているsubversion関連のパッケージを確認
    # rpm -qa | grep subversion
    subversion-1.6.11-9.el6_4.x86_64
  2. インストールされているSubversionをアンインストール
    # yum remove subversion
    と打ち込んで、ずらーっとログが出て
    ================================================================================
    Package           Arch          Version                  Repository       Size
    ================================================================================
    Removing:
     subversion        x86_64        1.6.11-9.el6_4           @updates         12 M
    
    Transaction Summary
    ================================================================================
    Remove        1 Package(s)
    
    Installed size: 12 M
    Is this ok [y/N]:
    なアンインストール確認が出たら、yを押して続行
    Is this ok [y/N]: y
    またずらーっとログが出て、
    Removed:
     subversion.x86_64 0:1.6.11-9.el6_4
    
    Complete!
    なログが出ればアンインストール成功です。
  3. WANdisco用のyumリポジトリを追加
    /etc/yum.repos.d/WANdisco.repo
    というWANdiscoリポジトリを追加します。
    # vim /etc/yum.repos.d/WANdisco.repo
    で、ファイル編集を開始して
    [wandisco]
    name=WANdisco Repository - svn-1.8 centos6
    baseurl=http://opensource.wandisco.com/centos/6/svn-1.8/RPMS/$basearch/
    enabled=0
    gpgcheck=1
    gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-WANdisco
    という内容して、
    :wq
    で保存してvimを終了します。
    enabled=0で、普段は無効にしておきます。
  4. GPGキーを取り込む
    # rpm --import http://opensource.wandisco.com/RPM-GPG-KEY-WANdisco
  5. Subversionインストールを実行
    # yum install --enablerepo=wandisco --disablerepo=base,updates subversion
    WANdisco.repoの設定で、普段は無効にしているので、--enablerepoで有効にしてやる必要があります。
    base,updatesが優先されるのを防ぐため、--disablerepoでそれらを無効にしています。
    ずらーっとログが出て、
    ================================================================================
     Package             Arch            Version            Repository         Size
    ================================================================================
    Installing:
     subversion          x86_64          1.8.5-1            wandisco          2.2 M
    Installing for dependencies:
     serf                x86_64          1.3.2-2            wandisco           43 k
    
    Transaction Summary
    ================================================================================
    Install       2 Package(s)
    
    Total download size: 2.2 M
    Installed size: 7.6 M
    Is this ok [y/N]:
    な、インストール確認が出たら、yを入力して
    Is this ok [y/N]: y 
    インストールを確定します。
    またずらーっとログがでて、
    Installed:
      subversion.x86_64 0:1.8.5-1
    
    Dependency Installed:
      serf.x86_64 0:1.3.2-2
    
    Complete!
    なログが出ればインストール成功です。
  6. インストールされているパッケージを確認
    今インストールしたパッケージを確認してみます。
    # rpm -qa | grep subversion
    subversion-1.8.5-1.x86_64
  7. Subversionのバージョンを確認
    # svn --version
    svn, version 1.8.5 (r1542147)
       compiled Nov 19 2013, 15:28:00 on x86_64-unknown-linux-gnu
    (略)

アップデートする場合 Edit

普段は無効にしているので、yum updateでは更新されません。

# yum update --enablerepo=wandisco --disablerepo=base,updates

でアップデート確認、実行を行ってください。

Subversionの設定 Edit

とりあえずhttpでアクセスできるようにしてみる Edit

セキュリティは無視して、単純にhttp経由でアクセスできるようにしてみます。

  1. 必要なパッケージをインストール
    apache上でsubversionを動かすのに、mod_dav_svnが必要なのでインストールします。
    # yum install mod_dav_svn
  2. mod_dav_svnを有効にする
    # vim /etc/httpd/conf/httpd.conf
    でconfを開いて
    LoadModule dav_module modules/mod_dav.so
    LoadModule dav_svn_module modules/mod_dav_svn.so
    を、LoadModule がずらーっと書いてある箇所の末尾に追記する。(すでに存在していた場合は追記しなくてよいです)
    これをしないと、後述のsubversion.confでDAV svnを指定した時に、http再起動時、
    Unknown DAV provider: svn
    のエラーが出てしまいます。
  3. svnのルートディレクトリを作成
    svnのルートディレクトリを /var/svn として、ディレクトリを作成します。(フォルダの場所や名前は任意です)
    # mkdir /var/svn
  4. apacheが扱えるよう、フォルダのオーナーを変更
    # chown -R apache:apache /var/svn
  5. 新規リポジトリを作成
    テストとして、『testrepos』というリポジトリを作成します。
    # svnadmin create /var/svn/testrepos
  6. リポジトリに基本フォルダを追加コミット
    subversionは一般的に、trunk,tags,branchesにフォルダを分けてバージョンを管理します。このフォルダをサーバー上から作成して追加コミットしておきます。
    # svn mkdir file:///var/svn/testrepos/trunk file:///var/svn/testrepos/tags file:///var/svn/testrepos/branches -m "init repository."
  7. Subversion用のconfファイルを作成
    httpアクセス時の動作をconfファイルに記述します。
    #vim /etc/httpd/conf.d/subversion.conf
    <Locasion /svn>
      DAV svn
      SVNParentPath /var/svn
    </Location>
  8. apacheを再起動
    # /etc/init.d/httpd restart
    httpd を停止中:                                            [  OK  ]
    httpd を起動中:                                            [  OK  ]
  9. ブラウザでアクセスしてみる
    http://[サーバーのアドレス]/svn/testrepos

Basic認証で制限をかける Edit

前項で作成したリポジトリにBasic認証をかけてみます。

  1. パスワードファイルの作成
    svnフォルダに移動
    # cd /var/svn
    パスワードファイルを新規作成&最初のユーザー追加
    # htpasswd -c .htpasswd nanasi
    ユーザー追加する場合
    # htpasswd .htpasswd nanasi2
    ユーザー削除する場合
    # htpasswd -D .htpasswd nanasi2
  2. アクセスファイルの作成
    svnフォルダに移動
    # cd /var/svn
    .svnaccessファイルを作成
    # vim .svnaccess
    以下ファイルの中身
    # testrepos リポジトリ
    [testrepos:/]
    * =
    nanasi = rw
    nanasi2 = r
    * =認証されていないユーザーはアクセス不可
    nanasi = rwユーザーnanasiは、読み込みと書き込み可
    nanasi2 = rユーザーnanasi2は、読み込みのみ可
  3. mod_authz_svnを有効にする
    # vim /etc/httpd/conf/httpd.conf
    でconfを開いて
    LoadModule authz_svn_module modules/mod_authz_svn.so
    を、LoadModule がずらーっと書いてある箇所の末尾に追記する。(すでに存在していた場合は追記しなくてよいです)
    これを忘れると、httpd再起動時に、
    httpd を起動中: Syntax error on line 11 of /etc/httpd/conf.d/subversion.conf:
    Invalid command 'AuthzSVNAccessFile', perhaps misspelled or defined by a module not included in the server configuration
    なエラーが出ます。
  4. Subversion用のconfファイルを編集
    前項で作成したsubversion.confをBasic認証に対応したものに書き換えます。

    #vim /etc/httpd/conf.d/subversion.conf

    <Locasion /svn>
      DAV svn
      SVNParentPath /var/svn
    
      Require valid-user
    
      AuthType Basic
      AuthName "Subversion Repository"
      AuthUserFile /var/svn/.htpasswd
    
      AuthzSVNAccessFile /var/svn/.svnaccess
    </Location>
  5. httpdを再起動
    # /etc/init.d/httpd restart
    httpd を停止中:                                            [  OK  ]
    httpd を起動中:                                            [  OK  ]
  6. ブラウザでアクセスしてみる
    http://[サーバーのアドレス]/svn/testrepos

リロード   新規 編集 凍結 差分 添付 複製 名前変更   ホーム 一覧 単語検索 最終更新 バックアップ リンク元   ヘルプ   最終更新のRSS
Last-modified: 2018-08-22 (水) 00:02:57 (89d)