Hướng dẫn cài đặt PHP trên Ubuntu: Chi tiết từ cơ bản đến nâng cao cho lập trình web

目次

1. Giới thiệu

Lý do sử dụng PHP trên Ubuntu

PHP là ngôn ngữ kịch bản phía máy chủ được sử dụng rộng rãi trong nhiều ứng dụng web, bao gồm cả WordPress. Trong lĩnh vực phát triển web, PHP đã được sử dụng rộng rãi trong nhiều năm và hầu hết các CMS cũng như framework đều được xây dựng bằng PHP.

Ubuntu là một bản phân phối Linux nổi tiếng với độ ổn định cao, được các nhà phát triển trên toàn thế giới tin dùng và rất phù hợp để dùng làm máy chủ. Sự kết hợp giữa Ubuntu và PHP được sử dụng rộng rãi từ dự án cá nhân đến môi trường doanh nghiệp thực tế.

Đối tượng và mục tiêu của bài viết này

Bài viết này hướng đến cả người mới bắt đầu, những ai “muốn cài đặt PHP trên Ubuntu nhưng chưa biết bắt đầu từ đâu”, đến người dùng trung cấp “muốn cài đặt phiên bản PHP cụ thể”. Chúng tôi sẽ giải thích các bước một cách dễ hiểu nhất có thể.

Bài viết này lấy Ubuntu phiên bản 22.04 LTS làm mặc định, nhưng về cơ bản các phiên bản khác cũng thực hiện tương tự.

Bạn sẽ học được gì qua bài viết này?

Thông qua bài viết này, bạn sẽ hiểu và thực hành được các nội dung sau:

  • Cách cài đặt PHP cơ bản trên Ubuntu
  • Cách cài đặt và chuyển đổi giữa nhiều phiên bản PHP
  • Kiểm tra hoạt động và xử lý sự cố PHP
  • Cấu hình tích hợp với Apache hoặc Nginx
  • Cách cài đặt các mô-đun PHP thường dùng

2. Điều kiện tiên quyết và chuẩn bị

Cách kiểm tra phiên bản Ubuntu

Trước tiên, hãy kiểm tra phiên bản Ubuntu bạn đang sử dụng. Phương pháp cài đặt PHP và các mô-đun hỗ trợ có thể thay đổi đôi chút tùy vào phiên bản Ubuntu.

Bạn có thể kiểm tra phiên bản Ubuntu bằng lệnh sau:

lsb_release -a

Hoặc sử dụng lệnh sau để lấy thông tin phiên bản:

cat /etc/os-release

Bài viết này lấy Ubuntu 22.04 LTS làm ví dụ, nhưng với 20.04 hay 23.10 thì các bước cũng tương tự.

Cập nhật hệ thống lên phiên bản mới nhất

Trước khi cài đặt PHP, bạn nên cập nhật tất cả các gói trong hệ thống lên phiên bản mới nhất. Điều này giúp tránh xung đột hoặc sự không tương thích.

sudo apt update
sudo apt upgrade -y

Lệnh này sẽ cập nhật chỉ mục của APT và đảm bảo các gói được cài đặt ở trạng thái mới nhất.

Cài đặt các tiện ích cần thiết

Để cài đặt một số phiên bản PHP, bạn có thể cần cài gói “software-properties-common” để thêm kho lưu trữ và quản lý các gói. Nếu chưa có, hãy cài đặt bằng lệnh sau:

sudo apt install -y software-properties-common

Gói này cần thiết khi sử dụng lệnh add-apt-repository, đặc biệt hữu ích khi thêm PPA (Personal Package Archive) để cài đặt các phiên bản PHP đặc biệt.

Sử dụng quyền root hoặc sudo

Hầu hết các thao tác được giới thiệu trong bài viết này đều yêu cầu quyền thay đổi hệ thống, vì vậy bạn cần thực thi các lệnh với sudo. Nếu chưa quen dùng sudo, hãy tham khảo cách sử dụng cơ bản trước khi tiếp tục.

3. Cách cài đặt PHP

Trên Ubuntu, có hai cách chính để cài đặt PHP: sử dụng kho lưu trữ mặc định hoặc sử dụng PPA (Personal Package Archive) để chỉ định phiên bản muốn cài đặt. Sau đây là chi tiết từng phương pháp.

Cài đặt PHP từ kho lưu trữ mặc định

Kho lưu trữ mặc định của Ubuntu luôn cung cấp phiên bản PHP ổn định. Nếu không yêu cầu phiên bản đặc biệt, chỉ cần thực hiện các bước sau để cài đặt nhanh chóng.

sudo apt install -y php

