Cài đặt LAMP Stack trên Fedora Server: Apache, MariaDB và PHP 8.3

Fedora tutorial - IT technology blog
Fedora tutorial - IT technology blog

Tại sao nên chọn LAMP trên Fedora?

Sau 2 năm dùng Fedora làm môi trường dev chính, mình thực sự ấn tượng với tốc độ cập nhật package của nó. Khác với sự an toàn đến mức hơi “cũ kỹ” của CentOS hay RHEL, Fedora luôn ưu tiên những phiên bản mới nhất. Khi cài LAMP trên Fedora, bạn sẽ có ngay PHP 8.2 hoặc 8.3 từ kho lưu trữ chính thức. Bạn không cần phải loay hoay thêm các repo bên thứ ba như Remi nếu không thực sự cần thiết.

Với các bạn Junior, Fedora là một môi trường “thử lửa” cực tốt. Nó buộc chúng ta phải làm việc nghiêm túc với SELinuxfirewalld. Thay vì tắt chúng đi để tránh rắc rối, việc hiểu và cấu hình đúng sẽ giúp kỹ năng quản trị server của bạn lên một tầm cao mới.

Thành phần của LAMP Stack

Trước khi bắt tay vào gõ lệnh, hãy điểm qua 4 mảnh ghép chúng ta sẽ lắp ráp:

  • Linux: Hệ điều hành Fedora Server (mình đang dùng bản 39/40).
  • Apache (httpd): Web server quốc dân, cực kỳ mạnh mẽ và dễ tùy biến.
  • MariaDB: Bản fork mã nguồn mở của MySQL, hiệu suất cao và hoàn toàn miễn phí.
  • PHP 8: Ngôn ngữ xử lý backend, linh hồn của các CMS như WordPress hay Laravel.

Bước 1: Cài đặt Apache và mở cổng Firewall

Trên Fedora, Apache được gọi tên là httpd. Đầu tiên, hãy cập nhật hệ thống để đảm bảo mọi thứ đều mới nhất:

sudo dnf update -y
sudo dnf install httpd -y

Cài xong, bạn cần kích hoạt để Apache tự chạy mỗi khi khởi động server:

sudo systemctl enable --now httpd

Lúc này, nếu truy cập IP server, bạn sẽ thấy lỗi kết nối. Thực tế là firewalld đang chặn các cổng 80 (HTTP) và 443 (HTTPS). Hãy mở chúng ra bằng hai lệnh sau:

sudo firewall-cmd --permanent --add-service={http,https}
sudo firewall-cmd --reload

Bây giờ, hãy thử nhập IP server vào trình duyệt. Nếu trang chào mừng của Fedora hiện ra, bạn đã vượt qua chướng ngại vật đầu tiên.

Bước 2: Cài đặt MariaDB và siết chặt bảo mật

Về phần dữ liệu, MariaDB là lựa chọn thay thế hoàn hảo cho MySQL. Cài đặt rất đơn giản:

sudo dnf install mariadb-server -y
sudo systemctl enable --now mariadb

Mặc định, MariaDB chưa có mật khẩu root và còn khá nhiều kẽ hở. Bạn tuyệt đối không được bỏ qua bước chạy script bảo mật này:

sudo mysql_secure_installation

Hệ thống sẽ hỏi một vài câu xác nhận. Lời khuyên của mình là: Hãy chọn ‘Y’ (Yes) cho tất cả. Việc này sẽ giúp bạn đặt mật khẩu root, xóa user vô danh và chặn đăng nhập root từ xa.

Bước 3: Cài đặt PHP 8.x và các module bổ trợ

Fedora cung cấp PHP rất nhanh. Bạn nên cài PHP cùng các module phổ biến để xử lý ảnh và kết nối database mượt mà hơn:

sudo dnf install php php-common php-mysqlnd php-gd php-xml php-mbstring -y

Kiểm tra lại thành quả bằng lệnh:

php -v

Đừng quên khởi động lại Apache để nó “nhận diện” người bạn mới PHP:

sudo systemctl restart httpd

Bước 4: Cấu hình SELinux – Đừng tắt, hãy hiểu nó

Đây là phần mà nhiều người thường chọn cách setenforce 0 để trốn tránh. Đừng làm vậy! SELinux là lớp giáp cực mạnh bảo vệ server của bạn. Mặc định, nó sẽ ngăn Apache kết nối với database để phòng ngừa tấn công.

Để cho phép Apache “nói chuyện” với MariaDB, hãy chạy lệnh:

sudo setsebool -P httpd_can_network_connect_db on

Nếu bạn làm web có tính năng upload ảnh vào thư mục /var/www/html/uploads, hãy gán nhãn đúng cho nó:

sudo chcon -t httpd_sys_rw_content_t /var/www/html/uploads -R

Chỉ với 2 lệnh trên, bạn đã xử lý được 90% lỗi thường gặp với SELinux mà vẫn giữ được tính bảo mật cao.

Bước 5: Kiểm tra với file info.php

Để chắc chắn mọi thứ đã khớp nối, hãy tạo một file kiểm tra nhanh:

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

Truy cập http://dia-chi-ip/info.php. Nếu thấy bảng thông số PHP hiện ra, chúc mừng bạn đã cài đặt thành công!

Cảnh báo: Hãy xóa file này ngay sau khi xem xong bằng lệnh sudo rm /var/www/html/info.php. Bạn chắc chắn không muốn hacker biết quá rõ về cấu hình server của mình đâu.

Kết luận

Cài LAMP trên Fedora không khó, cái khó là kiểm soát được SELinux và Firewalld. Với bộ package luôn mới, Fedora là bàn đạp tuyệt vời để bạn trải nghiệm PHP 8.3 hay các công nghệ mới nhất. Nếu định chạy dự án thực tế, bước tiếp theo bạn nên tìm hiểu về Virtual Hosts và cài SSL với Let’s Encrypt để bảo vệ dữ liệu người dùng.

Share: