DjangoとMySQL
Pythonのフレームワークの1つDjangoをインストールした.
■ セットアップツールのインストール
setuptools-0.6c6-py2.4.eggを http://cheeseshop.python.org/packages/2.4/s/setuptools/よりDLした.
# /bin/sh setuptools-0.6c6-py2.4.egg
■ Python から MySQL に接続するためのモジュールのインストール
# easy_install -U -Z MySQL_python
■ Djangoのインストール
http://www.djangoproject.com/download/0.96/tarball/からDLした.
# tar xzvf Django-0.96.tar.gz
# python setup.py install
で終了なんですがー 2のインストールをしようとしたときに, /usr/bin/ld: cannot find -lmysqlclient_r というエラーがでてインストールすることができなかった. これは自分が以前にインストールしたMySQLが「--enable-thread-safe-client」オプションをつけてインストールしなかったため,スレッドセーフなクライアントライブラリ libmysqlclient_r が作成されていなかった…. ということで,MySQLを再インストールして無事成功!!
※ ldconfig でMySQLのライブラリを参照できるように設定したりはしました.
※ 今回の環境は, FedoraCore5, MySQL5.0.26, Python2.4.2 でした!!
Bookmark作成
Django and jQuery で Bookmarkの画面を作成!! 以前作成したものが,ショボショボでしたのでー修正!!
HTMLやCSSは苦手なのでー普段から適当!!その適当さが原因でjson形式のレスポンスをHTMLに展開するときに面倒となった!! あと,jQueryのTraversingとManipulationを自由に使いこなせていないのも原因だわっ!!
だれか,わかりやすく図で表現してくれないかなぁ〜.
ページャー&カスタムテンプレート
先日作成したBookmarkにページャーを追加してみました.
ObjectPaginatorと埋め込みタグ(inclusion tag)を使ってみました!! 最初くだらないところ "templatetags"ディレクトリの置き場とその設定(setting.iniに書く忘れててー) ではまっちゃいました.
ObjectPaginatorの使い方に関しては, 「/path/to/python2.4/site-ackages/django/views/generic/list_detail.py」 を参考にして作成.
Python温泉 参加申込
Voluntas さんありがとうございます。
このような企画に参加したことがないのでもうドキドキですっ!! プログラムはめちゃくちゃの素人です.わからないことだらけだと思いますがー温泉を通じて色々と勉強したいと思っています.また,みなさんとの交流を楽しみにしてますっ!!
いやぁ~ドキドキです. みなさん,宜しくお願いしまーす.
環境構築
近々,サーバの環境を再構築しようと思っておりましてー別のPCで環境構築のテストをしてみました.
今回インストールしたのは, FedoraCore5 Mecab-0.96 Senna-1.0.8 tritonn-1.0.3.mysql-5.0.41 Apache2.2.4 PHP5.2.3 Python2.5 mod_wsgi1.0c1 Django0.96
とOSからインストールしたのでーかなり面倒な戦いだった….欲を言えばーXenにも挑戦したかったのですが….目的からそれちゃうのでー別の機会で…. そうそう目的はdjangoで作ったサイトをapache越しに見れるようにしたかったのだ!!あと,一応業務でPHPを使うことが多いのでーPHPも同時に使えるようにと…. さらに,せっかくなのでー全文検索も…と欲張ってしまった…あはは….
色んなところでエラーが起きて対応したんですがーその場その場で対応したので…覚えてないかも…. ざざーっとこんな感じでインストールしたというのもメモっておきます.
■ MeCabのインストール
$ tar xzvf mecab-0.96.tar.gz
$ cd mecab-0.96
$ ./configure --prefix=/usr --with-charset=utf8
$ make
# make install
■ MeCabの辞書をインストール
$ tar xzvf mecab-ipadic-2.7.0-20070801.tar.gz
$ cd mecab-ipadic-2.7.0-20070801
$ ./configure --prefix=/usr --with-charset=utf8
$ make
# make install
■ Sennaのインストール
$ tar xzvf senna-1.0.8.tar.gz
$ cd senna-1.0.8
$ ./configure --prefix=/usr
$ make
# make install
■ MySQL(Tritonnパッチ適用済)
$ tar xzvf mysql-5.0.41-tritonn-1.0.3.tar.gz
$ ./configure --prefix=/usr/local/mysql \
--with-charset=utf8 \
--with-extra-charsets=all \
--with-mysqld-user=mysql \
--with-unix-socket-path=/usr/local/mysql/tmp/mysql.sock \
--enable-thread-safe-client \
--with-senna \
--with-mecab
$ make
# make install
今までは,どうもTritonnパッチをあてる作業やよくわからないコマンド操作があったようだがーこれはなくて楽チン!! オプションは適当!しかし--enable-thread-safe-client つけないとーMySQL_pythonがインストールできない!!
あとは,通常のMySQLの設定DBの初期設定,DB作成,ユーザ作成,…などした. 一応,全文検索のテストをやってみたらー無事成功!! 今度アプリと連動して動かしてみたい!!
■ Apacheのインストール
$ tar xzvf httpd-2.2.4.tar.gz
$ cd httpd-2.2.4
$ ./configure
$ make
$ make install
今回はじめて2.2系を使ったので,設定ファイルが分離されててーほんの一瞬戸惑った!!あはは….
■ PHPのインストール
$ tar xzvf php-5.2.3.tar.gz
$ cd php-5.2.3
--with-apxs2=/usr/local/apache2/bin/apxs \
--with-config-file-path=/usr/local/php5/etc \
--with-config-file-scan-dir=/usr/local/php5/etc/php.d \
--with-layout=GNU \
--enable-mbstring \
--with-libmbfl \
--enable-mbregex \
--with-mysql=/usr/local/mysql \
--with-gd
$ make
# make install
PHPのオプションは適当に必要かなぁ 0と思ったのをつけてます.
/usr/local/apache/conf/httpd.conf にapplication/x-httpd-php .php 追加して
ここで,apache, php, mysqlの連携テストスクリプト作成して成功!!
■ Python2.5のインストール FedoraCore5には2.4ならデフォルトでインストールされていてーそれを使おうと思ってmod_wsgiをインストールしようとしたらなんかうまくいかなかったんでー2.5インストールした.(あれ!?なんのエラーだっけ…)
$ tar xzvf Python-2.5.tgz
$ cd Python-2.5
$ ./configure --enable-shared
$ make
# make install
ここで,俺はwhich python とやったらーパスが新しくインストールされているところに切り替わっていたのでー次のmod_wsgiのインストールにすすんだんだがーエラー「error while loading shared libraries: libpython2.5.so.1.0」とエラーがでてーオプションのせい?とか悩んでしまった…. 結果は,/etc/ld.so.conf に追記する必要があった.あーもちろん「export LD_LIBRARY_PATH」でもOKだと思います.
# vi /etc/ld.so.conf
(追記)
/usr/local/lib
# ldconfig
これでOK.ldconfig -p で libpython2.5.so.1.0 表示されればダイジョブ.
■ Djangoのインストール
# sh setuptools-0.6c6-py2.5.egg
# easy_install -U -Z MySQL_python
# tar xzvf Django-0.96.tar.gz
$ cd Django-0.96
# python setup.py install
確か,MySQL_python をインストールするときに mysql_config がどうのこうのってエラーがでっけなぁ 0.それはPATHに/usr/local/mysql/binを追加して終了. 一応プロジェクト作成してlocalhost:8000でアクセスできるかは試したところOKでした.
■ mod_wsgiのインストール こちらは, nobu さんのサイトを参考にapacheの設定などを行いました.
$ tar xzvf mod_wsgi-1.0c1.tar.gz
$ cd mod_wsgi-1.0c1
$ ./configure
$ make
# make install
/usr/local/apache2/conf/httpd.conf に LoadModule wsgi_module libexec/apache22/mod_wsgi.so を追記する.
あとは,バーチャルホストの設定やdjango.wsgiのスクリプトを作成した. この変は nobu さんのサイトなどをまるまるコピーして終了した感じでーあまり細かいことが解らないまま成功している. Apache <--> mod_wsgi <--> django.wsgi <--> django.project って感じのやり取りをしているんでしょうね.あはは….
いやいやー長かった….最初のFC5で漢字が表示できないとか訳の解らないトラブルなんかにも付き合っていたんでー時間かかっちゃいました…ぷぅ 0 0 0.
さて,近々本番でやらないとなぁ 0.てーことでー予告なくサーバが止まるかもしれませんがーお許しあれ!?