Sau khi cài đặt, kiểm tra lại PHP đã được cài đặt chính xác chưa bằng lệnh sau:

php -v

Ví dụ:

PHP 8.1.2 (cli) (built: ...)

Với Ubuntu 22.04, mặc định sẽ cài PHP 8.1.

Cài đặt phiên bản PHP cụ thể bằng PPA

Nếu muốn dùng PHP mới nhất hoặc cần nhiều phiên bản cùng lúc, bạn có thể thêm PPA ondrej/php để chọn phiên bản cài đặt.

Bước 1: Thêm kho lưu trữ PPA

sudo add-apt-repository ppa:ondrej/php
sudo apt update

PPA này được cộng đồng Ubuntu sử dụng rộng rãi và cung cấp các bản dựng PHP ổn định cho nhiều phiên bản.

Bước 2: Cài đặt phiên bản PHP mong muốn

Ví dụ, để cài PHP 8.2:

sudo apt install -y php8.2

Bạn cũng có thể cài các phiên bản khác như PHP 7.4 hoặc 8.0 tương tự.

Bước 3: Kiểm tra phiên bản

php -v

Nếu cài đặt thành công, bạn sẽ thấy thông tin phiên bản PHP đã chọn.

4. Kiểm tra hoạt động của PHP

Sau khi cài đặt PHP, hãy kiểm tra xem nó có hoạt động đúng không. Trên Ubuntu, bạn có thể kiểm tra bằng CLI (dòng lệnh) hoặc thông qua web server (Apache hoặc Nginx).

Kiểm tra bằng dòng lệnh (CLI)

Đầu tiên, kiểm tra bằng cách hiển thị phiên bản PHP qua terminal.

php -v

Nếu hiển thị thông tin phiên bản và build, tức là PHP CLI đã hoạt động bình thường.

Ví dụ kết quả:

PHP 8.2.10 (cli) (built: Aug 23 2023 08:12:10) ( NTS )
Copyright (c) The PHP Group
Zend Engine v4.2.10, Copyright (c) Zend Technologies

Kiểm tra qua web server (Apache)

Nếu bạn cài đặt Apache, có thể kiểm tra PHP đã liên kết với Apache chưa bằng cách tạo trang test với hàm phpinfo().

1. Tạo file test

Tạo file PHP tại thư mục public của Apache (thường là /var/www/html).

echo "<?php phpinfo(); ?>" | sudo tee /var/www/html/info.php

2. Kiểm tra bằng trình duyệt

Truy cập file này bằng trình duyệt. Nếu cài cục bộ, URL là:

http://localhost/info.php

3. Kiểm tra kết quả hiển thị

Nếu hiện đầy đủ thông tin về PHP thì PHP đã liên kết thành công với Apache.

🔍 Lưu ý: Vì trang phpinfo() hiển thị nhiều thông tin bảo mật, nên hãy xóa file info.php sau khi kiểm tra xong.

sudo rm /var/www/html/info.php

Kiểm tra với Nginx + PHP-FPM

Nếu dùng Nginx, PHP sẽ được xử lý qua php-fpm. Đảm bảo Nginx đã cấu hình xử lý file .php đúng cách, sau đó tạo info.php như trên để kiểm tra.

Nếu gặp lỗi 500 hoặc trình duyệt tải xuống file thay vì hiển thị, hãy kiểm tra lại cấu hình Nginx, đặc biệt là fastcgi_passinclude fastcgi-php.conf;.

5. Cài đặt các mô-đun PHP thường dùng

Chỉ cài PHP gốc thì chưa đủ để sử dụng mọi chức năng. Nhiều tính năng bổ sung được cung cấp dưới dạng “mô-đun”, cần cài thêm tùy mục đích sử dụng. Dưới đây là các mô-đun PHP thường dùng trong thực tế.

Mô-đun PHP là gì?

Mô-đun PHP (hoặc extension) là các phần mở rộng chức năng cho PHP như kết nối cơ sở dữ liệu, xử lý đa byte, xử lý hình ảnh, xử lý XML,…

Mô-đun được cung cấp dưới dạng gói APT, cài như sau:

sudo apt install php-tên-mô-đun

Nếu muốn chỉ định phiên bản, ví dụ: php8.2-mbstring.

Các mô-đun PHP quan trọng và công dụng

php-mbstring (hỗ trợ đa byte)

Cần thiết để xử lý chuỗi đa byte như tiếng Nhật. Gần như bắt buộc cho website tiếng Nhật hoặc xử lý email.

sudo apt install php-mbstring

php-mysql (kết nối MySQL/MariaDB)

