Cài đặt LAMP trên Ubuntu

Xây dựng hệ thống LAMP
Xây dựng hệ thống LAMP

LAMP là từ viết tắt của Linux, Apache, MySQL, PHP (đôi khi còn là Perl, Python) thành phần chủ yếu để xây dựng được máy chủ Web. Mặc dù lúc đầu tất cả các thành phần trên không được thiết kế và phát triển để làm việc tương hợp với nhau nhưng theo thời gian sự gắn kết các thành phần trở thành một giải pháp máy chủ Web chủ yếu do chúng miễn phí, mã nguồn mở, dễ dàng thích nghi và khả chuyển trên hầu hết các môi trường khác nhau như Windows (WAMP), Mac (MAMP), Solaris (SAMP)…
Việc cài đặt một hệ thống LAMP trên Ubuntu trong bài viết này không nhằm mục đích xây dựng một máy chủ có khả năng phân phối nội dung qua Internet, mục đích chủ yếu dành cho cá nhân hay sử dụng để thử nghiệm các dự án cá nhân trên môi trường Linux đúng nghĩa của LAMP.
LAMP gồm 4 thành phần chính, trên Ubuntu chúng ta chỉ cần cài đặt thêm 3 thành phần cơ bản là Apache, MySQL, PHP (hoặc Python, Perl) và các module để kết nối chúng với nhau. Thay vì cài đặt riêng biệt và cấu hình thủ công, trên Ubuntu (hay các hệ điều hành họ Linux, UNIX nói chung) có môi trường dòng lệnh cho phép can thiệp và hệ thống hết sức mạnh mẽ. Chính vì vậy chúng ta chỉ cần một dòng lệnh duy nhất để cài đặt hoàn chỉnh máy chủ LAMP như sau:

sudo apt-get install apache2 mysql-server php5 php5-mysql libapache2-mod-php5 php5-ffmpeg php5-imagick php5-gd mysql-query-browser mysql-admin php5-cli php5-curl

Cụ thể như sau:

  • Cài đặt gói phần mềm cần quyền quản trị với lệnh sudo
  • Gói apache2 để cài máy chủ Apache2
  • Gói mysql-server đề cài máy chủ cơ sở dữ liệu MySQL
  • Gói php5 để cài bộ biên dịch PHP
  • Gói libapache2-mod-php5 để PHP làm việc được với Apache
  • Để PHP làm việc được với MySQL chúng ta cần cài thêm gói php5-mysql
  • Gói php5-ffmpeg hỗ trợ các nội dung đa phương tiện
  • Để làm việc với các tập tin hình ảnh, đồ họa cần các gói php5-imagickphp5-gd
  • Để quản lý qua giao diện dòng lệnh, bạn có thể cài các gói mysql-query-browsern mysql-admin, php5-cli
  • Gói php5-curl hỗ trợ việc cập nhật và lấy dữ liệu qua các máy chủ

như vậy là đủ cho một máy chủ cơ bản, khi cài đặt bạn sẽ cần nhập mật khẩu quản trị, quá trình cài đặt hệ thống sẽ tự động thực hiện cho bạn. Tất nhiên, việc cài đặt các phần mềm trên Ubuntu hầu hết đều có yêu cầu phải kết nối với internet.
Theo mặc định, máy chủ LAMP của bạn sẽ tự động hoạt động cùng hệ thống dưới dạng dịch vụ. Để tắt, bật, khởi động lại Apache bạn có thể sử dụng các lệnh sau:

/etc/init.d/apache2 start
/etc/init.d/apache2 stop
/etc/init.d/apache2 restart

Ngoài ra, bạn có thể dễ dàng quản lý máy chủ LAMP bằng Rapache hoặc localhost-indicator trực quan hơn rất nhiều.
Sau khi cài đặt xong bạn sẽ bắt gặp lỗi này trong lúc sử dụng Apache:

apache2: Could not determine the server’s fully qualified domain name, using 127.0.0.1 for ServerName

Lỗi này không có gì nghiêm trọng, để sửa bạn chỉ cần thêm ServerName localhost vào tập tin /etc/apache2/conf.d/fqdn (nếu chưa có tập tin này bạn hãy tạo một tập tin mới).
Theo mặc định, máy chủ LAMP lưu trữ nội dung tại /var/www/ điều này thực sự phiền phức bởi vì cần phải có tài khoản quản trị (root) mới có thể chỉnh sửa nội dung tại đây. Có một vài phương pháp khác nhau có thể khắc phục vấn đề này, trong đó thay đổi cấu hình Apache và ánh xạ nội dung của thư mục website lên /var/www/ là 2 cách hiệu quả hơn cả.
Để chình cấu hình Apache trỏ đến thư mục nội dung website của bạn bằng cách sửa tập tin /etc/apache2/sites-available/default, bạn thay đổi /var/www tại dòng DocumentRoot /var/www thành đường dẫn đến nơi mà bạn có quyền sở hữu, như trong thư mục home của bạn.
Ánh xạ nội dung website của bạn bằng lệnh ln chẳng hạn như sau:

