<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>はらぺこ日誌 &#187; サーバー管理</title>
	<atom:link href="https://blog.harapeko.jp/tag/%e3%82%b5%e3%83%bc%e3%83%90%e3%83%bc%e7%ae%a1%e7%90%86/feed/" rel="self" type="application/rss+xml" />
	<link>https://blog.harapeko.jp</link>
	<description>株式会社はらぺこ 公式ブログ</description>
	<lastBuildDate>Mon, 30 Oct 2017 14:32:56 +0000</lastBuildDate>
	<language>ja</language>
		<sy:updatePeriod>hourly</sy:updatePeriod>
		<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.9.2</generator>
	<item>
		<title>Trac で .wsgi ファイルを複数設定する場合の留意点</title>
		<link>https://blog.harapeko.jp/2013/03/21/trac_with_mod_wsgi/</link>
		<comments>https://blog.harapeko.jp/2013/03/21/trac_with_mod_wsgi/#comments</comments>
		<pubDate>Thu, 21 Mar 2013 06:59:03 +0000</pubDate>
		<dc:creator><![CDATA[村山 俊之]]></dc:creator>
				<category><![CDATA[技術メモ]]></category>
		<category><![CDATA[Trac]]></category>
		<category><![CDATA[サーバー管理]]></category>

		<guid isPermaLink="false">http://blog.harapeko.jp/?p=283</guid>
		<description><![CDATA[小ネタですが… 重要な Note: 複数の .wsgi ファイルを使用する場合 (それぞれのファイルに別個の  [&#8230;]]]></description>
				<content:encoded><![CDATA[<p>小ネタですが…</p>
<blockquote cite="http://developer.harapeko.jp/trac/original/ideanote/wiki/TracModWSGI" title="Trac と mod_wsgi">
<p>
<strong>重要な Note:</strong> 複数の <tt>.wsgi</tt> ファイルを使用する場合 (それぞれのファイルに別個の Trac environment を設定するケースなど) は、 <tt>os.environ['TRAC_ENV']</tt> には Trac environment のパスを <em>設定しない</em> でください。この方法を使うと、別の Trac environment の設定が Trac にロードされてしまうことがあります。 (以前にロードした Trac environment のパスが使われてしまいます。) この問題は <tt>.wsgi</tt> ファイルの内容を下記の通り変更することで回避できます:
</p>
<div class="code">
<pre><span class="kn">import</span> <span class="nn">os</span>

os<span class="o">.</span>environ<span class="p">[</span><span class="s">'PYTHON_EGG_CACHE'</span><span class="p">]</span> <span class="o">=</span> <span class="s">'/usr/local/trac/mysite/eggs'</span>

<span class="kn">import</span> <span class="nn">trac.web.main</span>
<span class="k">def</span> <span class="nf">application</span><span class="p">(</span>environ<span class="p">,</span> start_response<span class="p">):</span>
  environ<span class="p">[</span><span class="s">'trac.env_path'</span><span class="p">]</span> <span class="o">=</span> <span class="s">'/usr/local/trac/mysite'</span> 
  <span class="k">return</span> trac<span class="o">.</span>web<span class="o">.</span>main<span class="o">.</span>dispatch_request<span class="p">(</span>environ<span class="p">,</span> start_response<span class="p">)</span>
</pre>
</div>
</blockquote>
<p><span id="more-283"></span><br />
ここで、</p>
<pre>
os.environ['TRAC_ENV_PARENT_DIR'] = '/path/to/parent-dir'
</pre>
<p>を使っていた場合、これを回避コードに置き換えるには、 <code>environ</code> の添え字を <code>'trac.env_parent_dir'</code> としてあげればいいみたいです。</p>
<pre>
def application(environ, start_response):
        environ['trac.env_parent_dir'] = '/path/to/parent-dir'
        return trac.web.main.dispatch_request(environ, start_response)
</pre>
<p>弊社の場合、一方を公開のプロジェクト、もう一方を非公開のプロジェクト (SSL 通信限定でパスワード保護) としていたのに、リロード繰り返したら公開の方の URL が非公開の内容を指していたりで機密的にかなりやばいことになっていた <tt>(^_^;;;</tt> ので、似たようなことをやろうとしている方は厳重に注意が必要です…。</p>
]]></content:encoded>
			<wfw:commentRss>https://blog.harapeko.jp/2013/03/21/trac_with_mod_wsgi/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>CentOS5 で最新の DBD::mysql を導入する</title>
		<link>https://blog.harapeko.jp/2011/01/11/centos5-cpan-update/</link>
		<comments>https://blog.harapeko.jp/2011/01/11/centos5-cpan-update/#comments</comments>
		<pubDate>Tue, 11 Jan 2011 03:38:49 +0000</pubDate>
		<dc:creator><![CDATA[村山 俊之]]></dc:creator>
				<category><![CDATA[技術メモ]]></category>
		<category><![CDATA[CentOS]]></category>
		<category><![CDATA[CPAN]]></category>
		<category><![CDATA[MySQL]]></category>
		<category><![CDATA[Perl]]></category>
		<category><![CDATA[サーバー管理]]></category>

		<guid isPermaLink="false">http://blog.harapeko.jp/?p=151</guid>
		<description><![CDATA[あけましておめでとうございます。またしてもブログがおざなりになってしまいました… orz 直接お金になる仕事で [&#8230;]]]></description>
				<content:encoded><![CDATA[<p>あけましておめでとうございます。またしてもブログがおざなりになってしまいました… orz</p>
<p>直接お金になる仕事ではないのですが、ここしばらく、某所の BBS を開発するため、 Perl をいじっております。正直、 .NET や JavaScript 、ケータイアプリの開発なんてことばかりやっておりますと、たまにいじる Perl が楽しくて楽しくて、ついついこっちばかりやってしまう、という日々がしばらく続いております。いかんですな。</p>
<p>で、こちらの開発がとりあえずキリの良いところまで進んだので、一旦お蔵入りにしようと思うのですが (といっても年単位で寝かせるわけではないですが)、その前にこれに関連する技術的なメモをしたためておこうかと思うのであります。</p>
<p>作っているのは、さくらの共有レンタルサーバーサービス上で動作する CGI なのですが、レンタルサーバの性質上、 CPAN から最新のモジュールを引っ張ってくることが出来るので、割とモダンチックなスタイルで開発できるのが強みだったりします。</p>
<p>ただ、レンタルサーバ上で動作確認する場合、 500 エラーになってもエラーログをすぐには参照できないので (さくらにメールで問い合わせすることは可能らしいですが…)、弊社サーバー上にも設置し、動作確認するようにしました。</p>
<p>弊社サーバーはさくらの VPS を利用しており、 CentOS5 で動いています。基本的にはソフトウェアの導入は yum から行っているのですが、その場合、 DBD::mysql を始めとした多くの CPAN モジュールが、かなり古いバージョンで導入されることになります。特に、 <strong>DBD::mysql は 3.0007 と極めて古く、Unicode を扱うのに必要不可欠な接続時オプション mysql_enable_utf8 が使えない</strong>といった弊害がありました。他にも、 DateTime がタイムゾーンを理解できないなど、いろいろと弊害があったため、 CPAN から最新版をインストールしようかと試みたのですが、そのままではほとんどのモジュールについてコンパイルが通らないなど、cpan コマンドからではインストールが出来ませんでした。<br />
<span id="more-151"></span></p>
<h3>CPAN 自体を最新版に</h3>
<p>まず、cpan コマンドとして動作する Bundle::CPAN モジュール自体が古いので、それを最新にしてしまいましょう。</p>
<pre>
$ sudo cpan -i Bundle::CPAN
</pre>
<p>さらに、導入済みのモジュールを最新版に一括して更新してしまいましょう。こちらは cpan コマンドからではうまくいかなかったので、 perl から。</p>
<pre>
$ sudo perl -MCPAN -e 'CPAN::Shell-&gt;install(CPAN::Shell-&gt;r)'
</pre>
<h3>DBD::mysql のインストールには MySQL 自体のソースが必要</h3>
<p>ここまでやっても、DBD::mysql のインストールはやっぱり失敗していて、古いバージョンのままです。</p>
<pre>
$ perl -MDBD::mysql -e 'print "$DBD::mysql::VERSION\n"'
3.0007
$
</pre>
<p>結論から言うと、DBD::mysql を make する際に、MySQL 自体のヘッダファイルを参照しており、単に yum から MySQL だけを入れた状態ではこのヘッダファイルが導入されていないために、コンパイルに失敗してしまいます。そこで、 MySQL の開発用リソースを導入するパッケージ <strong>mysql-devel</strong> を事前に入れておく必要があります。</p>
<pre>
$ sudo yum install mysql-devel
$ sudo cpan -i DBD::mysql
</pre>
<p>これで、最新の DBD::mysql のインストールが成功するはずです。</p>
]]></content:encoded>
			<wfw:commentRss>https://blog.harapeko.jp/2011/01/11/centos5-cpan-update/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Apache 周りの設定と、WebDAV 設定</title>
		<link>https://blog.harapeko.jp/2010/11/05/apache-webdav-setting/</link>
		<comments>https://blog.harapeko.jp/2010/11/05/apache-webdav-setting/#comments</comments>
		<pubDate>Fri, 05 Nov 2010 06:10:31 +0000</pubDate>
		<dc:creator><![CDATA[村山 俊之]]></dc:creator>
				<category><![CDATA[技術メモ]]></category>
		<category><![CDATA[活動記録]]></category>
		<category><![CDATA[Apache]]></category>
		<category><![CDATA[WebDAV]]></category>
		<category><![CDATA[サーバー管理]]></category>

		<guid isPermaLink="false">http://blog.harapeko.jp/?p=144</guid>
		<description><![CDATA[会社サーバー絡みで最近行った設定に関するメモです。 サーバー全体の動作が重くなるのをどうにかする さくらの V [&#8230;]]]></description>
				<content:encoded><![CDATA[<p>会社サーバー絡みで最近行った設定に関するメモです。<br />
<span id="more-144"></span></p>
<h3>サーバー全体の動作が重くなるのをどうにかする</h3>
<p>さくらの VPS を利用するようになってから、サーバー全体の動作が重いのが気になっていました。結論から言うと、 Apache がメモリーを食いつぶし、スワップを引き起こしまくっていたからでした。</p>
<p>Trac のページやこのブログ、会社のトップページでさえ、表示するのにやたらと時間がかかるので、 ssh で接続して状況を見ようとすると、その ssh での応答も非常に時間がかかるという状態。まさかこれが単体の専用サーバーと VPS の差だとは到底思えなかったので、 ps -AF するなり top するなりして軽く状況を見てみると、メモリーどころかスワップ領域もほぼフル回転で httpd が食いつぶしていた。こりゃああかんと言うことで、ネットで調べつつ設定を修正…。</p>
<h4>起動するプロセスの数を減らす</h4>
<p>とりあえず応急処置と言うことで、一度に起動するプロセスの数を減らすことを考えてみた。以下のサイトが参考になりました。</p>
<ul>
<li><a href="http://labs.unoh.net/2008/03/apache_mpm.html">ウノウラボ Unoh Labs: Apache MPM の基礎をしっかりと理解しよう！</a></li>
</ul>
<p>まず <a href="http://httpd.apache.org/docs/2.2/mpm.html" title="マルチプロセッシングモジュール (MPM) - Apache HTTP サーバ">MPM</a> に何を選択しているのかを知る必要があります。 CentOS を採用しているさくらの VPS では prefork MPM が選択されていました。</p>
<pre>
$ cat /etc/sysconfig/httpd
# Configuration file for the httpd service.

#
# The default processing model (MPM) is the process-based
# 'prefork' model.  A thread-based model, 'worker', is also
# available, but does not work with some modules (such as PHP).
# The service must be stopped before changing this variable.
#
#HTTPD=/usr/sbin/httpd.worker

(以下略)
</pre>
<p>その場合、 httpd.conf ファイルにて修正すべきは、以下の部分と言うことになります。</p>
<pre>
&lt;IfModule prefork.c&gt;
StartServers       8
MinSpareServers    5
MaxSpareServers   20
ServerLimit      256
MaxClients       256
MaxRequestsPerChild  4000
&lt;IfModule&gt;
</pre>
<p>基本的に社員2名の会社で社内サービスがメイン、会社サイトもこのブログもそれほど頻繁にアクセスされているわけでもないのに、プロセス 256個同時起動はまずあり得ないでしょう。プロセス 1つで 70MB ぐらい消費してしまうのに、メモリー 512MB、スワップ領域 2GB でプロセスをそんなに確保できるわけがありません。</p>
<p>また、待機するプロセス数の最大 20も大きすぎます。一度作られた待機プロセスは Apache を再起動でもしない限りは残ったままになってしまうらしく、メモリー使用量を抑えたいのであれば、この数を減らしてやる必要があります。</p>
<p>というわけで、変更後の内容は以下の通りです。</p>
<pre>
&lt;IfModule prefork.c&gt;
StartServers       8
MinSpareServers    5
MaxSpareServers   10
ServerLimit       15
MaxClients        15
MaxRequestsPerChild  4000
&lt;/IfModule&gt;
</pre>
<p>とりあえずこの設定で数日間動かしてみたところ、それでもまだメモリーは景気よく食いつぶされているものの、重たくて使い物にならないような状況には至らなくなりました。</p>
<h4>使わなさそうなモジュールをざっくり外す</h4>
<p>1つ1つのプロセスが消費するメモリー容量がそもそも大きいので、シェイプアップも図ってみることにしました。デフォルトでロードするよう設定されているモジュール類でも、必ずしも全て必要なわけではなく、使わないモジュールを外すことでメモリー使用量を抑えることができるという<a href="http://memo.majide.com/index.php?%A1%DAApache%A1%DB%A5%E2%A5%B8%A5%E5%A1%BC%A5%EB%A4%CE%BA%EF%BD%FC%A4%CB%A4%E8%A4%EA%A5%E1%A5%E2%A5%EA%A4%F2%C0%E1%CC%F3%A4%B9%A4%EB" title="【Apache】モジュールの削除によりメモリを節約する - (・∀・)イイ!!Memo">情報</a>を見つけたので、<a href="http://httpd.apache.org/docs/2.2/mod/" title="モジュール一覧 - Apache HTTP サーバ">Apache のドキュメント</a>とにらめっこしながら、今は使っていないし近い将来使う予定もなさそうなモジュールを威勢よく外してみました。</p>
<pre>
LoadModule auth_basic_module modules/mod_auth_basic.so
LoadModule auth_digest_module modules/mod_auth_digest.so
LoadModule authn_file_module modules/mod_authn_file.so
#LoadModule authn_alias_module modules/mod_authn_alias.so
#LoadModule authn_anon_module modules/mod_authn_anon.so
#LoadModule authn_dbm_module modules/mod_authn_dbm.so
LoadModule authn_default_module modules/mod_authn_default.so
LoadModule authz_host_module modules/mod_authz_host.so
LoadModule authz_user_module modules/mod_authz_user.so
LoadModule authz_owner_module modules/mod_authz_owner.so
#LoadModule authz_groupfile_module modules/mod_authz_groupfile.so
#LoadModule authz_dbm_module modules/mod_authz_dbm.so
LoadModule authz_default_module modules/mod_authz_default.so
#LoadModule ldap_module modules/mod_ldap.so
#LoadModule authnz_ldap_module modules/mod_authnz_ldap.so
#LoadModule include_module modules/mod_include.so
LoadModule log_config_module modules/mod_log_config.so
LoadModule logio_module modules/mod_logio.so
LoadModule env_module modules/mod_env.so
#LoadModule ext_filter_module modules/mod_ext_filter.so
LoadModule mime_magic_module modules/mod_mime_magic.so
LoadModule expires_module modules/mod_expires.so
#LoadModule deflate_module modules/mod_deflate.so
LoadModule headers_module modules/mod_headers.so
#LoadModule usertrack_module modules/mod_usertrack.so
LoadModule setenvif_module modules/mod_setenvif.so
LoadModule mime_module modules/mod_mime.so
LoadModule dav_module modules/mod_dav.so
#LoadModule status_module modules/mod_status.so
LoadModule autoindex_module modules/mod_autoindex.so
#LoadModule info_module modules/mod_info.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 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 alias_module modules/mod_alias.so
LoadModule rewrite_module modules/mod_rewrite.so
#LoadModule proxy_module modules/mod_proxy.so
#LoadModule proxy_balancer_module modules/mod_proxy_balancer.so
#LoadModule proxy_ftp_module modules/mod_proxy_ftp.so
#LoadModule proxy_http_module modules/mod_proxy_http.so
#LoadModule proxy_connect_module modules/mod_proxy_connect.so
#LoadModule cache_module modules/mod_cache.so
#LoadModule suexec_module modules/mod_suexec.so
#LoadModule disk_cache_module modules/mod_disk_cache.so
#LoadModule file_cache_module modules/mod_file_cache.so
#LoadModule mem_cache_module modules/mod_mem_cache.so
LoadModule cgi_module modules/mod_cgi.so
#LoadModule version_module modules/mod_version.so
</pre>
<p>厳密にはこれに加えて、さらに <code>conf.d/proxy_ajp.conf</code> や <code>conf.d/welcome.conf</code> の中身をコメントアウトしてみたりもしています。結果として、メモリー使用量はプロセス当たり 70MB ぐらいだったのが 50MB ぐらいまでスリムアップしました。</p>
<h3>WebDAV 設定</h3>
<p>社内で一時的なファイルのやりとりをするのに使用する共有フォルダ的なものが欲しかったので、WebDAV を設定して Web フォルダとして使用することにしました。要件としては以下の通りです。</p>
<ul>
<li>クライアントは Windows および Mac OS X (あとたまに Ubuntu)。</li>
<li>社外には公開しない。
<ul>
<li>認証が必要。匿名アクセスは不許可。</li>
<li>SSL による通信の保護が必要。</li>
</ul>
</li>
</ul>
<p>まず、SSL を使用するため、 developer.harapeko.jp サブドメインを使用することにしました。 WebDAV の為のディレクトリは、 developer.harapeko.jp サブドメイン用に用意しているディレクトリ下に作成することにします。</p>
<pre>
$ mkdir -p /var/www/vhosts/developer/dav/davroot
</pre>
<p><code>dav</code> ディレクトリ、<code>dav/davroot</code> ディレクトリの両方に、 apache ユーザーが書き込みを行う権限が必要です。</p>
<p>次に、ダイジェスト認証用の認証ファイルを <code>dav</code>ディレクトリ下に作成します。 realm を <code>DAV</code> とする場合、</p>
<pre>
$ htdigest -c /var/www/vhosts/developer/dav/.htdigest DAV murachi
</pre>
<p>とかやって、パスワードを設定します。 2人目以降は <code>-c</code> オプションは不要です。</p>
<p>そして、<code>conf.d/ssl.conf</code> (SSL が適用されているヴァーチャルホストに対して設定を行うので、<code>conf/httpd.conf</code> ではないという点に注意) の <code>&lt;VirtualHost&gt;</code> セクション内に、以下の設定を書き加えました。</p>
<pre>
&lt;ifmodule mod_dav.c&gt;
    DavLockDB /var/www/vhosts/developer/dav/DavLock

    Alias /dav /var/www/vhosts/developer/dav/davroot
    &lt;Location /dav&gt;
        Order Allow,Deny
        Allow from all
        Options +Indexes
        Dav On

        AuthType Digest
        AuthName DAV
        AuthUserFile /var/www/vhosts/developer/dav/.htdigest
        &lt;LimitExcept OPTIONS&gt;
            Require valid-user
        &lt;/LimitExcept&gt;
    &lt;/Location&gt;
    &lt;Location /&gt;
        Header add MS-Author-Via &quot;DAV&quot;
    &lt;/Location&gt;
&lt;/ifmodule&gt;
</pre>
<p>あとは Apache を再起動すれば ok です。</p>
<p>設定ファイルについて軽く解説すると、まず、最後の</p>
<pre>
    &lt;Location /&gt;
        Header add MS-Author-Via &quot;DAV&quot;
    &lt;/Location&gt;
</pre>
<p>の部分は、Windows から Web フォルダとしてアクセスする場合に必ず必要になります。この記述がないと、Windows クライアントは <code>/_vti_inf.html</code> ファイルが見つからないなどという意味不明なエラーを吐いてこけてしまいます。この設定のロケーションは <code>/</code> でなければなりません。</p>
<p>それから、</p>
<pre>
        &lt;LimitExcept OPTIONS&gt;
            Require valid-user
        &lt;/LimitExcept&gt;
</pre>
<p>の部分は、本来であれば</p>
<pre>
        Require valid-user
</pre>
<p>のみであるべきなのですが、Digest 認証を用いる場合には、上記のように書かないと、やはり Windows の Web フォルダとして利用することができません。これはどうやら Windows の (IE の?) バグのようで、 OPTIONS メソッドでアクセスする際にのみ、 Digest 認証が理解できないからなのだそうです。</p>
<p>この辺の、 Windows の Web フォルダ機能に絡んだ設定方法については、以下のサイトが参考になりました。</p>
<ul>
<li><a href="http://kamoland.com/wiki/wiki.cgi?WebDAV%A5%B5%A1%BC%A5%D0%A4%CE%B9%BD%C3%DB">WebDAVサーバの構築 &#8211; KamoLand</a></li>
<li><a href="http://d.hatena.ne.jp/rero/20050524/p2">Web フォルダで WebDAV &#8211; reroの日記</a></li>
</ul>
]]></content:encoded>
			<wfw:commentRss>https://blog.harapeko.jp/2010/11/05/apache-webdav-setting/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>会社サーバーをさくらの VPS に移転しました。</title>
		<link>https://blog.harapeko.jp/2010/10/15/move-to-sakura-vps/</link>
		<comments>https://blog.harapeko.jp/2010/10/15/move-to-sakura-vps/#comments</comments>
		<pubDate>Fri, 15 Oct 2010 07:54:44 +0000</pubDate>
		<dc:creator><![CDATA[村山 俊之]]></dc:creator>
				<category><![CDATA[技術メモ]]></category>
		<category><![CDATA[活動記録]]></category>
		<category><![CDATA[Apache]]></category>
		<category><![CDATA[CentOS]]></category>
		<category><![CDATA[DNS]]></category>
		<category><![CDATA[Postfix]]></category>
		<category><![CDATA[SSL]]></category>
		<category><![CDATA[Subversion]]></category>
		<category><![CDATA[Trac]]></category>
		<category><![CDATA[サーバー管理]]></category>
		<category><![CDATA[ドメイン]]></category>

		<guid isPermaLink="false">http://blog.harapeko.jp/?p=140</guid>
		<description><![CDATA[会社サーバーとして、これまでファーストサーバさんのデルタ1 というサービスを利用させて頂いていたのですが、のっ [&#8230;]]]></description>
				<content:encoded><![CDATA[<p>会社サーバーとして、これまで<a href="http://www.fsv.jp/">ファーストサーバ</a>さんの<a href="http://www.senyu.jp/dt/">デルタ1</a> というサービスを利用させて頂いていたのですが、のっぴきならない事由 (ごくごく経済的な事情 T-T) により、<a href="http://www.sakura.ad.jp/">さくらインターネット</a>さんの<a href="http://vps.sakura.ad.jp/">さくらのVPS</a> というサービスに乗り換えることにしました。そして、その移転作業が完了致しましたので、ご報告申し上げます。</p>
<p>と、いっても、現状何かサービスを展開しているわけでも無し、本ブログもこれまで通りそのまま閲覧できますので、「だから何?」とか言われちゃうと困ってしまうわけですが…。</p>
<p>今回の移転作業に於きましては、<strong>すべての作業内容を逐次メモに取り、その内容を公開しております</strong>。弊社のように、既に他社の専用サーバや VPS を用いてサーバーを構築しているものの、とっても安価でよさげなさくらの VPS に移行したいなぁなどとお考えの方々に、少しでも参考になれば幸いです。</p>
<ul>
<li><a href="http://developer.harapeko.jp/trac/original/ideanote/wiki/HowTo/SakuraVpsSetup">さくらの VPS セットアップメモ</a></li>
</ul>
]]></content:encoded>
			<wfw:commentRss>https://blog.harapeko.jp/2010/10/15/move-to-sakura-vps/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>とりあえず svn の設定だけ。</title>
		<link>https://blog.harapeko.jp/2009/06/25/svn-setting/</link>
		<comments>https://blog.harapeko.jp/2009/06/25/svn-setting/#comments</comments>
		<pubDate>Thu, 25 Jun 2009 00:17:56 +0000</pubDate>
		<dc:creator><![CDATA[村山 俊之]]></dc:creator>
				<category><![CDATA[技術メモ]]></category>
		<category><![CDATA[活動記録]]></category>
		<category><![CDATA[Apache]]></category>
		<category><![CDATA[otoco]]></category>
		<category><![CDATA[Subversion]]></category>
		<category><![CDATA[サーバー管理]]></category>

		<guid isPermaLink="false">http://blog.harapeko.jp/?p=44</guid>
		<description><![CDATA[初っぱなから 40分オーバーです (汗。2時間だけ作業するってのは難しいな。 とりあえず svn だけ設定しま [&#8230;]]]></description>
				<content:encoded><![CDATA[<p>初っぱなから 40分オーバーです (汗。2時間だけ作業するってのは難しいな。</p>
<p>とりあえず <a href="http://svn.harapeko.jp/otoco/">svn だけ設定</a>しました (←まだ匿名アカウントを用意していないので私以外はアクセスできませんが…)。Subversion/WebDAV は初めて設定するのでちょっと手こずりました。</p>
<p>設定の際に参考にさせて頂いたサイトを以下に記します (敬称略)。多謝!!</p>
<ul>
<li><a href="http://www.sera.desuyo.net/WebDAV/selinux.html">Fedora Core 3 で WebDAV/Subversion を使おう</a>
<p>基本的な内容は概ねここに書かれていました。SELinux は使っていないのですが…。</p>
</li>
<li><a href="http://saikyoline.jp/wiki/index.php?%A5%E1%A5%E2%2FWebDAV%A4%C7Subversion">メモ/WebDAVでSubversion &#8211; SaikyoLine.jp</a>
<p>Apache 側での設定がもう少し詳しく触れられています。ユーザー毎の制御についても書かれています。</p>
</li>
<li><a href="http://wiki.livedoor.jp/syo1976/d/AuthzSVNAccessFile">AuthzSVNAccessFile &#8211; 気の向くままに･･･ &#8211; livedoor Wiki（ウィキ）</a>
<p>ユーザー毎の制御を行う AuthzSVNAccessFile の設定方法について解説されています。</p>
</li>
<li><a href="http://g-chan.dip.jp/square/archives/2008/02/subversionwebdav.html">G-chan Square &#8211; subversionとWebDAVと</a>
<p>Subversion/WebDAV でアクセス時に 403 Forbidden エラーが出て失敗してしまう場合は、こちらをチェックしましょう。私もこれでハマりました (^_^;A 。</p>
</li>
</ul>
]]></content:encoded>
			<wfw:commentRss>https://blog.harapeko.jp/2009/06/25/svn-setting/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>開発環境構成検討中…。とりあえず Trac のインストールは完了。</title>
		<link>https://blog.harapeko.jp/2008/12/18/developer-repository-structure/</link>
		<comments>https://blog.harapeko.jp/2008/12/18/developer-repository-structure/#comments</comments>
		<pubDate>Thu, 18 Dec 2008 11:15:54 +0000</pubDate>
		<dc:creator><![CDATA[村山 俊之]]></dc:creator>
				<category><![CDATA[技術メモ]]></category>
		<category><![CDATA[CentOS]]></category>
		<category><![CDATA[Subversion]]></category>
		<category><![CDATA[Trac]]></category>
		<category><![CDATA[サーバー管理]]></category>

		<guid isPermaLink="false">http://blog.harapeko.jp/?p=11</guid>
		<description><![CDATA[さて、 SSL は使える状態になったので、いよいよ Subversion のリポジトリ構築と Trac の導入 [&#8230;]]]></description>
				<content:encoded><![CDATA[<p>さて、 SSL は使える状態になったので、いよいよ Subversion のリポジトリ構築と Trac の導入、セットアップに入ります。</p>
<h3>ファイル構成を検討する</h3>
<p>が、その前に、今後もこのサーバーを開発用途に使い続けていくことを考え、使い始めからファイル構成には気を遣ってみようと思い、以下のような方針を出してみました。</p>
<ul>
<li>すべての開発関連ファイルは /var/Developer の配下に配置する。</li>
<li>オリジナルの開発物と、外部から委託された案件とで全体を二分する。</li>
<li>その中で、プロジェクト毎にディレクトリを設ける。</li>
<li>プロジェクトのディレクトリ毎に、単独の svn リポジトリと trac リポジトリを設ける。</li>
</ul>
<p>これを例示すると、以下のようなファイル構成となります。</p>
<pre>/var/Developer/
  original/    # オリジナル用
    foo/    # プロジェクト foo
      svn/    # foo の svn リポジトリ
      trac/    # foo の trac リポジトリ
      .htdigest    # 内緒のプロジェクトの場合、 Trac にログオンするためのダイジェスト認証ファイル
    bar/    # プロジェクト bar
      svn/
      trac/
    baz/    # プロジェクト baz
    # ...
  trust/    # 外部から委託された案件用
    hoge/    # プロジェクト hoge
      svn/
      trac/
      .htdigest    # 委託案件は他人にみられちゃまずいので絶対必須
    fuga/    # プロジェクト fuga
    # ...</pre>
<h3>Trac の導入</h3>
<p>それでは Trac を導入しましょう。今回、以下のサイトを参考に、 Trac の導入を行いました。感謝!!<br />
<span id="more-11"></span></p>
<ul>
<li><a href="http://www.hanada.org/setting-up-trac-on-centos5">CentOS &amp; Trac | Hanada.Org</a></li>
<li><a href="http://d.hatena.ne.jp/hurvinek/20080829/1220001650">Trac インストールに挑戦 &#8211; メモチョウ</a></li>
</ul>
<p>基本的には前者のサイトを参考にしました。後者は python-genshi が yum からは install できなかった点について参考にさせていただきました。</p>
<p>やったことについては概ね以下の通りです。</p>
<ol>
<li>SELinux はそもそも使っていません。 iptables は使っていますが、 yum のポートはフィルタしていないのでここも設定不要でした。</li>
<li>Subversion 用 WebDAV モジュールはインストールだけしましたが、秘匿する案件については利用予定はないので、Apache 側の設定まではしませんでした。</li>
<li>今回は外部委託の案件なので、この案件のファイルにアクセスできる権限のためのグループを設けました。
<pre>
% sudo groupadd hoge
% sudo vim /etc/group # グループにユーザーを追加する
</pre>
</li>
<li>Subversion リポジトリを構築します。だいたい以下のような感じです。
<pre>% su -
% mkdir -p /var/Developer/trust/hoge/svn
% cd /var/Developer/trust/hoge/svn
% chown murachi.hoge .
% chmod g+w .
% chmod g+s .    # 配下のファイルのデフォルトグループ権限が統一される
% exit    # root のままリポジトリ作ると import 時に問題が起こるので…
% svnadmin create /var/Developer/trust/hoge/svn</pre>
<p>そして手元の環境から、既に作り始めているファイルをディレクトリごと import します。 Linux 環境、あるいは Cygwin などを利用しているならば、以下の通り。</p>
<pre>% svn import /path/to/hoge svn+ssh://murachi@onaka.harapeko.jp/var/Developer/trust/hoge/svn/trunk/hoge</pre>
<p><q><code>trunk/hoge</code></q> がインポート先パスに追加されているのは、メイントランクのプロジェクト名にファイルを突っ込みたいから。 <a href="http://tortoisesvn.tigris.org/">TortoiseSVN</a> を使うのであれば、インポートするフォルダを選択して、上記と同様の URI を指定してあげれば ok 。別の場所に同様の URI でチェックアウトできることも確認しておきましょう。</li>
<li>Trac をインストールします。<a title="CentOS &amp; Trac | Hanada.Org" href="http://www.hanada.org/setting-up-trac-on-centos5">先ほどのサイト</a>を参照して、 yum のリポジトリ追加を行ってからインストールを試みます。が、<a title="Trac インストールに挑戦 - メモチョウ" href="http://d.hatena.ne.jp/hurvinek/20080829/1220001650">python-genshi が無いよ、と怒られてしまいますので、これだけは rpm パッケージを拾ってきて手動でインストールする必要があります</a>。
<pre>% sudo yum install python-setuptools    # python-genshi のインストールに必要でした。
# 事前にディレクトリを参照して最新版のファイル名を確認しておきましょう。。。
% wget http://packages.sw.be/python-genshi/python-genshi-0.5.1-2.el5.rf.i386.rpm
% sudo rpm -i python-genshi-0.5.1-2.el5.rf.i386.rpm
% sudo yum install trac</pre>
<p>ここでインストールされる Trac は英語版なので、これは一旦削除し、代わりに<a title="インタアクト株式会社--業務内容--公開資料" href="http://www.i-act.co.jp/project/products/products.html">日本語版の Trac</a> をインストールします。</p>
<pre>% sudo yum remove trac
# これも事前に最新版のファイルの URI を確認しておきましょう。。。
% wget http://www.i-act.co.jp/project/products/downloads/Trac-0.11.2.1.ja1.zip
% unzip Trac-0.11.2.1.ja1.zip
% cd trac-0.11.2.1.ja1
% sudo python setup.py install</pre>
</li>
<li>trac リポジトリを構築します。<br />
普通に作ろうとすると DBMS に SQLite を使用するようになるのですが、今回は MySQL を使いたかったので、<a title="DatabaseBackend ? The Trac Project" href="http://trac.edgewall.org/wiki/DatabaseBackend">こちらのサイト</a>を参考に、データベースの構築から行います。ちなみに、 MySQL は既にインストールされていて、使える状態になっているものとします。</p>
<pre>% mysql -u root -p
mysql&gt; create database trac_hoge;
mysql&gt; grant all privileges on trac_hoge.* to trac_hoge@localhost identified by 'password';
mysql&gt; use trac_hoge;
mysql&gt; alter database default character set utf8 collate utf8_general_ci;
mysql&gt; quit
% su -
% mkdir /var/Developer/trust/hoge/trac
% cd /var/Developer/trust/hoge/trac
% chown murachi.apache .    # apache から扱えるように。
% chmod g+w .
% chmod g+s .
% exit
% trac-admin /var/Developer/trust/hoge/trac/hoge initenv</pre>
<p>そして、<q>database connection string</q> について聞かれたら、以下のように入力します。</p>
<pre>mysql://trac_hoge:password@localhost/trac_hoge</pre>
</li>
<li>Apache に設定を追加します。弊社の環境ではヴァーチャルホスト設定によってサブドメインを追加しているので、そのディレクティブ内に設定を記述します。今回は秘匿する必要があり、 SSL を介して用いたいので、 <code>/etc/httpd/conf.d/ssl.conf</code> の中に設定を記述します。
<p>その前に、ダイジェスト認証を用いたいので、まずはダイジェスト認証用のユーザー定義ファイルを作成します。</p>
<pre>% htdigest -c /var/Developer/trust/hoge/.htdigest realm murachi</pre>
<p>設定の記述内容は、概ね以下の通りです。</p>
<pre>&lt;VertualHost&gt;

# ...

# trac location
&lt;Location /trust/hoge/trac&gt;
    SetHandler mod_python
    PythonDebug On
    PythonHandler trac.web.modpython_frontend
    PythonOption TracEnvParentDir /var/Developer/trust/hoge/trac
    PythonOption TracUriRoot /trust/hoge/trac
&lt;/Location&gt;

&lt;Location /trust/hoge&gt;
    AuthType Digest
    AuthName realm
    AuthUserFile "/var/Developer/trust/hoge/.htdigest"
    Require valid-user
&lt;/Location&gt;

&lt;/VirtualHost&gt;</pre>
<p>Digest 認証の場合、 <code>AuthName</code> は <code>realm</code> で<strong>なければなりません</strong>。もっとも、 SSL で通信路自体が暗号化されているので、 Basic 認証でも問題なかったかも知れませんが…。</p>
<p>それから、Digest 認証で <code>AuthUserFile</code> ステートメントを用いるのは Apache 2.2 以降で、 2.0 以前の場合は <code>AuthDigestFile</code> ステートメントを使用します。</li>
<li>設定が文法上問題ないことを確認してから、 Apache を再起動します。
<pre>% sudo /etc/init.d/httpd configtest
% sudo /etc/init.d/httpd restart</pre>
</li>
</ol>
<h3>URI がいまいち…</h3>
<p>以上ですべての準備が整いました。ブラウザから、 https://developer.harapeko.jp/trust/hoge/trac に接続してみます。すると、以下のようなページが表示されました。</p>
<p><a href="http://blog.harapeko.jp/wp-content/uploads/2008/12/20081218-trac-humm.png"><img class="alignnone size-medium wp-image-12" src="http://blog.harapeko.jp/wp-content/uploads/2008/12/20081218-trac-humm.png" alt="" width="300" height="233" /></a></p>
<p>えっと…。どうやらここには Trac そのものではなく、 Trac のリポジトリを設定したプロジェクトの一覧が配置される模様。</p>
<p>で、表示されているリンクをクリックすると Trac のトップページに遷移するのですが…</p>
<p><a href="http://blog.harapeko.jp/wp-content/uploads/2008/12/20081218-trac-what1.png"><img class="alignnone size-medium wp-image-14" src="http://blog.harapeko.jp/wp-content/uploads/2008/12/20081218-trac-what1.png" alt="" width="300" height="233" /></a></p>
<p>URI の中にプロジェクト名が 2つ重なって出てきてしまう。これは何ともイタダケナイ。</p>
<h3>構成を再検討</h3>
<p>そんなわけで、ファイルの構成を再検討中です。とりあえず、反省点としては以下の通りでしょうか。</p>
<ul>
<li>svn リポジトリと trac リポジトリは、やっぱり完全に分けた方がよさそう。そもそも、svn リポジトリは unix ユーザーで権限を制御しているのに対して、 trac は Web の認証で権限を制御するので、あんまり一緒に管理するメリットはない気がしてきた。</li>
<li>trac リポジトリはオリジナル用と外注用の 2つに分けた上でプロジェクト毎に作成し、DB もプロジェクト毎に別個に作成する。アクセス制限はプロジェクトごとにロケーション別で設定可能だが、外注用についてはプロジェクト一覧ページには自分以外は入れないように制限する必要がある (オリジナルも同様に制限するかも…)。</li>
<li>svn リポジトリはプロジェクトごとに別個に作成する。公開している Trac から svn リポジトリを覗いてみたら外注で開発しているソースが見えちゃったでござるの巻、なんてことがあってはならない。</li>
</ul>
<p>構成例としては以下のような感じでしょうか…。</p>
<pre>/var/Developer/
  svn/
    original/
      foo/
      bar/
      baz/
      # ...
    trust/
      hoge/
      fuga/
      # ...
  trac/
    original/    # オリジナル用の TracEnvParentDir になる
      foo/
        .htdigest    # 認証用のユーザー定義ファイルはリポジトリの中に置いてしまう
      bar/
      baz/
      # ...
    trust/
      hoge/
        .htdigest
      fuga/
        .htdigest
      # ...</pre>
<p>という感じで軽くメモを書くだけのつもりが長々と書いてしまいました。これからまた設定です。おなか空いた…。</p>
]]></content:encoded>
			<wfw:commentRss>https://blog.harapeko.jp/2008/12/18/developer-repository-structure/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>会社サーバーに SSL 証明書を導入してみた</title>
		<link>https://blog.harapeko.jp/2008/12/17/ssl-cert-install/</link>
		<comments>https://blog.harapeko.jp/2008/12/17/ssl-cert-install/#comments</comments>
		<pubDate>Wed, 17 Dec 2008 09:59:57 +0000</pubDate>
		<dc:creator><![CDATA[村山 俊之]]></dc:creator>
				<category><![CDATA[技術メモ]]></category>
		<category><![CDATA[SSL]]></category>
		<category><![CDATA[サーバー管理]]></category>

		<guid isPermaLink="false">http://blog.harapeko.jp/?p=10</guid>
		<description><![CDATA[経緯 まだ未確定な部分が多々あるのであまり公にはできないのですが、やっと会社としての初めてのお仕事がもらえそう [&#8230;]]]></description>
				<content:encoded><![CDATA[<h3>経緯</h3>
<p>まだ未確定な部分が多々あるのであまり公にはできないのですが、やっと会社としての初めてのお仕事がもらえそうです。この不況時になんてありがたい…。</p>
<p>で、せっかくなので、会社のサーバー (まさにこのサイトを動かしているサーバーですね) をソースやタスクの管理に利用しようと思いたったのですが、情報が外部に漏洩するリスクは極力抑えなければなりません。</p>
<p>そこで、秘密の情報を扱うページに認証をかませ、さらに SSL による暗号化をかませることで、通信路の安全性を確保することを考えました。これ、ちゃんとやろうとするのであれば、SSL 証明書を正規の認証局に発行してもらい、それを導入する必要があります。仕事で使うものを個人認証局でごまかして客先で警告ダイアログとか表示されちゃったら信用失っちゃいますし、そうでなくても産総研のあのお方とかに見つかって Dis られでもしたものなら今度は社会的な信用を失っちゃいますからね (^_^;A 。</p>
<h3>検討</h3>
<p>とはいえ、SSL 証明書の発行にはお金がかかります。特に、 VeriSign 社の証明書など導入しようものなら、<a title="サーバID - セキュア・サーバID | ベリサイン - SSLサーバ証明書" href="http://www.verisign.co.jp/ssl/products/sidh_1_2_a.html">もっともリーズナブルな「セキュア・サーバID」でも年間 85,050円とか</a>しちゃいます。これまで仕事に恵まれず、公共料金を浪費し続けていただけの弊社の資金からはとてもとても捻出できません＞＜。</p>
<p><span id="more-10"></span><br />
でも大丈夫。探せばもっともっとリーズナブルな証明書は見つかるのです。というわけで、今回は <a title="SSLサーバ証明書 ｜ DigiTrust" href="https://www.digitrust.jp/index.html">DigiTrust 社</a>さんの「DigiTrust Standard」を利用させていただくことにいたしました。とりあえず 1年契約で 15,540円。これなら社員一人の超零細企業でも何とか手が出る金額設定です。</p>
<h3>購入</h3>
<p>まず、申し込みフォームにいろいろ入力する前に、実際に SSL 証明書を導入するホスト上で CSR (Certificate Signing Request = 署名要求) を作る必要があります。やり方は <a title="SSL サーバ証明書 ｜ DigiTrust ｜ サポート" href="https://www.digitrust.jp/support/csr_flow.html">DigiTrust 社のサイト上にばっちり書かれています</a>。弊社の場合、使用している<a title="超低価格専用サーバー/80GB 月額6,510円［デルタ１］/ファーストサーバ" href="http://www.senyu.jp/dt/">デルタ1</a> が CentOS で、Apache2 も mod_ssl も最初から入っていたので、書かれている通りにコマンドを入力するだけで ok でした。できあがったファイルは rsync などを使って手元のマシンに転送すれば良いでしょう。</p>
<p>あとは申し込みフォームに必要事項を記入すれば、翌日には請求書が PDF で送られてきます。で、請求通りに銀行に振り込むと、即座に証明書のファイルが送られてきます。<strong>早い!!</strong></p>
<h3>設定</h3>
<p>設定方法も、<a title="SSL サーバ証明書 ｜ DigiTrust ｜ サポート" href="https://www.digitrust.jp/support/root_apache.html">DigiTrust 社さんのサイトに書かれています</a>。こちらも概ね書かれている通りにすれば ok です。ただ、弊社の場合、 iptables でポートフィルタリングしていたのをすっかり忘れていたために (^_^; 、https スキーマから接続しようとしても応答せず、そこで 2時間ぐらいハマりましたが (バカだ… orz)。</p>
<h3>確認</h3>
<p>とりあえず<a href="https://developer.harapeko.jp/">こんな感じ</a>です。これから、この配下に開発リソースをいろいろと追加していく予定です…。ウヒヒ。</p>
]]></content:encoded>
			<wfw:commentRss>https://blog.harapeko.jp/2008/12/17/ssl-cert-install/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>会社サーバーを立てるまで。(前編)</title>
		<link>https://blog.harapeko.jp/2008/05/07/buildup-server/</link>
		<comments>https://blog.harapeko.jp/2008/05/07/buildup-server/#comments</comments>
		<pubDate>Wed, 07 May 2008 07:10:16 +0000</pubDate>
		<dc:creator><![CDATA[村山 俊之]]></dc:creator>
				<category><![CDATA[技術メモ]]></category>
		<category><![CDATA[活動記録]]></category>
		<category><![CDATA[DNS]]></category>
		<category><![CDATA[サーバー管理]]></category>
		<category><![CDATA[ドメイン]]></category>

		<guid isPermaLink="false">http://blog.harapeko.jp/?p=7</guid>
		<description><![CDATA[とりあえず、このサーバーを立てる (建てる? どっちの方が正しいんだろう?) に際して行った作業や費用などにつ [&#8230;]]]></description>
				<content:encoded><![CDATA[<p>とりあえず、このサーバーを立てる (建てる? どっちの方が正しいんだろう?) に際して行った作業や費用などについて、ここでまとめておこうかと思います。今回は、サーバーのレンタルと、ドメインの取得および設定についてです。<br />
<span id="more-7"></span></p>
<h3>サーバーを借りる</h3>
<p>今回借りたのは、<a title="レンタルサーバーのファーストサーバ" href="http://www.fsv.jp/">ファーストサーバ</a>さんとこの、<a title="専用サーバー（セルフマネージド）「デルタ１・シリーズ」/ファーストサーバ" href="http://www.senyu.jp/dt/">デルタ1・シリーズ</a>というやつです。このサービスは、ソフトバンクIDC のデータセンターに置かれたそこそこのスペックのマシン (Celeron420 1.6GHz / 512MB RAM / 80GB HDD) をまるまる一台自由に使わせてもらえるというものです。但し、マシンは CentOS (後になって FreeBSD のコースもできたようですが) をインストールしただけの (そして ssh 以外のサービスを一通り停止させた) 状態で納品され、設定用の特別なツール (Web から操作できるコントロールパネルとか) や、監視などの各種サービスはなく、設定も管理もすべてお客さんの方でやってね、という非常に漢 (おとこ) らしいサービスです。</p>
<p>価格は、初期費用 (入会金のようなもの、恐らくは設備投資費) が 36,750円、月額費用が 6,510円。ノーメンテなだけあって、国内の専用サーバーレンタルサービスとしては非常にリーズナブルです。契約では支払い単位を半年とさせていただいたので、初回の請求金額は <strong>75,810円</strong>となりました (次回以降は月額費用のみなので、39,060円を半年ごとに納めることになります)。</p>
<p>さて、私が申し込んだのは 4月の半ば頃で、オンラインお申し込みのページには <q>ご提供まで2週間程度のお時間を…</q> などと書かれていたのですが、実際には申し込みをした2日後には設定完了の報告書が請求書とともに送られてきました。これはうれしい誤算!! まだドメイン名すらなく、IP アドレスだけで ssh からログインできますよーというだけの状態だったのですが、早速中を覗いてみたり、とりあえず惰性で apache を動かしてみたりしました。</p>
<h3>ドメインの移転</h3>
<p>ここでサーバーの設定の話に入ってもいいのですが、その前に、ドメインの取得と設定について書いた方が、話の流れ的には正しいような気がするので、そうしておこうと思います。</p>
<p>私の場合、 harapeko.jp ドメインは以前から持っていたのですが (いわゆる「ホームページ」を作るために予約していたまま、ほとんど使わずに放置していました)、当時の管理業者であった ISP が提供するサーバーでしか使わせてもらえないというものだったので、他のレジストラに変更する必要がありました。同じファーストサーバさんの <a title="『Ｄｏレジ』　ドメイン名の取得から高度な活用まで　安心と信頼のレジストラ" href="http://do-reg.jp/">Doレジ</a>を利用するという手もあったのですが、今後のフットワークも考慮して、<a href="http://jprs.jp/">JPRS</a> 自体が提供するドメイン名登録管理サービスである <a href="http://jpdirect.jp/">JPDirect</a> を利用させていただくことにしました。</p>
<h4>ISPとの契約を解約する</h4>
<p>まずは JPDirect に申し込む前に、これまでドメイン名を管理してもらっていた ISP との、ドメイン名に関する契約を解約しなければなりません (接続契約まで切る必要はないですよ、念のため)。私の場合は、これはオンラインではなく、申込書を FAX するという手続きでした。</p>
<p>注意点が一つだけあって、ドメイン名を「廃止」するのか、他のサーバーに「移行」するのかを聞かれますので、これは必ず「移行」にしなければなりません。誤って廃止してしまうと、同じドメインは 1ヶ月間利用 (というか取得) できなくなってしまうので注意しましょう。</p>
<h4>移転を申し込む</h4>
<p>ドメイン名を whois で調べると<a title="JP WHOIS /JPRS" href="http://whois.jprs.jp/?codecheck-sjis=%82%C9%82%D9%82%F1%82%EA%82%B6%82%B7%82%C6%82%E8%82%B3%81%5B%82%D1%82%B7&amp;type=dom&amp;key=HARAPEKO.JP">こんな感じで表示される</a>のですが、このときの「登録者名」が元々個人名義だったのを、会社名義に変更したかったので、<a href="https://apply.rs.jprs.jp/agentchange.php?m=agentchange">指定事業者変更WEB</a>で登録者情報を会社の名前にしてみたところ、JPDirect さんから電話がかかってきて、「登録者名を変更したい場合は [移転] という扱いになるので、申し込み方法が異なります」とのご説明をいただきました。指定事業者変更であれば料金は無料だったのですが、移転の場合は有料 (3,885円) になるみたいです。なるほど。</p>
<p>移転申請の場合は、JPDirect に登録 ID を持っていないうちは、本来であれば<a title="指定事業者変更とドメイン名の移転 - JPDirect" href="http://jpdirect.jp/general/transfer/index.html#03">メールにて問い合わせる必要がある</a>のですが、私の場合は先ほどのお電話口にて移転手続きに関するご案内メールを送っていただけるという話になったので、そのメールの案内に従って、移転手続きの Web ページにて必要事項を入力する、という形になりました。</p>
<h4>DNS を立てる</h4>
<p>レジストラの仕事はドメインの管理だけなので、登録したドメインを使用するホストの IP と結びつけるには、自分で DNS を立てる必要があります。DNS には <a title="Internet Systems Consortium, Inc." href="http://www.isc.org/index.pl?/sw/bind/index.php">BIND</a> というのを使用します。これはデルタ1・シリーズのサーバーには最初からインストールされていました。</p>
<p>BIND は chroot 環境で動作するよう設定されていたので、設定ファイルの類はすべて <code>/var/named/chroot</code> ディレクトリの配下に置く必要があります。まずは <code>/var/named/chroot/etc/named.conf</code> を以下のような内容で作成し、</p>
<pre>options {
        directory "/var/named";
};
zone "." {
        type hint;
        file "named.root";
};
zone "localhost" {
        type master;
        file "localhost.zone";
        allow-update { none; };
};
zone "0.0.127.in-addr.arpa" {
        type master;
        file "localhost.rev";
        allow-update { none; };
};
zone "harapeko.jp" {
        type master;
        file "harapeko.jp.zone";
};
zone "21.237.218.202.in-addr.arpa" IN {
        type master;
        file "harapeko.jp.rev";
};</pre>
<p>さらに、<code>/var/named/chroot/var/named</code> ディレクトリ下に、正引きおよび逆引きのゾーンファイル <code>localhost.zone</code>、<code>localhost.rev</code>、<code>harapeko.jp.zone</code>、<code>harapeko.jp.rev</code> をそれぞれ作成しました。</p>
<p>BIND の設定に関しては、以下のサイトを参考にさせていただきました(敬称略)。感謝!!</p>
<ul>
<li><a href="http://www.fc-lab.com/network/server/dns/bind.html">FC Lab &#8211; BINDの設定</a></li>
<li><a href="http://www.atmarkit.co.jp/flinux/rensai/bind02/bind02.html">@IT &#8211; BINDで作るDNSサーバ　第2回　名前解決の仕組みとゾーンファイルの設定</a></li>
<li><a href="http://park1.wakwak.com/~ima/centos4_bind0001.html">ごった煮 &#8211; CentOS 4.0導入記(覚え書き) &#8211; DNSサーバ(bind9)の導入</a></li>
</ul>
<p>設定ファイルを書き終わったら、後は BIND を起動すれば ok です。ついでに <code>chkconfig</code> コマンドでデーモンの自動起動の設定もしておきましょう。</p>
<pre>% su -
% /etc/init.d/named start
% chkconfig named on    # あるいは ntsysv コマンドによる UI で選択しても ok</pre>
<h4>ネームサーバーの登録</h4>
<p>私はこれを勘違いしていたために無駄に時間を食ってしまったのですが、取得したドメインが実際に運用に乗るためには、取得して DNS を立てる、だけでは駄目で、世界中の DNS が登録したドメインをたどって自分の DNS にたどり着くことができるように、レジストラに DNS があるホストマシンの場所を登録しておかなければなりません。</p>
<p>JPDirect で登録した場合、それは<a href="https://apply.rs.jprs.jp/service.php">登録者ログイン</a>のページから入って行うのですが、それまでのメールや書簡での案内にはこのページについては触れられておらず、そういう設定が必要だという説明も<a title="汎用 ネームサーバ設定編 - JPDirect" href="http://jpdirect.jp/faq/h_2000_index.html">Q&amp;ampA のページに埋もれているだけ</a>だったりするので、名前解決の仕組みに関する十分な知識がない人はなかなか気づけないかもしれません (っていうか気づきませんでした、お恥ずかしい)。しかもここで入力する登録者番号やパスワードは、書簡で送られてきた請求書の片割れの隅っこにひっそりと小さく書いてあるだけなので、知らないと捨ててしまって紛失してしまっているかもしれません (っていうか紛失しかけました…)。注意しましょう。</p>
<p>ここで行うべき設定は以下の通りです。</p>
<ul>
<li>ネームサーバ設定／解除指定事業者変更や移転の場合は、移行前の事業者が設定していたネームサーバーの設定が残っています。これをそのまま自分のホスト名に変更して登録…できればいいのですが、私がやったときはそれではうまくいきませんでした。いったん前の設定を「解除」してから、新たに設定し直す、という手順を踏む必要があるようです。登録するのはホスト名なのですが、もしかしたら IP アドレスでもいいのかもしれません。私は念のため、 <code>hostname</code> コマンドが返す名前を指定しておくことにしました。</li>
<li>ホスト情報新規登録DNS の設定で、ネームサーバー用に設定したホスト名と、ホストの IP アドレスを結びつける設定を行います。これはもしかしたら不要なのかもしれません。あるいはネームサーバー設定で指定すべきホスト名をここで定義できる、というだけの話なのかもしれません…。</li>
</ul>
<p>設定が完了すると、行った設定ごとに JPDirect からメールが送られてきます。実際に設定が反映されるまでにはそれなりに時間がかかります (夜のうちに設定すれば、一晩たてば翌朝には使えるようになる、ぐらいの感覚です)。</p>
<p>今回はここまで。次回は DNS 以外の設定に関するメモを公開します。</p>
]]></content:encoded>
			<wfw:commentRss>https://blog.harapeko.jp/2008/05/07/buildup-server/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>メールサーバー設定しました。</title>
		<link>https://blog.harapeko.jp/2008/05/04/mailserver/</link>
		<comments>https://blog.harapeko.jp/2008/05/04/mailserver/#comments</comments>
		<pubDate>Sat, 03 May 2008 15:17:04 +0000</pubDate>
		<dc:creator><![CDATA[村山 俊之]]></dc:creator>
				<category><![CDATA[活動記録]]></category>
		<category><![CDATA[お知らせ]]></category>
		<category><![CDATA[サーバー管理]]></category>
		<category><![CDATA[仕事]]></category>

		<guid isPermaLink="false">http://blog.harapeko.jp/?p=6</guid>
		<description><![CDATA[丸一日かけてしまった。。。メールサーバーの構築って大変なのね。。。 そんなわけで、従来使っていたメールアドレス [&#8230;]]]></description>
				<content:encoded><![CDATA[<p>丸一日かけてしまった。。。メールサーバーの構築って大変なのね。。。</p>
<p>そんなわけで、従来使っていたメールアドレスが正式に復活しました。ケータイへの転送用アドレスも復活しています。ここにはそれらのアドレスは書きませんが… (それについてはあとで<a title="国民宿舎はらぺこ大浴場" href="http://harapeko.asablo.jp/blog/">個人ブログ</a>の方でアナウンスします)。</p>
<p>で、それとは別に、仕事用のメールアドレスを追加しました。それはここで公開しておきます。</p>
<ul>
<li>toshiyuki.murayama あっとまーく harapeko.jp</li>
</ul>
<p>すでに取引がある方々にもお伝えしなくては…。あと名刺も作らないとね…。</p>
<p>でも明日は私用で出ずっぱりなのですが…。</p>
<p>なんだかんだで結構忙しいなぁ。</p>
<p>あ、ちなみに、サーバーの設定に関する技術的なメモとかは、別エントリーで後ほど up します～。</p>
]]></content:encoded>
			<wfw:commentRss>https://blog.harapeko.jp/2008/05/04/mailserver/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