Dùng để kết nối với cơ sở dữ liệu MySQL/MariaDB. Bắt buộc với các ứng dụng như WordPress.

sudo apt install php-mysql

php-gd (xử lý hình ảnh)

Cho phép tạo, chuyển đổi, thay đổi kích thước ảnh, dùng trong tạo ảnh chụp màn hình, ảnh thumbnail,…

sudo apt install php-gd

php-xml (xử lý XML)

Cần thiết để xử lý dữ liệu XML, ví dụ RSS hoặc SOAP. Thường dùng trong CMS hoặc tích hợp API.

sudo apt install php-xml

php-curl (giao tiếp HTTP)

Dùng để gửi yêu cầu HTTP, tích hợp với các API bên ngoài. Hiện được tích hợp sẵn ở nhiều framework.

sudo apt install php-curl

php-zip (xử lý file nén)

Dùng để nén/giải nén file ZIP, thường kết hợp với chức năng upload file.

sudo apt install php-zip

Kích hoạt mô-đun và khởi động lại

Một số mô-đun cần kích hoạt sau khi cài đặt, dùng phpenmod như sau:

sudo phpenmod tên-mô-đun
sudo systemctl restart apache2

Sau khi kích hoạt, hãy khởi động lại web server để thay đổi có hiệu lực.

6. Quản lý và chuyển đổi phiên bản PHP

Trên Ubuntu, bạn có thể cài nhiều phiên bản PHP trên cùng một server và chuyển đổi linh hoạt. Đặc biệt hữu ích cho môi trường phát triển hoặc server chạy nhiều ứng dụng web.

Dưới đây là cách chuyển đổi phiên bản PHP trên CLI và cấu hình phiên bản cho Apache.

Chuyển đổi phiên bản PHP trên CLI

Sử dụng lệnh: update-alternatives

Ubuntu hỗ trợ chuyển đổi phiên bản PHP cho CLI bằng lệnh update-alternatives.

Bước 1: Kiểm tra các phiên bản PHP đã cài đặt

ls /usr/bin/php*

Bước 2: Đăng ký phiên bản PHP với update-alternatives (chỉ làm lần đầu)

sudo update-alternatives --install /usr/bin/php php /usr/bin/php7.4 74
sudo update-alternatives --install /usr/bin/php php /usr/bin/php8.2 82

Bước 3: Chọn phiên bản muốn sử dụng

sudo update-alternatives --config php

Lệnh này sẽ hiển thị bảng chọn như sau:

There are 2 choices for the alternative php (providing /usr/bin/php).

  Selection    Path             Priority   Status
------------------------------------------------------------
* 0            /usr/bin/php8.2   82        auto mode
  1            /usr/bin/php7.4   74        manual mode
  2            /usr/bin/php8.2   82        manual mode

Press <enter> to keep the current choice[*], or type selection number:

Nhập số của phiên bản mong muốn để chuyển đổi.

Bước 4: Kiểm tra lại phiên bản

php -v

Chuyển đổi phiên bản PHP trên Apache

Nếu dùng Apache, bạn có thể chuyển đổi mô-đun theo phiên bản để chọn phiên bản PHP mong muốn.

1. Kiểm tra các mô-đun PHP có sẵn

ls /etc/apache2/mods-available | grep php

2. Vô hiệu hóa mô-đun hiện tại

sudo a2dismod php7.4

3. Kích hoạt mô-đun phiên bản mới

sudo a2enmod php8.2

4. Khởi động lại Apache để áp dụng

sudo systemctl restart apache2

Sau thao tác này, không chỉ CLI mà cả Apache cũng sẽ chạy phiên bản PHP đã chọn.

7. Cấu hình tích hợp với Apache/Nginx

PHP không chỉ chạy độc lập mà còn cần tích hợp với web server để phát triển ứng dụng web hoàn chỉnh. Trên Ubuntu, hai web server phổ biến nhất là ApacheNginx. Dưới đây là cách cấu hình tích hợp cho cả hai.

Cấu hình tích hợp với Apache (mod_php)

Trên Apache, chỉ cần cài mô-đun mod_php là có thể xử lý trực tiếp file PHP. Cách này phù hợp khi cần chạy WordPress hoặc CMS khác ngay lập tức.

Bước 1: Cài Apache và mod_php

sudo apt install -y apache2 libapache2-mod-php

Cài gói libapache2-mod-php để Apache xử lý file PHP.

Bước 2: Khởi động lại Apache

sudo systemctl restart apache2

Bước 3: Tạo file test PHP và kiểm tra bằng trình duyệt

<?php
phpinfo();
?>

Truy cập ví dụ:

