» » Cài đặt Apache, PHP-FPM FastCGI và MariaDB trên Ubuntu

Cài đặt Apache, PHP-FPM FastCGI và MariaDB trên Ubuntu

Cài đặt Apache sử dụng PHP-FPM FastCGI thay thế cho mod_php và MariaDB thay thế cho MySQL giúp tăng hiệu suất cho máy chủ một cách đáng kể. Bài viết này sẽ hướng dẫn bạn làm thế nào để cài đặt Apache, PHP-FPM và MariaDB trên Ubuntu.

Có lẽ đối với người dùng Nginx, PHP-FPM đã quá quen thuộc, nó được biết đến với việc sử dụng ít bộ nhớ trong khi khả năng xử lý rất hiệu quả. Với việc phát hành Apache 2.4, một số tính năng mới được chính thức hỗ trợ cho PHP. Apache 2.4 có thể chạy PHP như là một máy chủ xử lý fastCGI thông qua mod_proxy_fcgi.

Bạn cần phải cài đặt Apache 2.4 và tốt hơn là nên có một phiên bản PHP 5.4, 5.5 hoặc 5.6. Điều này là rất dễ dàng đối với một máy chủ Ubuntu 12.04 hoặc mới hơn.

Cài đặt Apache 2.4 mới nhất

Apache 2.4 chính thức hỗ trợ PHP-FPM thông qua module mod_proxy_fcgi. Điều này có nghĩa là bạn không cần cài đặt thêm bất cứ một module từ bên thứ ba như mod_fastcgi.

Xem bài viết cài đặt Apache 2.4 mới nhất trên Ubuntu và kiểm tra phiên bản Apache với lệnh apache2 -v.

Sau khi cài đặt Apache 2.4, bạn cần bật 2 module là mod_proxy và mod_proxy_fcgi.

$ a2enmod proxy proxy_fcgi

Tiếp theo, bạn cần cấu hình virtual host của bạn.

$ nano /etc/apache2/sites-available/000-default.conf

Ở đây có 2 phương thức tiếp cận, TCP socket và Unix socket.

TCP socket (IP và port)

Thêm 2 dòng sau vào virtual host của bạn.

ProxyPassMatch ^/(.*\.php(/.*)?)$ fcgi://127.0.0.1:9000/path/to/your/documentroot/$1
DirectoryIndex /index.php index.php

Như trên, những tập tin có đuôi .php sẽ được proxypass qua 127.0.0.1:9000. Khai báo /path/to/your/documentroot như DocumentRoot.

Sau khi thêm bạn sẽ có được như sau:

ServerAdmin webmaster@localhost
DocumentRoot /var/www/html
ProxyPassMatch ^/(.*\.php(/.*)?)$ fcgi://127.0.0.1:9000/var/www/html/$1
DirectoryIndex /index.php index.php

Unix domain socket (UDS)

Unix socket là nhanh và nhẹ hơn TCP socket. Tuy nhiên để sử dụng Unix socket bạn cần phải có phiên bản Apache 2.4.9 hoặc mới hơn.

Thêm dòng sau vào virtual host của bạn.

ProxyPassMatch ^/(.*\.php(/.*)?)$ unix:/var/run/php5-fpm.sock|fcgi://127.0.0.1:9000/path/to/your/documentroot/

/var/run/php5-fpm.sock là đường dẫn của fpm socket mà mình sẽ đề cập ở dưới. Khai báo /path/to/your/documentroot như DocumentRoot.

Sau khi thêm bạn sẽ có được như sau:

ServerAdmin webmaster@localhost
DocumentRoot /var/www/html
ProxyPassMatch ^/(.*\.php(/.*)?)$ unix:/var/run/php5-fpm.sock|fcgi://127.0.0.1:9000/var/www/html/

Lưu virtual host của bạn và thoát ra.

Cài đặt PHP-FPM

Bạn nên cài đặt phiên bản PHP 5.4 hoặc mới hơn cho Apache 2.4. Nếu bạn đang dùng Ubuntu 12.04, xem hướng dẫn cài đặt PHP trên Ubuntu để sử dụng PPA cho các phiên bản PHP mới hơn.

Cài đặt PHP và các module bằng lệnh sau:

$ sudo apt-get install php5-fpm php5-mysql php5-xmlrpc php5-curl php5-gd php5-cli php-pear php5-dev

Mở và chỉnh sửa tập tin /etc/php5/fpm/pool.d/www.conf

$ nano /etc/php5/fpm/pool.d/www.conf

Tìm đoạn:

listen = /var/run/php5-fpm.sock
hoặc
listen = 127.0.0.1:9000

Sửa thành listen = 127.0.0.1:9000 nếu bạn muốn sử dụng TCP socket. Sửa thành listen = /var/run/php5-fpm.sock nếu bạn muốn sử dụng Unix domain socket.

Lưu và thoát.

Khởi động lại dịch vụ Apache và PHP-FPM

$ service apache2 restart
$ service php5-fpm restart

Bạn có thể tạo một tập tin info.php và kiểm tra:

$ nano /var/www/html/info.php

Nhập vào đoạn code sau, lưu và chạy http://your-ip/info.php

<?php phpinfo(); ?>

Cài đặt Apache, PHP, MySQL trên ubuntu

Cài đặt MariaDB thay thế cho MySQL

MariaDB là một phần mềm quản lý dữ liệu mã nguồn mở, được phát triển rẻ nhánh từ MySQL. Ngày nay, MariaDB được sử dụng rộng rãi và được đánh giá là có hiệu suất tốt hơn MySQL. Xem hướng dẫn cài đặt MariaDB trên Ubuntu để biết thêm.

Nếu bạn sử dụng MariaDB thay thế cho MySQL, bạn nên cài đặt php5-mysqlnd để PHP hỗ trợ thay vì php5-mysql.

Như vậy là bạn đã hoàn thành việc cài đặt Apache 2.4 mới nhất sử dụng PHP-FPM ít tốn bộ nhớ và MariaDB cho một hiệu suất cao rồi đấy.

Thích hoặc chia sẽ bài này

  • Administrator

    Cũng được 😀