前回VirtualBoxをサーバー化してローカル環境を整えたので
ssh接続できる、外からtar.gzファイルとかもとってこれる、
scpもできる、ブラウザでアクセスもできるという環境ができた。
Web技術者としてはブラウザで見れる環境は必須なんだよ。
けど、毎回VirtualBoxを起動させて、画面上に表示させとくんだったら
sshでつながなくてもいいし、実際じゃまなわけで
調べてたら、バックグラウンドで実行できるらしいとわかり、
実際にやってみることに
.vbsファイルなんかになんかを書いて実行すればバックグラウンドで動くらしい。
さらに、スタートアップに入れとけば
毎回起動時にバックグランドで立ち上がってくれるらしい。
けど、
毎回は立ち上がらななくていいんだよ~
使わないときにリソース持っていかれても困る。
もっと手軽に好きな時に切ったりつけたりしたいんだ。
それで、もっとしらべてたら、
VBoxHeadlessTrayってのがあった。
ためしに使ってみると
好きな時に切ったりつけたりで切る。
かなり楽ちんだ。
ということでバックグランド実行環境が整ったわけです。
2011年4月22日金曜日
ProxyPass ProxyPassReverse
以前使っていたサーバからDNSが切り替わる間
今後使うサーバへ転送する必要があったので
ProxyPass ProxyPassReverse
を設定して使うことにした。
通常のhttpには飛ぶものの
httpsは使えないので
/etc/apache2/mods-available/proxy.confに
SSLProxyEngine On
を追記
これでproxyでsslに対応
しかし、さらなる問題が
動画データがchunkedとかなんやらで
動画が再生されない。
どうやら、相対パスで動画位置を参照しているため
前のサーバにアクセスしてProxyで今のサーバーにつないでいる場合は
動画の参照も一度前のサーバに飛んで、Proxy経由でアクセスしている
というのが原因で、動画がストリーミング再生できないようだ。
そのため動画の参照部分だけは相対パスをやめて
ipアドレスを直に書くことにした。
DNS設定が反映されるまでのしばらくのあいだはこれで乗り切って
二日くらいしたらもどす。
今後使うサーバへ転送する必要があったので
ProxyPass ProxyPassReverse
を設定して使うことにした。
通常のhttpには飛ぶものの
httpsは使えないので
/etc/apache2/mods-available/proxy.confに
SSLProxyEngine On
を追記
これでproxyでsslに対応
しかし、さらなる問題が
動画データがchunkedとかなんやらで
動画が再生されない。
どうやら、相対パスで動画位置を参照しているため
前のサーバにアクセスしてProxyで今のサーバーにつないでいる場合は
動画の参照も一度前のサーバに飛んで、Proxy経由でアクセスしている
というのが原因で、動画がストリーミング再生できないようだ。
そのため動画の参照部分だけは相対パスをやめて
ipアドレスを直に書くことにした。
DNS設定が反映されるまでのしばらくのあいだはこれで乗り切って
二日くらいしたらもどす。
2011年4月21日木曜日
Virtual Boxサーバー化
Virtual Boxでローカルなサーバー環境を構築しようとしたのでメモメモ
windows7上にVirtualBox4.04をインストールし
とりあえず、普通にDebian6.0を導入
この辺はいつも通り
ただ、やりたいのは、
たとえば、windows側からputtyなんかでssh接続できて
debian側から外部にアクセスもできるようにしたいわけで
まず、VirtualBoxでゲストOSのネットワーク設定を変更する。
デフォルトでネットワークアダプタ1がNATになっているのでそれはそのまま放置
ネットワークアダプタ2を有効化して、ホストオンリーアダプタを割り当てる。
名前はデフォルトだと「VirtualBox Host-Only ethernet Adapter」
これはゲストOSのネットワークではなく、VirtualBox自体の環境設定のネットワークから変更、追加できる。
次にゲストOSである。Debianを立ち上げる。
/etc/network/interfaceに設定を記述。
virtualboxのホストオンリーネットワークのIPアドレスとネットワークマスクを確認して
auto eth1
iface eth1 inet static
address 192.168.56.101
gateway 192.168.56.110
netmask 255.255.255.0
上記を追記する。上記はデフォルトで設定してある場合の
「VirtualBox Host-Only ethernet Adapter」でのIPアドレス。
変更した場合はそのIPアドレスを記述。
次に
/etc/network/if-pre-up.d/iptable-up.sh
というファイルを作成し
以下を記述
#!/bin/sh
IPTABLES=/sbin/iptables
$IPTABLES -F
$IPTABLES -P INPUT DROP
$IPTABLES -P OUTPUT ACCEPT
$IPTABLES -P FORWARD DROP
$IPTABLES -A INPUT -i lo -j ACCEPT
$IPTABLES -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
$IPTABLES -A INPUT -p tcp --dport 22 -m state --state NEW -j ACCEPT
$IPTABLES -A INPUT -p tcp --dport 25 -m state --state NEW -j ACCEPT
#67はいらないみたい。
#$IPTABLES -A INPUT -p udp --dport 67 -m state --state NEW -j ACCEPT
$IPTABLES -A INPUT -p tcp --dport 80 -m state --state NEW -j ACCEPT
$IPTABLES -A INPUT -p tcp --dport 443 -m state --state NEW -j ACCEPT
上記まで
$sudo chmod 700 /etc/network/if-pre-up.d/iptable-up.sh
$sudo /etc/network/if-pre-up.d/iptable-up.sh
$sudo /etc/init.d/networking restart
でiptableの設定読み込みが完了。
あとvirtualbox側の設定でディスプレイのリモートディスプレイでポート番号67を使うようにしたら
wgetなんかで外部のファイルを取ってこれるようにはなった。
ただdebianから外部にsshとかはまだできてないので
もうちょっといじらないといけない。
結構いらない設定をしていたみたいで、消したところはいらないのかな。
とにかく、ホストOSからのssh接続と内部から外への通信ができるようになった!
windows7上にVirtualBox4.04をインストールし
とりあえず、普通にDebian6.0を導入
この辺はいつも通り
ただ、やりたいのは、
たとえば、windows側からputtyなんかでssh接続できて
debian側から外部にアクセスもできるようにしたいわけで
まず、VirtualBoxでゲストOSのネットワーク設定を変更する。
デフォルトでネットワークアダプタ1がNATになっているのでそれはそのまま放置
ネットワークアダプタ2を有効化して、ホストオンリーアダプタを割り当てる。
名前はデフォルトだと「VirtualBox Host-Only ethernet Adapter」
これはゲストOSのネットワークではなく、VirtualBox自体の環境設定のネットワークから変更、追加できる。
次にゲストOSである。Debianを立ち上げる。
/etc/network/interfaceに設定を記述。
virtualboxのホストオンリーネットワークのIPアドレスとネットワークマスクを確認して
auto eth1
iface eth1 inet static
address 192.168.56.101
gateway 192.168.56.110
netmask 255.255.255.0
上記を追記する。上記はデフォルトで設定してある場合の
「VirtualBox Host-Only ethernet Adapter」でのIPアドレス。
変更した場合はそのIPアドレスを記述。
次に
/etc/network/if-pre-up.d/iptable-up.sh
というファイルを作成し
以下を記述
#!/bin/sh
IPTABLES=/sbin/iptables
$IPTABLES -F
$IPTABLES -P INPUT DROP
$IPTABLES -P OUTPUT ACCEPT
$IPTABLES -P FORWARD DROP
$IPTABLES -A INPUT -i lo -j ACCEPT
$IPTABLES -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
$IPTABLES -A INPUT -p tcp --dport 22 -m state --state NEW -j ACCEPT
$IPTABLES -A INPUT -p tcp --dport 25 -m state --state NEW -j ACCEPT
#67はいらないみたい。
#$IPTABLES -A INPUT -p udp --dport 67 -m state --state NEW -j ACCEPT
$IPTABLES -A INPUT -p tcp --dport 80 -m state --state NEW -j ACCEPT
$IPTABLES -A INPUT -p tcp --dport 443 -m state --state NEW -j ACCEPT
上記まで
$sudo chmod 700 /etc/network/if-pre-up.d/iptable-up.sh
$sudo /etc/network/if-pre-up.d/iptable-up.sh
$sudo /etc/init.d/networking restart
でiptableの設定読み込みが完了。
wgetなんかで外部のファイルを取ってこれるようにはなった。
ただdebianから外部にsshとかはまだできてないので
もうちょっといじらないといけない。
結構いらない設定をしていたみたいで、消したところはいらないのかな。
とにかく、ホストOSからのssh接続と内部から外への通信ができるようになった!
2011年4月19日火曜日
Firefox4 保存して終了
Firefox4が出てたので更新してみた。
いままで、Firefoxを使ってるときは、
タグを保存して終了していたんだけど
「保存して終了」が出てこない…
仕方ないので設定を変更することに
1. firefoxを起動
2. urlの入力欄に「about:config」と入力しページを開きます。
3. 「動作保障対象外になります」という恐怖なメッセージが…
4. フィルタで「browser.showQuitWarning」を検索
5. browser.showQuitWarningの値を「False」から「True」へ変更
以上で完了です。
この状態でブラウザを閉じれば、「保存して終了」が表示されます。
いままで、Firefoxを使ってるときは、
タグを保存して終了していたんだけど
「保存して終了」が出てこない…
仕方ないので設定を変更することに
1. firefoxを起動
2. urlの入力欄に「about:config」と入力しページを開きます。
3. 「動作保障対象外になります」という恐怖なメッセージが…
4. フィルタで「browser.showQuitWarning」を検索
5. browser.showQuitWarningの値を「False」から「True」へ変更
以上で完了です。
この状態でブラウザを閉じれば、「保存して終了」が表示されます。
Djangoとpostgresql
Django_1.0.2で実装していたが
Django_1.2.1にバージョンアップさせようとして
困ったのでメモ
ちなみにこのとき使っていたのは
Django_1.2.1 Pinax-0.5.1 postgresql8.4 psycopg2
データベース中のユーザ情報を変更しようとしたがエラーになる。
たとえばユーザのタイムゾーンを'Asia/Tokyo'に変更しようとする
>>>from account.models import Account
>>>user_data = Account.objects.all()[0]
>>>user_data
>>>user_data.timezone = u'Asia/Tokyo'
>>>user_data.save()
DatabaseError: can't adapt 'Asia/Tokyo'
となる。
実は、user_data.timezoneには文字列を入力しているのだが
実際にuser_data.save()をおこなったときに発行されるSQLに代入する時点では
文字列のu'Asia/Tokyo'ではなく、timezoneオブジェクトになっているために
起きているエラーだった。
Django_1.2.1にバージョンアップさせようとして
困ったのでメモ
ちなみにこのとき使っていたのは
Django_1.2.1 Pinax-0.5.1 postgresql8.4 psycopg2
データベース中のユーザ情報を変更しようとしたがエラーになる。
たとえばユーザのタイムゾーンを'Asia/Tokyo'に変更しようとする
>>>from account.models import Account
>>>user_data = Account.objects.all()[0]
>>>user_data
>>>user_data.timezone = u'Asia/Tokyo'
>>>user_data.save()
DatabaseError: can't adapt 'Asia/Tokyo'
となる。
実は、user_data.timezoneには文字列を入力しているのだが
実際にuser_data.save()をおこなったときに発行されるSQLに代入する時点では
文字列のu'Asia/Tokyo'ではなく、timezoneオブジェクトになっているために
起きているエラーだった。
登録:
投稿 (Atom)