http://localhost/test.php

Cấu hình tích hợp với Nginx (PHP-FPM)

Nginx nhẹ và nhanh nhưng không xử lý PHP trực tiếp, cần kết hợp với PHP-FPM (FastCGI Process Manager).

Bước 1: Cài đặt Nginx và PHP-FPM

sudo apt install -y nginx php-fpm

Bước 2: Chỉnh sửa file cấu hình Nginx

Chỉnh sửa /etc/nginx/sites-available/default:

sudo nano /etc/nginx/sites-available/default

Thêm hoặc chỉnh lại block như sau:

location ~ .php$ {
    include snippets/fastcgi-php.conf;
    fastcgi_pass unix:/run/php/php8.2-fpm.sock;
}

Bước 3: Khởi động lại Nginx

sudo systemctl restart nginx

Bước 4: Tạo file test PHP để kiểm tra

Tạo /var/www/html/test.php rồi truy cập qua trình duyệt để xác nhận hiển thị thông tin PHP.

Lưu ý: Cấu hình tường lửa (nếu cần)

Nếu bạn sử dụng UFW (Uncomplicated Firewall), cho phép truy cập web server bằng lệnh sau:

sudo ufw allow 'Apache Full'
# Hoặc
sudo ufw allow 'Nginx Full'

Apache mạnh về tính tiện lợi, Nginx mạnh về hiệu suất. Chọn cấu hình phù hợp mục đích và tích hợp PHP cho đúng.

8. Xử lý sự cố

Khi cài đặt PHP trên Ubuntu và tích hợp với web server, có thể phát sinh lỗi do cấu hình sai hoặc sự khác biệt môi trường. Phần này tổng hợp các lỗi thường gặp, nguyên nhân và cách khắc phục.

PHP không hoạt động đúng (trình duyệt hiển thị mã nguồn)

Nguyên nhân

Lỗi này xảy ra khi Apache hoặc Nginx không xử lý file PHP mà trả về dưới dạng văn bản, thường do chưa bật module PHP hoặc cấu hình FastCGI chưa đúng.

Cách khắc phục

  • Với Apache:
    Kiểm tra đã cài và kích hoạt libapache2-mod-php, sau đó khởi động lại Apache.
  sudo apt install libapache2-mod-php
  sudo systemctl restart apache2
  • Với Nginx:
    Kiểm tra php-fpm đã cài và fastcgi_pass trỏ đúng socket hoặc port trong cấu hình.
  sudo systemctl restart php8.2-fpm
  sudo systemctl restart nginx

Một số chức năng PHP không hoạt động (hàm bị undefined)

Nguyên nhân

Có thể do chưa cài đặt hoặc chưa kích hoạt mô-đun PHP cần thiết.

Cách khắc phục

  • Cài đặt mô-đun cần thiết (vd: mbstring, xml, curl).
  sudo apt install php-mbstring php-xml php-curl
  • Sau khi kích hoạt mô-đun, khởi động lại web server.
  sudo systemctl restart apache2  # hoặc nginx
  • Kiểm tra danh sách mô-đun đã kích hoạt:
  php -m

Không hiển thị lỗi PHP trên màn hình

Nguyên nhân

Mặc định, thông báo lỗi PHP bị tắt để tăng bảo mật.

Cách khắc phục

Chỉnh file php.ini để bật hiển thị lỗi.

sudo nano /etc/php/8.2/apache2/php.ini

Tìm và chỉnh như sau:

display_errors = On
error_reporting = E_ALL

Sau đó khởi động lại web server.

sudo systemctl restart apache2

Cách kiểm tra log lỗi

Với Apache:

/var/log/apache2/error.log

Với Nginx:

/var/log/nginx/error.log

Log PHP-FPM (khi dùng với Nginx):

/var/log/php8.2-fpm.log

Kiểm tra các log này để xác định nguyên nhân lỗi.

sudo tail -f /var/log/apache2/error.log

Khi gặp lỗi, hãy bình tĩnh kiểm tra log, xem lại cấu hình và khởi động lại server.

9. Tổng kết

Bài viết này đã hướng dẫn chi tiết từ cơ bản đến nâng cao về cách cài đặt PHP trên Ubuntu. Sau đây là các điểm cần ghi nhớ và các bước tiếp theo nên học.

