これからサーバー構築する友人へ
サービスを公開するLinuxサーバーを構築するときに何点か意識をしておかないと後で面倒な事になります。
運用に一度乗ってしまうと、そう易々と設定を変えられないことに起因するんですが、実際にサーバー構築して、運用に乗っけてから失敗したなぁ・・・って事が在ったので、書いておきます。
タグ:Linux
Linuxを入れていたThinPadをリカバリするには
Linuxを入れていたThinkPadを工場出荷状態にリカバリしようとおもったのですが、
リカバリを行おうとすると[Error #1828 Error: Free Space is too small] とか怒られます。
リカバリ用のソフトを展開するときに、MBRにでも展開してしまうからか...?
fdiskコマンドでパーティーションを開放すればいいんだけど、
中途半端にファイルが書き込まれたため、GRUBからLinuxが起動しなくなってしまった。
仕方ないので、そこいら辺りにころがっていたubuntuをCDブートして、fdiskで領域を全て開放したら、リカバリできそうな気配。
いまリカバリ中だけど遅くていつまでかかるやら・・・
ずっと奴のターン。
Powered by ScribeFire.
fedoraにOpenCVを導入
最近何かと話題のOpenCVを入れてみる。
OpenCVは画像を解析するアルゴリズムをおさめたライブラリです。
なんだか取っても未来指向♪
すでにOpenCVをつかって攻殻機動隊の「笑い男フィルタ」を作っているひとが居ます。おもしろー。
早速、OpenCVの開発ページからダウンロードして適当なディレクトリへ展開。
でいつも通り$ tar zxvf opencv-1.0.0.tar.gz
ライブラリを使うために環境変数が必要なようなので、/etc/profileに以下を追加。$ cd opencv-1.0.0 $ . ./configure $ make $ make install
export PKG_CONFIG_PATH=/usr/local/lib/pkgconfig:/usr/lib/pkgconfig/etc/ld.so.confに/usr/local/libへパスを通して
$ ldconfigこれで共有ライブラリ設定もOK。 あとは使うだけ! さーていっちょあそんでみっかぁ。
権限設定で嵌りがちな事
よくSELinux運用下でWebサーバー立ててると直面する現象に、
ちゃんとパーミッションの設定したのに、Permission denyで怒られる事があります。
原因は、SELinuxで、コレを知るまでエライ目に遭ったことが有ります。
ちゃんと勉強しないといけないんですが、軽くメモを。
全然詳しい訳でもないので、もしかしたら大嘘付いているかもしれません。
例えばWebサーバーで、権限設定はあっているのにパーミッションエラーでアクセス出来ないなんて場合が有ります。
そんな時はlsのZオプションを指定すると、SELinuxのセキュリティコンテキストが見れます。$ ls -l hoge.html-rw-r--r-- 1 apache apache 719 2 5 22:58 hoge.html
system_u:object_r:user_home_tの部分がセキュリティコンテキストですね。 前から、ユーザー識別子、ロール識別子、タイプ識別子と言うらしいのですが、一番重要なのは、タイプ識別子です。 上記例の場合タイプ識別しがuser_home_tになっています。 一方httpdが所属するのはhttpd_tです。コレをドメインと言うようです。SELinux上の各ドメインはお互いにコンパートメント化されており、ほかのドメインからの不正なアクセスを許可しないように定義されています。その為、たとえOSのパーミッションが有っていてもアクセスできないのですね。 セキュリティコンテキストを変えるためには、chconコマンドを使います。$ ls -lZ hoge.html-rw-r--r-- apache apache system_u:object_r:user_home_t hoge.html
コレでWebサーバーからhoge.htmlにアクセス出来ます。 httpdのドメインがhttpd_tなのにhttpd_sys_content_tと権限設定するのは何故かって事は聞かないで下さい。 嵌りがちなので書いた程度なので。近々ちゃんと勉強します・・・。$ chcon system_u:object_r:httpd_sys_content_t hoge.html$ ls -lZ hoge.html-rw-r--r-- apache apache system_u:object_r:httpd_sys_content_t hoge.html
Tracサイトのロゴを変えたい
Tracのサイトのヘッダーロゴを変えようと思ったんですが、何処で変えるのかにちょっと悩ました。
プロジェクトホーム/conf/trac.ini に [header_logo]って項目があって此処を変えればいんですが、問題は何処に画像ファイルを置けばいいか?って所です。
そこでデフォルトのヘッダーロゴが何処にあるかfindしてみたところ、
/usr/share/trac/htdocs下にありました。
・・・でもコレ、グローバル設定だよねぇ。
そこには入れたくないなぁ・・・と思っていたら、
プロジェクトホーム/htdocsというフォルダが有ることを発見。
此処に画像を置いてtrac.iniを編集
srcを変えれば良いわけですが・・・common? そんあフォルダないぞ。Apacheのtrac.confでも定義してないし、trac.cgiで定義されているんだろうなぁ。 結局、マニュアル読んでいたら、 commonを指定すると、グローバルの/usr/share/trac/htdocsを見に行って、 プロジェクトホーム/htdocsを見に行くときは、site/画像ファイル名と書いてあげれば良いことを発見。[header_logo] alt = height = -1 link = http://192.168.11.6/main/ src = common/trac_banner.png width = -1
と書いておいた。なるほどぉ。 cssとかも同様に行けるのかな?[header_logo] alt = height = -1 link = http://192.168.11.6/main/ src = site/hoge.png width = -1