sudo ln -s /home/users/www /var/

Ngoài ra, nếu bạn muốn bật module rewrite để cấu hình .htaccess thì cần phải dùng lệnh

a2enmod rewrite

để bật module rewrite, tiếp theo bạn sửa dòng AllowOverride None thành AllowOverride All trong /etc/apache2/sites-enabled/000-default, bạn có thể thay thế hết mà không cần quan tâm đến vị trí của nó bởi vì dùng cá nhân nên không cần quan tâm nhiều đến bảo mật máy chủ; sau đó khởi động lại Apache.
Như vậy máy chủ LAMP của bạn đã cài đặt xong, nó hỗ trợ PHP (Perl hay Python tùy bạn chọn) và hệ cơ sở dữ liệu MySQL, để truy cập bạn gõ địa chỉ http://localhost trên trình duyệt sẽ nhận được trang thông báo It’s works!
Lưu ý: Cài đặt LAMP sẽ gây xung đột với Skype do tranh chấp cổng 80, bạn có thể chuyển Skype sang hoạt động ở cổng 81 để khắc phục vấn đề này.
Cập nhật:

  1. Ngày 12.06.2011: Bổ xung một số gói cần thiết cho việc hỗ trợ các tác vụ đồ họa, đa phương tiện, quản lý máy chủ bằng dòng lệnh.
  2. Ngày 20.10.2011: Sửa lỗi câu lệnh tạo ánh xạ thư mục www lên /var/www

4 thoughts on “Cài đặt LAMP trên Ubuntu”

  1. “Lỗi này không có gì nghiêm trọng, để sửa bạn chỉ cần thêm ServerName localhost vào tập tin /etc/apache2/conf.d/fqdn (nếu chưa có tập tin này bạn hãy tạo một tập tin mới). ”
    không hiểu cách tạo 1 tập tin mới là như nào ? xin hướng dẫn cụ thể được không ? cảm ơn nhiều

  2. bạn mở Terminal và đánh lệnh sudo gedit /etc/apache2/conf.d/fqdn, nếu không có thì hệ thống tự động tạo tập tin mới, khi đó bạn có thể tự nhập nội dung.

  3. Ai giúp mình với, mình cài apache2 trên ubuntu server 11.10 sau khi cài xong mình restart lại thì gặp lỗi này:
    root@server:/# /etc/init.d/apache2 start
    * Starting web server apache2 Action ‘start’ failed.
    The Apache error log may have more information. [fail]
    root@server:/#
    mình vào xem file error.log thì thấy này mà không biết lỗi gì:
    [Wed Mar 07 15:18:21 2012] [warn] RSA server certificate is a CA certificate (BasicConstraints: CA == TRUE !?)
    [Wed Mar 07 15:18:21 2012] [notice] Apache/2.2.20 (Ubuntu) DAV/2 mod_fcgid/2.3.6 PHP/5.3.6-13ubuntu3.6 with Suhosin-Patch mo$
    [Wed Mar 07 15:54:28 2012] [notice] caught SIGTERM, shutting down
    [Thu Mar 08 0827 2012] [warn] RSA server certificate is a CA certificate (BasicConstraints: CA == TRUE !?)
    [Thu Mar 08 0827 2012] [notice] suEXEC mechanism enabled (wrapper: /usr/lib/apache2/suexec)
    [Thu Mar 08 0827 2012] [notice] Digest: generating secret for digest authentication …
    [Thu Mar 08 0827 2012] [notice] Digest: done
    [Thu Mar 08 0827 2012] [warn] RSA server certificate is a CA certificate (BasicConstraints: CA == TRUE !?)
    [Thu Mar 08 0827 2012] [notice] Apache/2.2.20 (Ubuntu) DAV/2 mod_fcgid/2.3.6 PHP/5.3.6-13ubuntu3.6 with Suhosin-Patch mo$
    [Thu Mar 08 08:12:01 2012] [error] [client 192.168.1.13] File does not exist: /var/www/phpadmin
    [Thu Mar 08 08:13:02 2012] [notice] caught SIGTERM, shutting down
    [Thu Mar 08 08:13:03 2012] [warn] RSA server certificate is a CA certificate (BasicConstraints: CA == TRUE !?)
    [Thu Mar 08 08:13:03 2012] [notice] suEXEC mechanism enabled (wrapper: /usr/lib/apache2/suexec)
    [Thu Mar 08 08:13:03 2012] [notice] Digest: generating secret for digest authentication …
    [Thu Mar 08 08:13:03 2012] [notice] Digest: done
    [Thu Mar 08 08:13:03 2012] [warn] RSA server certificate is a CA certificate (BasicConstraints: CA == TRUE !?)
    [Thu Mar 08 08:13:03 2012] [notice] Apache/2.2.20 (Ubuntu) DAV/2 mod_fcgid/2.3.6 PHP/5.3.6-13ubuntu3.6 with Suhosin-Patch mo$
    [Thu Mar 08 08:13:16 2012] [notice] caught SIGTERM, shutting down
    Ai có cách nào khắc phục chỉ mình với!

Comments are closed.