Tóm tắt ý chính

  • Kiểm tra và chuẩn bị phiên bản Ubuntu
    Đảm bảo xác định đúng phiên bản OS và cập nhật hệ thống trước khi cài PHP.
  • Hai phương pháp cài PHP
    Cài nhanh từ kho mặc định hoặc dùng PPA để chọn phiên bản linh hoạt.
  • Kiểm tra hoạt động sau cài đặt
    Dùng php -v hoặc phpinfo() để xác minh PHP đã hoạt động.
  • Cài thêm mô-đun để mở rộng chức năng
    Cài các mô-đun như php-mbstring, php-mysql… tùy nhu cầu sử dụng.
  • Hỗ trợ chuyển đổi nhiều phiên bản PHP
    Dùng update-alternatives hoặc chuyển đổi mô-đun trên Apache để chọn phiên bản phù hợp.
  • Cấu hình tích hợp với Apache/Nginx
    Chọn cấu hình đúng với web server để đảm bảo PHP hoạt động ổn định.
  • Xử lý lỗi bằng cách kiểm tra log
    Khi gặp lỗi, hãy xem log để xác định nguyên nhân và khắc phục.

Các bước nên học tiếp theo

Sau khi đã cài đặt thành công PHP trên Ubuntu, bạn có thể nâng cao kỹ năng bằng cách học các nội dung sau:

  • Cài đặt MySQL (MariaDB) và kết nối cơ sở dữ liệu
  • Cài đặt và xây dựng WordPress
  • Cài đặt framework PHP như Laravel
  • Cấu hình HTTPS (SSL với Let’s Encrypt)
  • Quản lý tự động khởi động lại với systemd

Kết hợp những kỹ năng này sẽ giúp bạn phát triển web và ứng dụng mạnh mẽ hơn.

Ubuntu và PHP là nền tảng mã nguồn mở mạnh mẽ và linh hoạt. Hãy tận dụng bài viết này để thực hành và nâng cao kỹ năng của bạn!

10. Câu hỏi thường gặp (FAQ)

Tổng hợp các câu hỏi thường gặp và từ khóa được tìm kiếm nhiều nhất khi cài đặt PHP trên Ubuntu. Giải thích ngắn gọn, dễ hiểu, hữu ích cho cả người mới.

Q1. Làm thế nào để cài đặt PHP mới nhất trên Ubuntu?

A1.
Kho mặc định của Ubuntu không phải lúc nào cũng có phiên bản PHP mới nhất.
Nếu muốn dùng bản mới hơn, hãy thêm PPA ondrej/php và chỉ định phiên bản khi cài đặt.

sudo add-apt-repository ppa:ondrej/php
sudo apt update
sudo apt install php8.2

Q2. Cách chuyển đổi phiên bản PHP trên CLI?

A2.
Nếu đã cài nhiều phiên bản, dùng update-alternatives để chuyển đổi.

sudo update-alternatives --config php

Chọn số tương ứng với phiên bản muốn dùng.

Q3. Apache không chạy PHP mà chỉ hiển thị mã nguồn?

A3.
Đây là do Apache chưa xử lý file PHP. Hãy kiểm tra đã cài và kích hoạt libapache2-mod-php chưa rồi khởi động lại Apache.

sudo apt install libapache2-mod-php
sudo systemctl restart apache2

Q4. File cấu hình PHP (php.ini) nằm ở đâu?

A4.
Vị trí khác nhau giữa CLI và web server:

  • Với Apache: /etc/php/8.2/apache2/php.ini
  • Với CLI: /etc/php/8.2/cli/php.ini

Tùy vào phiên bản mà “8.2” sẽ thay đổi.

Q5. Làm sao để kích hoạt mô-đun PHP?

A5.
Sau khi cài mô-đun, hãy kích hoạt bằng lệnh phpenmod:

sudo phpenmod mbstring
sudo systemctl restart apache2

Đừng quên khởi động lại web server sau khi kích hoạt.

Q6. PHP không chạy trên Nginx, cần chú ý gì?

A6.
Nginx cần sử dụng php-fpm để xử lý PHP. Hãy kiểm tra cấu hình fastcgi_pass đã đúng.

location ~ .php$ {
    include snippets/fastcgi-php.conf;
    fastcgi_pass unix:/run/php/php8.2-fpm.sock;
}

Thay đổi phần .sock cho phù hợp với phiên bản bạn dùng.

Q7. Không hiển thị lỗi PHP trên trình duyệt?

A7.
Có thể do cấu hình display_errors = Off trong php.ini. Để hiển thị lỗi khi phát triển, chỉnh như sau:

display_errors = On
error_reporting = E_ALL

Sau đó khởi động lại web server.

Trên đây là những câu hỏi và cách khắc phục phổ biến nhất khi sử dụng PHP trên Ubuntu. Nắm được các kiến thức này sẽ giúp bạn chủ động xử lý khi gặp sự cố.

侍エンジニア塾