Tại sao Fedora là lựa chọn đáng gờm cho PHP Developer?
Trong khi Ubuntu hay AlmaLinux thường được chọn cho Production nhờ tính ổn định LTS, Fedora lại là một “quái vật” khác cho những ai thích công nghệ mới. Điểm mạnh nhất của Fedora nằm ở kho ứng dụng (repository) luôn cập nhật rất nhanh. Thay vì phải cài thêm Repo bên thứ ba như Remi trên CentOS hay Ondrej trên Ubuntu, bạn có thể cài ngay PHP 8.3 chính chủ chỉ vài ngày sau khi bản stable ra mắt.
Sau 6 tháng vận hành thực tế, mình thấy sự kết hợp giữa PHP-FPM và OPcache trên Fedora cho tốc độ phản hồi rất ấn tượng. Tuy nhiên, rào cản lớn nhất chính là SELinux. Nếu cấu hình sai, bạn sẽ ăn lỗi 500 liên tục dù có chmod 777 cả thư mục. Bài viết này sẽ giúp bạn cài đặt chuẩn xác và xử lý triệt để các vấn đề bảo mật này.
Triển khai PHP 8.x và các Extension thiết yếu
Hãy bắt đầu bằng việc cập nhật hệ thống. Fedora sử dụng trình quản lý gói dnf với khả năng giải quyết phụ thuộc rất thông minh.
sudo dnf update -y
# Kiểm tra các phiên bản PHP khả dụng
sudo dnf module list php
Fedora thường mặc định sẵn bản PHP mới nhất. Để chạy tốt các framework hiện đại như Laravel hay Symfony, bạn cần bộ extension dưới đây:
sudo dnf install php-fpm php-cli php-opcache php-gd php-curl php-mysqlnd php-zip php-mbstring php-xml php-intl php-json -y
Cài xong, hãy kiểm tra lại bằng lệnh: php -v. Nếu thấy phiên bản 8.2 hoặc 8.3 hiện ra là bạn đã đi đúng hướng.
Cấu hình PHP-FPM qua Unix Socket để tăng tốc
PHP-FPM là trái tim xử lý script. File cấu hình chính nằm tại /etc/php-fpm.d/www.conf. Thay vì dùng cổng TCP (127.0.0.1:9000) chậm chạp, hãy chuyển sang Unix Socket. Cách này giúp giảm latency khoảng 10-15% do không phải thông qua stack mạng nội bộ.
Mở file cấu hình:
sudo nano /etc/php-fpm.d/www.conf
Điều chỉnh các tham số sau để tối ưu:
; Sử dụng socket để truyền tải dữ liệu nhanh hơn
listen = /run/php-fpm/www.sock
; Phân quyền cho socket (đổi thành nginx nếu bạn không dùng Apache)
listen.owner = nginx
listen.group = nginx
listen.mode = 0660
; Cấu hình cho server 2GB RAM
pm = dynamic
pm.max_children = 50
pm.start_servers = 5
pm.min_spare_servers = 5
pm.max_spare_servers = 35
Lưu ý: Fedora mặc định để user là apache. Nếu bạn dùng Nginx, hãy đảm bảo đổi cả user và group trong file này sang nginx để tránh lỗi Permission.
Kích hoạt OPcache: Đừng bỏ qua bước này
OPcache lưu bytecode vào RAM, giúp server không phải biên dịch lại code ở mỗi request. Với các ứng dụng lớn, OPcache có thể giúp tốc độ thực thi nhanh gấp 3 lần. Bạn hãy chỉnh sửa file /etc/php.d/10-opcache.ini:
opcache.enable=1
opcache.memory_consumption=128
opcache.interned_strings_buffer=8
; Tăng số lượng file nếu dự án có hàng nghìn class như Laravel
opcache.max_accelerated_files=10000
opcache.revalidate_freq=2
Cài đặt Composer toàn cục
Thay vì tải thủ công mỗi khi cần, hãy cài Composer trực tiếp vào hệ thống để gọi lệnh từ bất cứ đâu:
php -r "copy('https://getcomposer.org/installer', 'composer-setup.php');"
sudo php composer-setup.php --install-dir=/usr/local/bin --filename=composer
php -r "unlink('composer-setup.php');"
Làm chủ SELinux thay vì tắt bỏ
SELinux trên Fedora thường ở chế độ Enforcing. Đây là lớp bảo mật cực mạnh nhưng cũng là nỗi ác mộng nếu bạn chưa quen. Thay vì tắt nó đi (rất kém an toàn), hãy dùng 3 lệnh “thần thánh” sau:
1. Gán nhãn cho mã nguồn
Gán context để hệ thống hiểu đây là nội dung web hợp lệ:
sudo semanage fcontext -a -t httpd_sys_content_t "/var/www/my-app(/.*)?"
sudo restorecon -Rv /var/www/my-app
2. Mở quyền ghi cho thư mục Storage/Cache
Nếu ứng dụng cần ghi log hoặc upload ảnh, bạn phải cấp quyền riêng:
sudo semanage fcontext -a -t httpd_sys_rw_content_t "/var/www/my-app/storage(/.*)?"
sudo restorecon -Rv /var/www/my-app/storage
3. Cho phép PHP kết nối ra ngoài
Mặc định SELinux chặn PHP gọi API bên ngoài hoặc gửi Mail. Hãy bật nó lên:
sudo setsebool -P httpd_can_network_connect 1
Khởi động và Kiểm tra
Kích hoạt service để PHP-FPM tự chạy mỗi khi khởi động lại server:
sudo systemctl enable --now php-fpm
Để kiểm tra OPcache, bạn tạo file /var/www/html/info.php với nội dung <?php phpinfo(); ?>. Khi truy cập qua trình duyệt, hãy tìm mục Zend OPcache. Nếu trạng thái là Up and running, hệ thống của bạn đã sẵn sàng phục vụ hàng ngàn request mỗi giây.
Sau nửa năm trải nghiệm, mình khẳng định Fedora là môi trường tuyệt vời để triển khai PHP. Tốc độ cập nhật nhanh giúp bạn tận dụng ngay các tính năng như Readonly Properties hay Enums mà không cần chờ đợi các bản LTS cũ kỹ.

