DjangoとJBoss4.2.2をApacheに接続した時のMacOS10.4.11でメモです。
まずは、Apacheのコンパイル。 ./configure --enable-module=shared --enable-proxy --enable-proxy-ajp /usr/local/apache2に入ります。引き続き、mod_python-3.3.1をconfigureで失敗。 このMacに、Apache-1.3.33が入っているらしく、そちらを認識してしまっている模様 ~/mod_python-3.3.1$ ./configure 中略 checking Apache version... 1.3.33 configure: error: This version of mod_python only works with Apache 2. The one you have seems to be 1.3.33. 探すとありました。/usr/sbin/apachectlが。言ってくれればいいのに・・・ というわけで、 ~/mod_python-3.3.1$ ./configure --with-apxs=/usr/local/apache2/bin/apxs で、分かってもらいます。 そのあと、sudo make installをしたときに、 ~/mod_python-3.3.1$ sudo make install 中略 Now don't forget to edit your main config and add LoadModule python_module /usr/local/apache2/modules/mod_python.so and if your configuration uses ClearModuleList, then also AddModule mod_python.c と密かに訴えているので、忘れずに、httpd.confに追記しておきます。 Djangoプロジェクトへの接続は、httpd.confに以下を追記。 <Location "/prj_name"> SetHandler mod_python #SetHandler python-program どっちでもいいらしい。 PythonHandler django.core.handlers.modpython PythonPath "['/Users/***/(プロジェクトディレクトリへのpath'] + sys.path" #windowsは、生文字列rで #PythonPath "[r'c:\\apps'] + sys.path" SetEnv DJANGO_SETTINGS_MODULE prj_name.settings PythonDebug On </Location> とりあえず、見えていてコードも動いたので、一安心したら、データベースを操作するページに地雷がありました。 mod_pythonがエラーを吐いてくれます。エラーページの最後に、 OperationalError: attempt to write a readonly database と言われたので、SQLiteのデータベースファイルの属性を666にするも、今度は unable to open database file と、言われる始末。データベースファイルが入っているディレクトリのパーミッションを777にすることで解決。 いやー、いろいろ面倒だ・・・ でも、JBoss(Tomcat)との接続は、最近簡単。 しかも、コンパイル時にmod_proxyとmod_proxy_ajpのモジュールを静的にリンク指定いるので、httpd.confでloadすらしなくてよくて、 <Location "/app"> ProxyPass ajp://localhost:8009/app </Location> みたいに書けばよいだけです。 mod_proxyのコンパイルは、なんか後からやると失敗することが多いので、最初のやってしまうのがいいかもしれません。 ま、昔に比べれば相当楽ちんですが。ちなみにWinowsのバイナリ版Apacheはこれらのモジュールファイルを最初から同梱しているので、httpd.confファイルでコメントを外すだけです。 |
最近、PythonでWebアプリを作ってみようかと思い、試してみた率直な感想を。
少し調べると、PythonでのWeb開発はやはりDjangoが流行っていることがわかったので、天の邪鬼な私は、「ここはやっぱりPylonsでしょー」と思い、Pylonsを使ってみることに。しかし、メタフレームワークということで、既存のライブラリを寄せ集めて出来ているので、テンプレートならMako、ORマッパーならSQLAlchemy、そうは言っても本体はPasteという風に、様々なサイトを渡り歩かなければならず、まあ、ここに柔軟性があると言えばそうなのでしょうが、初心者には向きませんでした。 一方、DjangoはテンプレートエンジンやORマッパーなどが最初からすべて入っているので、相当楽ちんです。モデルを作るだけでデータベースの管理画面が出来てしまったりと、あまりの凄さに目玉が出そうでした。 ハックを楽しみつつ、自分仕様のWebアプリフレームワークを構築するくらいの気合いがある方には、Pylonsがいいのでしょうが、ちょっと作ってみようかという程度の時は、断然Django。流行っているから、ユーザーも多く、日本語でも情報多いです。やっぱり、流れに乗る方が楽ですねー、こういうものは・・・。 |
久しぶりにPythonのお話し。
CもC++もJavaも忘れてしまって、最近はPythonとawkくらいしかわからない軟弱くんですが、やっぱりPythonで書いたコードも早く動いて欲しいと思うものです。 これまでは、Pyscoでお手軽高速化をして、それなりに成果があったのでご機嫌だったのですが、i386でしか動かない(一部Macへの移植あり)ということで、Ubuntu@Xeon(64bit)で使えずがっかりしているところでした。 そうこうしていると、先日参加したPythonの勉強会で、Pyrexというものを、とある長官に教えていただきました。基本的には、Pythonから呼べるCモジュールをPythonみたいな言語で書こうというちょっと変わったプロジェクトなんですが、これがいいらしいので、使ってみることに。とりあえず、例題をコンパイルしたときのコマンドを書いておきます。 pyrexc primes.pyx gcc -c -fPIC -I /usr/include/python2.5/ primes.c gcc -shared primes.o -o primes.so これで、pythonのコードの中から、import primesなどとして使えるようになります。今後、自分が書いたコードで実際に試してみる予定です。 |
Mathematica6.0をUbuntu7.10にインストールしたときのメモです。
5.2のときも苦労した覚えがありますが、とりあえず、インストーラの起動は、 sudo sh MathInstaller 案の定途中で止まる。 /usr/local/Wolfram/Mathematica/6.0/InstallErrors を言われるがままに参照すると、どうやら共有ライブラリが無いみたい。 apt-cache search libstdc++ で、探してみると、ありました。 libstdc++5 - GNU 標準 C++ ライブラリ v3 sudo apt-get install libstdc++5 これで、/usr/libに、 libstdc++.so.5 がちゃんと設定されます。失敗していたMathematicaのインストールは、これで成功。 起動の画面が5.2はいきなり文字化けしていた記憶があるけど、6はうまく立ち上がります。 |
MacOSXはUnixとしても使えるので、非常に重宝していますが、デフォルトでは/usrなどのフォルダがシステム所有になっているためか、Finderで見えません。ターミナルでは、普通に
cd /usr とできるので、不便だなーと思っていましたが、ドット(.)から始まる隠しファイルも含め表示する方法があるようです。ターミナルから以下のコマンドを入力して起動しているFinderを再起動すればOKです。 defaults write com.apple.finder AppleShowAllFiles TRUE もとに戻したければ、最後をFALSEに。 しかし、/usrなどがFinderで見えるようになったのはいいんですが、Finderでのフォルダ、ファイルの色がしらっぱけてしまって、見にくい・・・ しかも、ホームディレクトリのトップにドットから始まるファイルが膨大に出現。 一方、ターミナルからFinderを、カレントディレクトリを開く形で起動できたらいいなと思っていたところ、それは、 open . でいけるらしい。 /usrから同様にすると、Finderで普通に開けます。この方が便利です。 |
| ホーム |
|