Apacheの最近のブログ記事

Hikiの設定方法(lighttpdで設定) hiki error permission deniedを解決!

   ブックマークに追加する
前回、lighttpdでバーチャルホストの設定をしたので、ついでにHikiをインストールすることにしました。HikiはwikiクローンでRubyで作られており非常に使いやすいです。
かなり、インストールに手間取ってしまったので、インストール方法をまとめておきます。

例として、hiki.example.comというサブドメインでの設定とします。

1) Hikiサイトより、最新ソースをダウンロードする
2) ダウンロードしたファイルをサーバにアップして解凍する

$ tar xvzf hiki-0.8.7.tar.gz
$ mv hiki-0.8.7.tar.gz /www/example.com/hiki

3) 解凍したファイルのdataディレクトリを公開側でない場所へ移動する

$ cp -r /www/example.com/public/hiki/data  /www/hiki

4)  hikiconf.rb.sampleをhikiconf.rbに書き換えて@data_pathを設定する


$ mv /www/example.com/hiki/hikiconf.rb.sample /www/example.com/hiki/hikiconf.rb
$vi /www/example.com/hiki/hikiconf.rb

@data_path = '/www/hiki/data'

5) lighttpd.confにバーチャルドメインを設定する

$HTTP["host"] == "hiki.example.com" {
  var.servername              = "hiki.example.com"
  accesslog.filename          = "var.servername + "/access.log"
  server.errorlog             = "var.servername + "/error.log"
  server.document-root      = "/www/example.com/hiki"
  index-file.names          =  ( "hiki.cgi" )
  url.access-deny           = ( "hikiconf.rb" )
  cgi.assign                = ( ".cgi" => "" )

6) サーバ(lighttpd)を再起動すればOK

# service lighttpd restart

順調に起動するとおもったら、アクセスすると以下のエラーが大分はまってしまいました。

hiki error permission denied data//cache

原因は、dataファイルのパーミッションのせいでした。
(はじめスラッシュが2回続いていることが原因かと思ったのですが、全く関係ありませんでした。)

「/www/hiki/data」のオーナーをlighttpdにし、さらにchmod -R og+w dataとしました。
そしたらパーミッションエラーは表示されず正常に動作しました。


HTTPアクセスできない時のチェックリスト

   ブックマークに追加する
なぜか、Webサーバにアクセスできないという状態があった際に調査した順番です。
新規でサーバを立ち上げるときのチェック項目として書いておきます。

  • サーバは起動しているか?

$ netstat -an | grep LISTEN
tcp        0      0 :::80                       :::*                        LISTEN 
$ ps aux | grep httpd

  • ハードウェア(FW)のポリシーは?
NetScreen等で80ポートが開いていない可能性もあります。

  • ソフトウェア(FW)のポリシーは?
設定ファイルを確認します

# more /etc/sysconfig/iptables
# Firewall configuration written by system-config-securitylevel
# Manual customization of this file is not recommended.
*filter
-A RH-Firewall-1-INPUT -m state --state NEW -m tcp -p tcp --dport 80 -j ACCEPT

  • ログを確認
アクセスできているかどうかの確認。

まずはじめにaccess.logを確認し、Apacheまで到達していないことを確認してからチェックするのがよいと思います。
その後問題の箇所(ファイヤーウォール等)を修正し、再度アクセスしaccess.logを確認すればOKです。


Apacheでドメイン指定してリダイレクト設定(mod_rewrite)

   ブックマークに追加する
以前も書いた気がするのですが、2つ以上のドメインを1つのサーバに設定し、指定したドメインでアクセスするページを振り分ける方法です。

VirtualHostを使ってもよいのですが、htdocs配下のディレクトリでわけるのであれば、
.htaccessで以下rewrite設定の記述をすればOKです。


RewriteEngine on
RewriteCond %{HTTP_HOST} ^(www\.example\.com)
RewriteRule ^/?(.*) http://www.example2.com/changed/ [R=301,L]
結構簡単に変更できます。

