[Memo2016][ITPASS]サーバ交換作業(WWW)

WWW 班ログ

塩尻, 宮階で作業を行った.

phase 0 (準備)

WWW 班は特に作業を行っていない.

phase 1 (入替え開始)

WWW 班は特に作業を行っていない.

phase 2 (tako の root ログイン許可)

WWW 班は特に作業を行っていない.

phase 3 (ika から tako へ各種データをコピー)

WWW 班は特に作業を行っていない.

phase 4 (root ログイン禁止)

WWW 班は特に作業を行っていない.

phase 5 (tako, ika の交換: 設定ファイルの変更)

ホスト名と IP アドレスの変更

各種設定ファイルに存在する,ika と tako のホスト名と IP アドレスを入れ替えた. 編集の際は元のファイルを hoge_old としてバックアップを取った.

  • ホスト名の変更
    • 編集したファイル
      • /etc/hostname
      • /etc/hosts
      • /etc/mailname
      • /etc/gate/gate.conf
      • /etc/exim4/update-exim4.conf.conf
    • 上記の場所以外にも古い名前が残っていないか

      # grep tako (または ika) /etc/*
      # grep tako (または ika) /etc/*/*

      などで検索しながら作業する. 検索すると, ディレクトリですとメッセージが大量に出るので /* を増やして検索する.

    • ssh の公開鍵は消去されるので, そのままで良い.
    • /etc/hosts に関しては新 ika では tako, 新 tako では ika と書き換えた.
  • IP アドレスの変更
    • /etc/hosts と /etc/network/interfaces 内の IP アドレスを入れ替えた.

ただし, /etc/network/interfaces の dns-nameservers は ika, tako いずれも133.30.109.22 とする. /etc/hosts の address の項目も忘れない.

phase 6

  • ネットワークを再起動する
# /etc/init.d/networking restart

phase 7 (サービスの設定変更)

ここからホスト名が入れ替わっているので注意すること.

ika の WWW などの設定変更 (担当: 新 WWW 班)

  • [ITPASS2015]サービスの開始・停止 を参考に, 以下のサービスが永続的に立ち上がるように設定.

    • apache2
    • openbsd-inetd
    # systemctl enable apache2
    $ cd /etc/init.d
    # insserv -d openbsd-inetd
    # chmod 755 openbsd-inetd
  • ika から tako へ /home 領域を rsync した際に, /home/itpass/hiki/cgi の下にあるファイルの設定が元に戻ってしまっているので, 以下のファイルを次のように書き換える.
    • hiki.cgi

      • すでに変更後の状態だった.
      #!/usr/bin/ruby -I/usr/local/hiki
      load '/usr/local/hiki/hiki.cgi'
    • hikiconf.rb の最後の方
      • 書き換え前

        ### BEGIN: CREATED BY DEBIAN HIKISETUP ###
        @data_path      = '/home/itpass/hiki/data'
        @plugin_path    = '/usr/local/hiki/plugin'
        @template_path  = '/usr/local/hiki/template'
        @cgi_name       = 'hiki.cgi'
        ### END: CREATED BY DEBIAN HIKISETUP ###
      • 書き換え後

        ### BEGIN: CREATED BY DEBIAN HIKISETUP ###
        @data_path      = '/home/itpass/hiki/data'
        @plugin_path    = '/usr/local/hiki/plugin'
        @template_path  = '/usr/local/hiki/template'
        @cgi_name       = 'hiki.cgi'
        @lang           = 'ja'
        ### END: CREATED BY DEBIAN HIKISETUP ###

phase 8 (OS 再起動)

OS を再起動する.

# reboot

phase 9 (再起動後の動作確認)

サービスの起動確認

ps aux コマンドで以下の確認作業を行う.

  • ika
    • http (https) が起動していることを確認した.
  • tako
    • http (https) が起動していないことを確認.
    • ブラウザで https://tako-itpass.scitec.kobe-u.ac.jp/ にアクセスし, 各ページが正常に表示されないことを確認した.

サービスの動作確認

ika
  • http: ブラウザで https://ika-itpass.scitec.kobe-u.ac.jp/ にアクセスし, 各ページが正常に表示されることを確認できなかった.
  • エラー内容

    cannot load such file -- hiki/config (LoadError)
    /usr/lib/ruby/2.1.0/rubygems/core_ext

/kernel_require.rb:55:in `require'

/usr/lib/ruby/2.1.0/rubygems/core_ext /kernel_require.rb:55:in `require'
/usr/local/hiki/hiki.cgi:19:in `<top (required)>'
/home/itpass/public_html/hiki/hiki.cgi:2:in `load'
/home/itpass/public_html/hiki/hiki.cgi:2:in `<main>'
  • 研究室ページも所々見れない.
    • URL に .ja を付けると見れる.
  • /usr/local/apache2/conf/httpd.conf に間違いがあった.
    • mod_negotiation がコメントアウトされていた.
      • コメントアウトを外したところ研究室のページは閲覧可能に.
    • tako と ika で diff を取り, ファイルを修正した.
      • socache_shmcb_module
        • コメントアウト(70 行目)
      • cache_module
        • コメントアウトを外した(85 行目)
      • rewrite_module
        • そのまま
      • cgid_module
        • mod_cgi.so の文を追加(149 行目)
    • しかし Hiki エラー のまま
  • /home/epalab/public_html/hiki.cgi を書き換えた.
    • 一行目を /usr/local/hiki/lib に変更した.
  • エラー

    undefined method `hiki_menu' for #<Hiki::Plugin:0x00000000c7f808> (NoMethodError)
    /usr/local/hiki/lib/hiki/command.rb:172:in `generate_error_page'
    /usr/local/hiki/lib/hiki/command.rb:138:in `rescue in dispatch'
    /usr/local/hiki/lib/hiki/command.rb:103:in `dispatch'
    /usr/local/hiki/hiki.cgi:36:in `block in <top (required)>'
    /usr/local/hiki/lib/hiki/storage/base.rb:13:in `open_db'
    /usr/local/hiki/hiki.cgi:34:in `<top (required)>'
    /home/epalab/public_html/hiki/hiki.cgi:2:in `load'
    /home/epalab/public_html/hiki/hiki.cgi:2:in `<main>'
  • hiki_menu がどこにあるか探す
    • /usr/local/hiki/lib/hiki/plugin/00default にある.
      • ika では /usr/local/hiki/lib/hiki/command.rb で require されている.
      • tako では /usr/local/hiki/hiki/command.rb で require されている.
  • 試しに command.rb に以下を追加
    • require "hiki/plugin/00default"
    • エラーだったので消去
  • エラー内容

    cannot load such file -- hiki/config (LoadError)

/usr/lib/ruby/2.1.0/rubygems/core_ext/kernel_require.rb:55:in `require'

/usr/lib/ruby/2.1.0/rubygems/core_ext/kernel_require.rb:55:in `require'

/usr/local/hiki/hiki.cgi:19:in `<top (required)>'
/home/itpass/public_html/hiki/hiki.cgi:2:in `load'
/home/itpass/public_html/hiki/hiki.cgi:2:in `<main>'

(12/5 ここまで)

phase 9 (再起動後の動作確認)

サービスの動作確認

  • 研究室の hiki ページ(村上真也さんに作業していただいた)

    • ~epalab/hiki/cgi/hikiconf.rb を編集
    @plugin_path   = '/usr/local/hiki/plugin'
    を
    @plugin_path   = '/usr/local/hiki/misc/plugin'
    と編集してもエラー変わらず,
    #@plugin_path   = '/usr/local/hiki/misc/plugin'
    とコメントアウトして成功.
    • 編集前のファイルは以下の場所に
    ~epalab/hiki/cgi/hikiconf.rb-20161206-murashin
  • itpass の hiki ページ

    • /home/itpass/hiki/cgi/hikiconf.rb, ~itpass/hiki-secret/cgi/hikiconf.cgi を編集
    @plugin_path   = '/usr/local/hiki/plugin'
    をコメントアウトし,
    #@plugin_path   = '/usr/local/hiki/misc/plugin'
    とした.
    • ~itpass/public_html/hiki/hiki.cgi, ~itpass/public_html/hiki/hiki.cgi を編集
      • 一行目の末尾に /lib を追加した.
    • itpass の Hiki ページが見れるようになった.
  • 各 Hiki への書き込みテスト
    • 書き込めた
Hiki 修正し忘れの修正(bldg3)
  • /home/bldg3/hiki/cgi/hiki.cgi を以下のように変更

    #!/usr/bin/ruby -I/usr/local/hiki
    >
    #!/usr/bin/ruby -I/usr/local/hiki/lib
  • /home/bldg3/hiki/cgi/hikiconf.rb を以下のように変更

    @plugin_path   = '/usr/local/hiki/plugin'
    >
    #@plugin_path   = '/usr/local/hiki/plugin' 
/etc/hosts の書き換え
  • 2015 年度のマニュアルに間違いがあった.
    • /etc/hosts に関しては新 ika では tako, 新 tako では ika と書き換えると記載があったが, 新 ika では ika, 新 tako では tako とそれぞれの IPアドレスに対応させて書く.
  • IP アドレスと名前が対応しているか確認する.
httpd.conf
shiojich@ika-itpass:/usr/local/apache2/conf$ sudo diff -u original/httpd.conf httpd.conf
[sudo] password for shiojich: 
--- original/httpd.conf      2016-11-02 11:31:35.304212645 +0900
+++ httpd.conf       2016-12-06 17:40:50.943066089 +0900
@@ -16,7 +16,6 @@
 # with "/", the value of ServerRoot is prepended -- so "logs/access_log"
 # with ServerRoot set to "/usr/local/apache2" will be interpreted by the
 # server as "/usr/local/apache2/logs/access_log", whereas "/logs/access_log" 
-# will be interpreted as '/logs/access_log'.

 #
 # ServerRoot: The top of the directory tree under which the server's
@@ -82,7 +81,7 @@
 #LoadModule auth_digest_module modules/mod_auth_digest.so
 #LoadModule allowmethods_module modules/mod_allowmethods.so
 #LoadModule file_cache_module modules/mod_file_cache.so
-#LoadModule cache_module modules/mod_cache.so
+LoadModule cache_module modules/mod_cache.so
 #LoadModule cache_disk_module modules/mod_cache_disk.so
 #LoadModule cache_socache_module modules/mod_cache_socache.so
 #LoadModule socache_shmcb_module modules/mod_socache_shmcb.so
@@ -128,7 +127,7 @@
 #LoadModule session_cookie_module modules/mod_session_cookie.so
 #LoadModule session_dbd_module modules/mod_session_dbd.so
 #LoadModule slotmem_shm_module modules/mod_slotmem_shm.so
-#LoadModule ssl_module modules/mod_ssl.so
+LoadModule ssl_module         modules/mod_ssl.so
 #LoadModule lbmethod_byrequests_module modules/mod_lbmethod_byrequests.so
 #LoadModule lbmethod_bytraffic_module modules/mod_lbmethod_bytraffic.so
 #LoadModule lbmethod_bybusyness_module modules/mod_lbmethod_bybusyness.so
@@ -138,16 +137,18 @@
 LoadModule status_module modules/mod_status.so
 LoadModule autoindex_module modules/mod_autoindex.so
 #LoadModule info_module modules/mod_info.so
-#LoadModule cgid_module modules/mod_cgid.so
+LoadModule cgid_module modules/mod_cgid.so
 #LoadModule dav_fs_module modules/mod_dav_fs.so
 #LoadModule vhost_alias_module modules/mod_vhost_alias.so
-#LoadModule negotiation_module modules/mod_negotiation.so
+LoadModule negotiation_module modules/mod_negotiation.so
 LoadModule dir_module modules/mod_dir.so
 #LoadModule actions_module modules/mod_actions.so
 #LoadModule speling_module modules/mod_speling.so
-#LoadModule userdir_module modules/mod_userdir.so
+LoadModule userdir_module modules/mod_userdir.so
 LoadModule alias_module modules/mod_alias.so
-#LoadModule rewrite_module modules/mod_rewrite.so
+LoadModule rewrite_module     modules/mod_rewrite.so
+#LoadModule rewrite_module     modules/mod_userdir.so
+LoadModule cgid_module modules/mod_cgi.so

 <IfModule unixd_module>
 #
@@ -158,8 +159,8 @@
 # It is usually good practice to create a dedicated user and group for
 # running httpd, as with most system services.
 #
-User daemon
-Group daemon
+User www-data
+Group www-data

 </IfModule>

@@ -180,7 +181,7 @@
 # e-mailed.  This address appears on some server-generated pages, such
 # as error documents.  e.g. admin@your-domain.com
 #
-ServerAdmin you@example.com
+ServerAdmin itpadmin@itpass.scitec.kobe-u.ac.jp

 #
 # ServerName gives the name and port that the server uses to identify itself.
@@ -189,7 +190,7 @@
 #
 # If your host doesn't have a registered DNS name, enter its IP address here.
 #
-#ServerName www.example.com:80
+ServerName itpass.scitec.kobe-u.ac.jp:80

 #
 # Deny access to the entirety of your server's filesystem. You must
@@ -213,8 +214,8 @@
 # documents. By default, all requests are taken from this directory, but
 # symbolic links and aliases may be used to point to other locations.
 #
-DocumentRoot "/usr/local/apache2/htdocs"
-<Directory "/usr/local/apache2/htdocs">
+DocumentRoot "/home/itpass/public_html"
+<Directory "/home/itpass/public_html">
     #
     # Possible values for the Options directive are "None", "All",

     # or any combination of:
@@ -236,10 +237,12 @@
     #
     AllowOverride None

+    Order deny,allow
+
     #
     # Controls who can get stuff from this server.
     #
-    Require all granted
+         Require all granted
 </Directory>

 #
@@ -247,7 +250,7 @@
 # is requested.
 #
 <IfModule dir_module>
-    DirectoryIndex index.html
+    DirectoryIndex index.html index.htm index.htm.en index.html.en index.htm.ja index.html.ja
 </IfModule>

 #
@@ -265,7 +268,7 @@
 # logged here.  If you *do* define an error logfile for a <Virtual Host>
 # container, that host's errors will be logged there and not here.

 #
-ErrorLog "logs/error_log"
+ErrorLog "/var/log/httpd-error.log"

 #
 # LogLevel: Control the number of messages logged to the error_log.
@@ -294,13 +297,13 @@
     # define per-<VirtualHost> access logfiles, transactions will be
     # logged therein and *not* in this file.
     #
-    CustomLog "logs/access_log" common
+    # Customlog "logs/access_log" common

     #
     # If you prefer a logfile with access, agent, and referer information
     # (Combined Logfile Format) you can use the following directive.
     #
-    #CustomLog "logs/access_log" combined
+    CustomLog "logs/access_log" combined
 </IfModule>

 <IfModule alias_module>
@@ -339,16 +342,16 @@
     # ScriptSock: On threaded servers, designate the path to the UNIX
     # socket used to communicate with the CGI daemon of mod_cgid.
     #
-    #Scriptsock cgisock
+    Scriptsock cgisock
 </IfModule>

 #
 # "/usr/local/apache2/cgi-bin" should be changed to whatever your ScriptAliased
 # CGI directory exists, if you have that configured.
 #
-<Directory "/usr/local/apache2/cgi-bin">
-    AllowOverride None
-    Options None
+<Directory "/usr/local/apache2/cgi-bin/">
+    AllowOverride AuthConfig Limit
+    Options +ExecCGI +FollowSymLinks +IncludesNoExec
     Require all granted
 </Directory>

@@ -385,7 +388,7 @@
     # To use CGI scripts outside of ScriptAliased directories:
     # (You will also need to add "ExecCGI" to the "Options" directive.)
     #
-    #AddHandler cgi-script .cgi
+    AddHandler cgi-script .cgi

     # For type maps (negotiated resources):
     #AddHandler type-map var
@@ -454,16 +457,16 @@
 #Include conf/extra/httpd-autoindex.conf

 # Language settings
-#Include conf/extra/httpd-languages.conf
+Include conf/extra/httpd-languages.conf

 # User home directories
-#Include conf/extra/httpd-userdir.conf
+Include conf/extra/httpd-userdir.conf

 # Real-time info on requests and configuration
 #Include conf/extra/httpd-info.conf

 # Virtual hosts
-#Include conf/extra/httpd-vhosts.conf
+Include conf/extra/httpd-vhosts.conf

 # Local access to the Apache HTTP Server Manual
 #Include conf/extra/httpd-manual.conf
@@ -480,7 +483,7 @@
 </IfModule>

 # Secure (SSL/TLS) connections
-#Include conf/extra/httpd-ssl.conf
+Include conf/extra/httpd-ssl.conf
 #
 # Note: The following must must be present to support
 #       starting without SSL on platforms with no /dev/random equivalent
@@ -491,3 +494,68 @@
 SSLRandomSeed connect builtin
 </IfModule>

+ #
+# Setting for Hiki Area
+#
+<Directory "/home/epalab/public_html/hiki">
+ AllowOverride ALL
+ Options -MultiViews
+</Directory>
+
+<Directory "/home/itpass/public_html/hiki">
+ AllowOverride ALL
+ Options -MultiViews
+</Directory>
+
+<Directory "/home/aoelab/public_html/hiki">
+ AllowOverride ALL
+ Options -MultiViews
+</Directory>
+
+<Directory "/home/chikuwa2/public_html/hiki">
+ AllowOverride ALL
+ Options -MultiViews
+</Directory>
+
+<Directory "/home/chikuwa3/public_html/hiki">
+ AllowOverride ALL
+ Options -MultiViews
+</Directory>
+
+
+<Directory "/home/itpass/public_html/hiki-secret">
+ AllowOverride ALL
+ Options -MultiViews
+</Directory>
+
+<Directory "/home/uwabami/public_html/hiki">
+ AllowOverride FileInfo AuthConfig Limit Indexes Options=ExecCGI,FollowSymlinks
+ Options -MultiViews
+</Directory>
+
+<Directory "/home/bldg3/public_html/hiki">
+ AllowOverride ALL
+ Options -MultiViews
+</Directory>
+
+<Directory "/home/fourtran/public_html/hiki">
+ AllowOverride FileInfo AuthConfig Limit Indexes Options=ExecCGI,FollowSymlinks
+ Options -MultiViews
+</Directory>
+
+<Directory "/home/itpass/public_html/hiki-IPtable">
+ AllowOverride ALL
+</Directory>
+</Directory>
+
+<Directory "/home/yot/public_html/hiki">
+  AllowOverride FileInfo AuthConfig Limit Indexes Options=ExecCGI, FollowSymlinks
+</Directory>
+
+<Directory "/home/okazakis/public_html/hiki">
+ AllowOverride FileInfo AuthConfig Limit Indexes Options=ExecCGI,FollowSymlinks
+ Options -MultiViews
+</Directory>
+
+# uncomment out the below to deal with user agents that deliberately
+ # violate open standerds by misusing DNT (DNT *must* be a specific
+ # end-user choice)
Last modified:2016/12/16 15:50:17
Keyword(s):
References:[[ITPASS2016]2016年度サーバ構築ログ]