2009年12月10日木曜日

pythonでmoduleにsslなんてないよ!っていわれたら

'module' object has no attribute 'ssl'

っていうエラーがでちゃいました。
googleのAPIいじくっていたら。

python自体を再インストールです。

$ ./configure --enable-shared
$ vi Modules/Setup

以下の行をコメントアウトしましょう!!

zlib zlibmodule.c -I$(prefix)/include -L$(exec_prefix)/lib -lz

SSL=/usr
_ssl _ssl.c \
-DUSE_SSL -I$(SSL)/include -I$(SSL)/include/openssl \
-L$(SSL)/lib -lssl -lcrypto

2009年10月29日木曜日

Aptanaのsubclipseでエラー

AptanaのSubclipseとtortoiseSVNを併用していて、aptanaのsubclipse側でエラーが起きました。

エラーは
This client is too old to work with working copy '...'

つまりあれっす、
subclipse側がsubverion1.4対応なのに、亀さんが1.6対応でファイルをアップデートしたために、
subclipseで理解できなくなったものがいたのです。

ということで、Apatanのソフトウェア更新で下記のパスを探してSubclipseを更新

http://subclipse.tigris.org/update_1.6.x

以上で作業は終わって、問題なしです。

2009年10月3日土曜日

apacheでmod_rewrite

どうもmod_rewriteを使う場所では
FollowSymlinksの設定をONにしないといけないみたいです。

2009年8月17日月曜日

全角チルダ(波線)問題

文字コードが苦手です。

PHP+smartyを利用したサイトで、「~(全角波線)」を表示してあげようとおもったら、
文字化けが・・・。(EUC-JP)

しょうがないので、

という文字参照を利用して対応。

IEとSAFARIでうまく表示されないから・・・。
文字コードは苦手です。

2009年7月30日木曜日

Formのデータを参照したいとき

Djangoテンプレートからformにセットされているデータを参照したい場合には、
form.initial.xxxxx(フィールド名)で参照できます。

2009年6月19日金曜日

Djangoでのクラス名の取得

オブジェクトのクラス名を取得する方法。

xxxxx.__class__.__name__

で取れた。
これってdjangoだけ?ptyhon全部なのかな。

2009年6月11日木曜日

Django 外部アプリ追加

外部アプリ(Pinaxの中のモジュールを単体で)とかをsetup.py installを利用しないで使おうとすると、うまくdjangoで認識できない場合があります。

そんな時には、
mod_wsgiファイルの中で強引にpathを追加してしまう手があります。

詳しくはpinaxのdeployファイルの中で

from os.path import abspath, dirname, join
from site import addsitedir

PINAX_ROOT = abspath(join(dirname(__file__), "../../../"))
PROJECT_ROOT = abspath(join(dirname(__file__), "../"))

path = addsitedir(join(PINAX_ROOT, "libs/external_libs"), set())
if path:
sys.path = list(path) + sys.path

sys.path.insert(0, join(PINAX_ROOT, "apps/external_apps"))
sys.path.insert(0, join(PINAX_ROOT, "apps/local_apps"))
sys.path.insert(0, join(PROJECT_ROOT, "apps"))

sys.path.insert(0, abspath(join(dirname(__file__), "../../")))

とやっているラインを参照に・・・・

2009年6月8日月曜日

POSTFIXから携帯へメール

携帯業者は信頼されたサーバーからしかメールを受け取ってくれないようで・・・。

自分で建てたサーバーから直接飛ばしても届きません。
というわけで、

1.postfixのmain.cfに下記を追加あるいはコメントアウト

transport_maps = hash:/etc/postfix/transport


2.そのあと
/etc/postfix/transport
ファイルに下記を追加

ezweb.ne.jp smtp:【SMTPサーバー】:【ポート】
.ezweb.ne.jp smtp:【SMTPサーバー】:【ポート】
docomo.ne.jp smtp:【SMTPサーバー】:【ポート】
.docomo.ne.jp smtp:【SMTPサーバー】:【ポート】
vodafone.ne.jp smtp:【SMTPサーバー】:【ポート】
.vodafone.ne.jp smtp:【SMTPサーバー】:【ポート】
softbank.ne.jp smtp:【SMTPサーバー】:【ポート】
.softbank.ne.jp smtp:【SMTPサーバー】:【ポート】
pdx.ne.jp smtp:【SMTPサーバー】:【ポート】
.pdx.ne.jp smtp:【SMTPサーバー】:【ポート】

ISPのSMTPサーバーはリレーを許可している必要があります。

OCNだと vc を外して、portは25で行きました。

3.transport.dbを作成
postmap /etc/postfix/transport

4. postfixを再起動

以上でうまくいきました。
ただし、指定したドメインだけ受信するような設定になっている携帯へは
相手に許可リストにいれてと伝える必要があります。

また、mailqでみても、送れなかった場合でもエラーログがでてこないようです。
なにか確かめる方法ってあるんですかね・・・。

2009年6月4日木曜日

Djangoのformに後からデータ追加

Djangoのフォームで一瞬はまりました。

インバウンドのフォームをきっちり作成したあとに、
form.data.update({xxx:xxx})
とか行おうとしたら、
QueryDict immutable

というエラー。
このDict オブジェクトは変更できないとさ。

回避方法としては、
data = request.POST.copy()
data['xxx']=xxxx
とフォーム作成まえにPOSTデータをコピーしてデータ追加してしまう方法です。

2009年6月2日火曜日

tritonnをcentOSへ

Tritonnをセットアップ。

mecabやsennaをインストールした後に、./configureしようとおもったら、
cursesなんちゃらがないよー、っていわれた。

このエラーはncurses5-develというものをいれれば解決。

ついでに実行したコマンドはtritonnに載っているもので、

