[Python] Kí sự cài đặt mod_python 3.3.1 trên MAC os X 10.6.4

Hoàn cảnh ký sự …

Do yêu cầu của công việc nên tôi bắt đầu làm việc với Python. Có thể nói đây là lần đầu tiên tôi làm việc với một môi trường hoàn toàn xa lạ với mình – MAC OS X, Debian, Python, Apache … khi mà tôi đã quen thuộc từ lâu với Windows, .NET và IIS … Vạn sự khởi đầu nan, và sau 1 tuần mò mẫm thì cuối cùng cũng thấy ánh sáng cuối đường hầm😀

Tất nhiên để lập trình web thì ta phải có máy chủ phục vụ web (web server). Tôi cũng biết rằng MAC os X phiên bản 10.6.4 này đã có sẵn Apache 2.2, và hoàn toàn có thể hỗ trợ tốt python, và hơn nữa Python 2.6 cũng được tích hợp sẵn trong hệ điều hành này. Việc còn lại là tôi cần cài đặt mod_python – vốn là module nhúng trình thông dịch python vào máy chủ Apache theo mô hình CGI.Như vậy tôi chỉ cần tải về mod_python và cài đặt là xong ?😀 Cuộc sống không đơn giản như thế😀

Vạn sự khởi đầu nan …

mod_python có thể download dễ dàng từ trang chủ của mod_python. Thực ra đây chỉ là source code của mod_python, trước khi cài đặt bạn phải compile và tất nhiên trong máy của bạn phải có GCC – GNU Complier Collection, nói nôm na là trình biên dịch C/C++. Nếu bạn sử dụng Linux, Unix thì sẽ chẳng bận tâm đến GCC vì nó đã được tích hợp sẵn. Tuy nhiên phiên bản MAC os X 10.6.4 không tích hợp sẵn trình biên dịch này… và cách “chuối bưởi” nhất đó là cài đặt thêm XCode 3 -bộ SDK của Apple, mặc dù có rất nhiều cách nhanh và gọn hơn để cài GCC. Tôi mất thêm hơn 2GB và gần 1 tiếng để download bộ XCode từ trang developer của Apple.

Sau khi download và cài đặt xong XCode, tôi liền mở terminal và thử luôn việc cài đặt mod_python bằng các lệnh sau:

$ tar xvzf mod_python-3.3.1.tar
$ cd mod_python-3.3.1
$ ./configure --with-apxs=/usr/sbin/apxs
$ make
$ sudo make install


Một loạt các lệnh được thực thi, tuy nhiên kết quả cuối cùng tôi nhận được là một thông báo lỗi

connobject.c:142: error: request for member 'next' in something not a structure or union apxs:Error: Command failed with rc=65536

Bó tay thật …😐😐

Gian nan nhưng chưa … chán

Tôi lại tiếp tục mò mẫm tìm xem nguyên nhân và cuối cùng thì tôi tìm ra được đây là lỗi của mod_python khi compile trên Snow Leopard – tức là cái hệ điều hành MAC os X 10.6.4 này  :| , và bug cũng được mô tả kèm theo bản vá (patch) tại đây. Tôi tải bản vá này vào chính folder source của mod_python 3.3.1, sau đó cài đặt nó bằng các lệnh sau:

$ cd mod_python-3.3.1
$ patch -p1 < mod_python-3.3.1-apr.patch 

Sau khi thực thi, hệ thống gửi lại cho tôi một thông báo để biết rằng quá trình patch đã … thành công😐

patching file src/connobject.c

và bây giờ, tôi thực hiện lệnh compile, sau khi đã vượt qua hàng tá thứ để cài đặt … bằng lệnh:

$ ./configure --with-apxs=/usr/sbin/apxs
$ make
$ sudo make install

Như vậy là tôi đã cài đặt thành công mod_python lên server apache, và thao tác còn lại là restart apache server lại bằng lệnh  …

$ sudo /usr/sbin/apachectl restart

Ánh sáng cuối đường hầm

Sau một vài thao tác sửa file httpd.conf của Apache và viết một module python xử lý các HTTP Request thì cuối cùng tôi cũng build được cái project của mình chạy local. Mặc dù tốn hết một tuần nhảm nhí nhưng tôi cũng rút ra được khá nhiều bài học khi làm việc với open source và bỗng dưng biết sử dụng thêm … linux (debian) và hiểu rõ hơn về cơ chế hoạt động của MAC os X😐 … Tôi đã lún quá sâu với Windows và Microsoft, có lẽ đây là lúc thích hợp để tìm đường thoát khỏi chăng :))

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s