Apacheの最近のブログ記事
前回、lighttpdでバーチャルホストの設定をしたので、ついでにHikiをインストールすることにしました。HikiはwikiクローンでRubyで作られており非常に使いやすいです。
かなり、インストールに手間取ってしまったので、インストール方法をまとめておきます。
例として、hiki.example.comというサブドメインでの設定とします。
1) Hikiサイトより、最新ソースをダウンロードする
2) ダウンロードしたファイルをサーバにアップして解凍する
3) 解凍したファイルのdataディレクトリを公開側でない場所へ移動する
4) hikiconf.rb.sampleをhikiconf.rbに書き換えて@data_pathを設定する
5) lighttpd.confにバーチャルドメインを設定する
6) サーバ(lighttpd)を再起動すればOK
順調に起動するとおもったら、アクセスすると以下のエラーが大分はまってしまいました。
hiki error permission denied data//cache
原因は、dataファイルのパーミッションのせいでした。
(はじめスラッシュが2回続いていることが原因かと思ったのですが、全く関係ありませんでした。)
「/www/hiki/data」のオーナーをlighttpdにし、さらにchmod -R og+w dataとしました。
そしたらパーミッションエラーは表示されず正常に動作しました。
かなり、インストールに手間取ってしまったので、インストール方法をまとめておきます。
例として、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としました。
そしたらパーミッションエラーは表示されず正常に動作しました。
なぜか、Webサーバにアクセスできないという状態があった際に調査した順番です。
新規でサーバを立ち上げるときのチェック項目として書いておきます。
まずはじめにaccess.logを確認し、Apacheまで到達していないことを確認してからチェックするのがよいと思います。
その後問題の箇所(ファイヤーウォール等)を修正し、再度アクセスしaccess.logを確認すればOKです。
新規でサーバを立ち上げるときのチェック項目として書いておきます。
- サーバは起動しているか?
$ netstat -an | grep LISTEN tcp 0 0 :::80 :::* LISTEN $ ps aux | grep httpd
- ハードウェア(FW)のポリシーは?
- ソフトウェア(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です。
以前も書いた気がするのですが、2つ以上のドメインを1つのサーバに設定し、指定したドメインでアクセスするページを振り分ける方法です。
VirtualHostを使ってもよいのですが、htdocs配下のディレクトリでわけるのであれば、
.htaccessで以下rewrite設定の記述をすればOKです。
VirtualHostを使ってもよいのですが、htdocs配下のディレクトリでわけるのであれば、
.htaccessで以下rewrite設定の記述をすればOKです。
RewriteEngine on
RewriteCond %{HTTP_HOST} ^(www\.example\.com)
RewriteRule ^/?(.*) http://www.example2.com/changed/ [R=301,L]
結構簡単に変更できます。
WebScrap(Railsアプリケーション)を立ち上げるのにApacheではなく、lighttpdを使おうと思います。
lighttpdを使用する理由は、Apacheは2系ではサポートされておらず、lighttpdの方が軽量で簡単ということだからです。
※それと実験的に新しいWebサーバを試してみたかったということもあります。
それでは手順は以下の通り。
1) サブドメインを設定する
2) lighttpd.confの設定
ApacheでいうところのvartualHostの設定は、lighttpdでは、$HTTP["host"]で設定します。
ちなみに今回はサブドメインでrailsアプリケーションを切り替えましたが、URIで変更することも可能です。
※その場合は$HTTP["url"]を使用する
※今回はサブドメインでの設定例
3) lighttpdの再起動
再起動して、指定したドメインにアクセスしれば正常に画面が表示されます
Apacheモジュールも結構使いたいため、今後はApache+lighttpdで構築しようと思います。
【参考サイト】
非常に参考になりました。より詳細にlighttpdの設定方法がわかります。
lighttpdを使用する理由は、Apacheは2系ではサポートされておらず、lighttpdの方が軽量で簡単ということだからです。
※それと実験的に新しいWebサーバを試してみたかったということもあります。
それでは手順は以下の通り。
1) サブドメインを設定する
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の設定方法がわかります。
長いタイトルになってしまいましたが、その通りなので書きます。これもよく忘れてしまうんですよね。ドメイン名を取得し、別ドメインにリダイレクトする手順です。
1) ドメインをとる。
私はVALUE DOMAINで取得しています。理由は安いからです。.comや.netドメインが1000以下でとれてしまいます。
2) 「メニュー」から「取得済みドメイン一覧」を選択
3) 「DNS」をクリックし以下を記述
※IPはサーバのグローバルIPを設定
4) 次にグローバルIPのサーバの設定(httpd.confにVirtualHostを設定する)
上記設定により、www.syutoku.comにアクセスすると自動的に http://www.redirect.com/redirect/redirect/ にリダイレクトされます。
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/ にリダイレクトされます。