CC='gcc'  CFLAGS='-g'  CXX='gcc'  CXXFLAGS='-g'  LDFLAGS=''  ASFLAGS='' \
./configure \
'--prefix=/usr/local/mysql' \
'--localstatedir=/usr/local/mysql/data' \
'--libexecdir=/usr/local/mysql/bin' \
'--with-comment=MySQL Community Server (GPL)' \
'--with-server-suffix=' \
'--enable-thread-safe-client' \
'--enable-local-infile' \
'--enable-assembler' \
'--with-pic' \
'--with-fast-mutexes' \
'--with-client-ldflags=-static' \
'--with-mysqld-ldflags=-static' \
'--with-zlib-dir=bundled' \
'--with-big-tables' \
'--with-yassl' \
'--with-readline' \
'--with-archive-storage-engine' \
'--with-blackhole-storage-engine' \
'--with-ndbcluster' \
'--with-csv-storage-engine' \
'--with-example-storage-engine' \
'--with-federated-storage-engine' \
'--with-innodb' \
'--with-extra-charsets=all' \
'--with-senna' '--with-mecab'
です。

MeCabインストール

Sennaを入れようと思って、Mecabをまずはインストール・・・。

コンパイラーのパワーがたりませんとかいうエラーが・・・・。

でもって、必要なのはgcc-c++

g++はyumではgcc-c++

をインストールすればオッケー

PHPのインストール

linux にphpのインストール

./configure --with-mysql=/usr/lib/mysql --with-apxs2=/usr/sbin/apxs --enable-mbstring --with-mcrypt --with-openssl --with-gd --with-png-dir=/usr/lib --with-zlib --with-jpeg-dir=/usr/lib --with-pear --with-freetype-dir=/usr/local/lib

freetypeとかjpegとかいろいろと先にダウンロードしていれておく必要はあります。

2009年4月28日火曜日

2009年4月21日火曜日

mod_wsgi インストール


$ http://modwsgi.googlecode.com/files/mod_wsgi-2.3.tar.gz
$ tar xzf mod_wsgi-2.3.tar.gz
$ cd mod_wsgi-2.3
$ ./configure --prefix=/usr --with-python=/usr/local/bin/python-xxx(好きなバージョンで)

Djangoでsegmentation fault 続き

どうやら、
expatがapacheとpythonでバージョン違いのため、起こっていた模様。

http://www.dscpl.com.au/wiki/ModPython/Articles/ExpatCausingApacheCrash

とりあえずはexpatのライブラリーをアップデートしてみることに。

2009年4月20日月曜日

Djangoでsegmentation fault

DjangoがSegmentation faultで落ちた。

理由はdebug-toolbarが読み込まれなかったせいみたい。
でもって解決方法。

とりあえずエラーを確認するために、
setenforce 0

そうすると、debug-toolbar読み込めないよ、っていうエラー確認ができた。
でもなぜか動いた。

不思議。

APCHE バーチャルホストでサブドメイン

バーチャルホストでサブドメインではまった。

解決したけど、そのやり方。
NameVirtualHost 192.168.0.xx:*

これが重要。
でもって、

ServerName test.mydomain.com


いっぱい作る場合は

ServerName test.mydomain.com

をいっぱい作る。


Mysql-DB Python

Mysqlモジュールがないと、mod_pythonがエラーをはく。
というわけで修正方法

1.MySQL-python-x.x.x.tar.gzをダウンロード
http://sourceforge.net/project/showfiles.php?group_id=22307&package_id=15775

解凍
tar zxvf Mysqlxxxxx

2.mysql-develもインストールが必要
yum install mysql-devel

3.ez_setup.pyもインストール(よくわからんかった)
peak.telecommunity.com/dist/ez_setup.py
python ez_setup.py

4.MYSQL-pythonをbuild →install
cd MySQLXX
python setup.py build
python setup.py install

これで動いた

Subversion ディレクトリ作成

svnadmin --fs-type fsfs create /home/svn/XXXX

DAVからの操作を許可するために、所有者変更・SEリナックス用にタイプ変更
chown -R apache:apache /home/svn/xxxxxx
chcon -R -h -t httpd_sys_content_t /home/svn/xxxx

Pyhtonセットアップ

CentOS へのpython セットアップ方法。

# wget http://python.org/ftp/python/2.6/Python-2.6.tgz
tar xvzf Python-2.6.tgz
# cd Python-2.6
# ./configure --enable-shared

Zlibインストールが必要
# yum install zlib-devel

# vi Modules/Setup の中で、下記の行をコメントアウト
#zlib zlibmodule.c -I$(prefix)/include -L$(exec_prefix)/lib -lz

# make
# make install

SOをコピーする
#cp libpython2.6.so libpython2.6.so.1.0 /usr/lib/

作成されたファイルはusr/local/libの中にpython2.6の名前でいます。

Eazy install

# wget http://peak.telecommunity.com/dist/ez_setup.py

# python ez_setup.py


DJANGO!!

wget http://www.djangoproject.com/download/1.0.2/tarball/

tar zxvf Django-1.0.2

python2.6 setup.py install

↑PYTHON2.4と共存させている場合は2.6と明示的にうちます。そうでないと、前バージョンのpythonにジャンゴがインストールされます。


mod_pythonインストール

# yum -y install httpd-devel
# wget http://ftp.riken.jp/net/apache/httpd/modpython/mod_python-3.3.1.tgz
# tar xvfz mod_python-3.3.1.tgz
# cd mod_python-3.3.1
# ./configure --with-python=/usr/local/bin/python2.6 --with-apxs=/usr/sbin/apxs
# make
# make install

これでできたはず。

スタート

ブログスタートです。
とりあえずDjangoとかPythonとかlinux に関してが主です。