LAMP trên lappy của tôi

LAMPTrước tiên tôi xin khoe rằng tôi mới tậu được một chú laptop ! Thật là sung sướng khi ước mơ của mình trở thành hiện thực sớm hơn kế hoạch những nửa năm. 😀

Sau khi vác chú ấy về nhà, tôi bắt tay ngay vào việc “cải tạo”. Tôi lột Windows ra, thay vào đó là Ubuntu. Từ trước đến giờ, tôi toàn học và làm việc trên máy tính ở công ty, một máy tính sử dụng Windows (tôi không có quyền cài đặt Linux lên đó). Chính vì thế, tôi hơi rụt rè khi “khoe khoang” về trình PHP của mình, dù sao thì tôi vẫn chưa bao giờ nếm trải cảm giác khi làm việc trên môi trường LAMP thật sự. Bây giờ thì tôi không còn bị hụt chân khi khen Linux trước mặt các kỹ sư Windows nữa rồi. 😉

Quá trình cài đặt dễ dàng và sự thân thiện của Ubuntu thì khỏi cần phải nhắc đến nữa, cộng đồng đã ca ngợi từ lâu rồi. Tuy nhiên thử thách vẫn ở phía trước, tôi phải setup thêm Apache, MySQL, PHP để tạo nên một môi trường làm việc hoàn hảo. Ubuntu hỗ trở rất tốt cho việc cài đặt các gói phần mềm, tất cả đã có sẵn trên server của họ, người dùng chỉ cần “sudo apt-get install …” là xong. Tuy nhiên tôi chọn cách tự compile AMP từ source code, nghĩ rằng chắc chắn mình sẽ có những trải nghiệm thú vị. 🙂

Đúng như những gì tôi dự đoán, mọi chuyện rắc rối hơn tôi tưởng. Trước tiên là việc thiếu các shared library và sự liên quan đến nhau giữa chúng. Ví dụ tôi không thể compile module PHP mà không có Apache, không thể compile thư viện hỗ trợ MySQL cho PHP mà chưa cài đặt gói client libraries của MySQL.

Rắc rối tiếp theo chính là các chỉ dẫn từ trên mạng. Tôi đã compile MySQL với static client libraries, điều này khiến tôi phải cài thêm một gói mysql shared client nữa cho PHP sử dụng. Nhưng ác ôn thay, gói shared client này đã … lỗi thời, không làm việc được một cách trơn tru với server. Tôi phải tháo ra và cài lại phiên bản mới hơn. Nhưng sau đó tôi nhận ra rằng, thật là ngu ngốc khi cài riêng như thế. MySQL client và MySQL server sử dụng 2 file socket khác nhau cho local connection, dẫn đến tình trạng không kết nối được. Tôi sửa lại cấu hình MySQL trong php.ini, kết quả là các hàm MySQL cũ thì làm việc được còn PDO thì không. Cuối cùng tôi phải compile lại nguyên bộ MySQL client và PHP. Thế là ổn !

Còn Apache, Apache có lẽ là tay dễ chịu nhất trong bộ 3. Chỉ có một vấn đề duy nhất là dù tôi compile kiểu nào thì vẫn không tìm thấy các file thư viện modules. Sau khi hỏi một người bạn thì anh ta nói rằng nó đã được compile vào luôn trong apache rồi. Tôi cũng không chắc nữa, tôi chưa test chuyện này.

Thế đấy, trong vòng 3 ngày, tôi compile đi compile lại AMP khoảng vài chục lần. Bây giờ thì tất cả đã ổn (hay ít ra thì tôi nghĩ thế). Mọi chuyện thú vị hơn trên Windows rất nhiều, mặc dù cũng mệt nhọc hơn gấp mấy lần.

Còn bây giờ, nếu bạn hứng thú, hãy chiêm ngưỡng chú lappy của tôi:

Lappy

About this entry