‘解決’ カテゴリーのアーカイブ

9arrowsをApache2+passengerで動かす

成功したのでメモ。

何がしたかったかというと、既存の.htpasswdで9arrowsをBasic認証させたかったのが始まり。

基本的にはこの辺参考。OSはdebian。Rubyは1.8。

[Ruby]9arrowsを入れてみたよ

とりあえず、9arrows標準のWEBrickで動かそうと思ってすでに色々はまる。
rakeが動かないとかでgem本体のアップデートやら色々したのだけど、ちょっとその辺忘れてしまった。

一応TCP Port 3000で動作することを確認。

で、passengerをgemでインストール。

rails/【passenger】Apacheで手軽に作るRailsの実行環境 – PukiWiki

passengerの説明としてはこっちも詳しい。

Redmine.JP | Apache上でRuby on Railsアプリケーションを動かす/Passenger(mod_rails for Apache)の利用

データベースをdevelopmentで作ったので、passengerの環境も合わせておく。

Apacheのconfに以下を記述。

<VirtualHost xxx.xxx.xxx.xxx:80>
ServerAdmin webmaster@localhost
ServerName 9arrows.dev
RailsEnv development

DocumentRoot /path/to/9arrows-read-only/public
<Directory /path/to/9arrows-read-only>
  AuthUserFile /path/to/.htpasswd
  AuthGroupFile /dev/null
  AuthName system
  AuthType Basic
  <Limit GET POST>
    require valid-user
  </Limit>
  Options FollowSymLinks
  AllowOverride All
</Directory>

ServerSignature Off
</VirtualHost>

500エラーが出てはまったのは.htaccessのせい。

#AddHandler fastcgi-script .fcgi
#AddHandler cgi-script .cgi
#Options +FollowSymLinks +ExecCGI

先頭の方にある3行をとりあえず全部コメントアウトしておく。
それだけでOK。

とりあえず問題なく動いている模様。


DShowNETでSystem.InvalidCastException

以前作ったWebカメラの動画から静止画をキャプチャして保存するプログラムを、ソースをコピーして別のプログラムで使おうとしたらこんなエラーが出た。

型 'System.__ComObject' の COM オブジェクトをインターフェイス型 'DShowNET.ISampleGrabber' にキャストできません。IID '{6B652FFF-11FE-4FCE-92AD-0266B5D7C78F}' が指定されたインターフェイスの COM コンポーネント上での QueryInterface 呼び出しのときに次のエラーが発生したため、この操作に失敗しました: インターフェイスがサポートされていません (HRESULT からの例外: 0x80004002 (E_NOINTERFACE))。

原因がわからなくてしばらく悩んだのだけど、どうやらシングルスレッドアパートメントだとダメらしい…

Main()の定義の前の行で、[STAThread]→[MTAThread]に変更したらできるようになった。


VirtualPC 2007にUbuntu 8.04 LTS Serverを入れてみた。

一応(※後述)動いたので報告。Server版がインストールはできても起動しないという報告がちらほらあったので。

まず適当に仮想PCいっこ作る。

今回は画像扱うサーバにする予定なので、メモリを512MB、HDDを32GBとして作成。

Ubuntu 8.04 LTS ServerのISOをマウントして起動。

とりあえずインストール自体は、以下の参考サイト参照。

Virtual PC 2007にUbuntu 8.04を入れてみた。:めもメモ とにかく メモめも:So-net blog

ブートオプションには「noapic nolapic vga=791」を指定。

あ、コピペで貼り付けようとすると「=」が「-」になって貼りつけられたりするので注意。キーボードで打っても「=」が「-」になるけど。「=」打つときは「^」キー。

というか、サーバ版インストールには上記あまり影響しないっぽい。

で、そのまま普通に再起動すると再起動後に画面が何もでなくなる。HDDにアクセスしているような反応もないので、止まっているっぽい。

再びISOイメージをマウントして、CDから起動。レスキューモードで起動する。

ubuntu01

ubuntu02

ubuntu03

「/dev/sda1 内でシェルを実行」でコンソールを呼び出して、

# apt-get update
# apt-get install linux-386
# apt-get remove linux-server

参考: http://tombuntu.com/index.php/2007/09/05/making-ubuntu-server-work-in-virtualbox/

カーネル入れ替えちゃってますけど。

が、これで起動できるようになります。「Ubuntu 8.04 LTS Server(笑)」の完成。

LAMPをインストール時にチェックしておくだけで、簡単にWebサーバ構築できて超らくちん。

カーネル入れ替えた件について、詳しい人いたらリスクとか教えてほしいです。