#4 lighttpdで複数のRailsアプリケーションを立ち上げる(vartualhost)

   ブックマークに追加する
WebScrap(Railsアプリケーション)を立ち上げるのにApacheではなく、lighttpdを使おうと思います。
lighttpdを使用する理由は、Apacheは2系ではサポートされておらず、lighttpdの方が軽量で簡単ということだからです。
※それと実験的に新しいWebサーバを試してみたかったということもあります。

それでは手順は以下の通り。

1) サブドメインを設定する


23scripts.netのDNS設定で以下の設定をする

webscrap IPaddress A 

2) lighttpd.confの設定

ApacheでいうところのvartualHostの設定は、lighttpdでは、$HTTP["host"]で設定します。
ちなみに今回はサブドメインでrailsアプリケーションを切り替えましたが、URIで変更することも可能です。
※その場合は$HTTP["url"]を使用する
※今回はサブドメインでの設定例

$HTTP["host"] == "webscrap.23scripts.net" {
  var.servername               = "webscrap.23scripts.net"
  accesslog.filename          = "/var/log/lighttpd/" + var.servername + "/access.log"
  server.errorlog             = "/var/log/lighttpd/" + var.servername + "/error.log"
  server.document-root      = "/webscrap/public"
  server.error-handler-404   = "dispatch.fcgi"
  fastcgi.server             = ( "dispatch.fcgi" =>
                               ( "webscrap" =>
                                 (
                                   "socket" => "/var/run/webscrap.fcgi.socket",
                                   "bin-path" => "/webscrap/public/dispatch.fcgi",
                                   "bin-environment" => ( "RAILS_ENV" => "production" )

                                 )
                               )
                            )
}
はじめは、以下のsocketエラーが発生しましたが、”socket”の設定をしたら直りました。

2008-03-15 10:12:08: (mod_fastcgi.c.2703) fcgi-server re-enabled: unix:/tmp/application.fcgi.socket-0

3) lighttpdの再起動

再起動して、指定したドメインにアクセスしれば正常に画面が表示されます


/etc/init.d/lighttpd restart

Apacheモジュールも結構使いたいため、今後はApache+lighttpdで構築しようと思います。

【参考サイト】
非常に参考になりました。より詳細にlighttpdの設定方法がわかります。

ValueDomainで取得したドメインをGIPと結びつけリダイレクトする方法

   ブックマークに追加する
長いタイトルになってしまいましたが、その通りなので書きます。これもよく忘れてしまうんですよね。ドメイン名を取得し、別ドメインにリダイレクトする手順です。

1)  ドメインをとる。

私はVALUE DOMAINで取得しています。理由は安いからです。.com.netドメインが1000以下でとれてしまいます。

2)  「メニュー」から「取得済みドメイン一覧」を選択
3)  「DNS」をクリックし以下を記述
   ※IPはサーバのグローバルIPを設定

a * 000.000.000.000 
a www  000.000.000.000

4)  次にグローバルIPのサーバの設定(httpd.confにVirtualHostを設定する)

<VirtualHost www.syutoku.com>
    ServerAdmin you@example.com
    ServerName www.redirect.com
    Redirect permanent / http://www.redirect.com/redirect/redirect/
</VirtualHost>

上記設定により、www.syutoku.comにアクセスすると自動的に http://www.redirect.com/redirect/redirect/ にリダイレクトされます。

このアーカイブについて

このページには、過去に書かれたブログ記事のうちApacheカテゴリに属しているものが含まれています。

次のカテゴリはExcelです。

最近のコンテンツはインデックスページで見られます。過去に書かれたものはアーカイブのページで見られます。

あわせて読みたいブログパーツ
フィードメーター - ウェブ-HACKS 「とりあえずやってみよう!」ブログ   
track feed
  • SEO対策 
  • _ 
  • _ 
  •  
  •  

このブログはクリエイティブ・コモンズでライセンスされています。