Cấu hình Apache/Nginx cho PHP
Trong bài học này, chúng ta sẽ tìm hiểu cách cấu hình Apache và Nginx để chạy ứng dụng PHP hiệu quả. Chúng ta sẽ học cách thiết lập Virtual Host trong Apache, cài đặt và tối ưu PHP trên Nginx, và xử lý các lỗi phổ biến khi triển khai PHP trên hai web server này.

1. Cấu hình Apache/Nginx
1.1 Cấu hình Virtual Host trong Apache
Bước 1: Tạo file Virtual Host
Mở terminal và tạo file cấu hình mới:
sudo nano /etc/apache2/sites-available/mywebsite.conf
Thêm các dòng sau vào file:
<VirtualHost *:80>
ServerAdmin admin@mywebsite.com
DocumentRoot /var/www/html/mywebsite
ServerName mywebsite.com
<Directory /var/www/html/mywebsite>
AllowOverride All
Require all granted
</Directory>
ErrorLog ${APACHE_LOG_DIR}/error.log
CustomLog ${APACHE_LOG_DIR}/access.log combined
</VirtualHost>
Bước 2: Kích hoạt Virtual Host
sudo a2ensite mywebsite.conf
sudo systemctl restart apache2
Bước 3: Cấu hình mod_rewrite
sudo a2enmod rewrite
sudo systemctl restart apache2
1.2 Cài đặt và tối ưu PHP trên Nginx
Bước 1: Cài đặt Nginx và PHP-FPM
sudo apt update
sudo apt install nginx php-fpm
Bước 2: Cấu hình Nginx
Tạo file cấu hình mới:
sudo nano /etc/nginx/sites-available/mywebsite
Thêm các dòng sau:
server {
listen 80;
server_name mywebsite.com;
root /var/www/html/mywebsite;
index index.php index.html;
location / {
try_files $uri $uri/ =404;
}
location ~ \.php$ {
include snippets/fastcgi-php.conf;
fastcgi_pass unix:/run/php/php7.4-fpm.sock;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
include fastcgi_params;
}
}
Bước 3: Kích hoạt Virtual Host và khởi động lại Nginx
sudo ln -s /etc/nginx/sites-available/mywebsite /etc/nginx/sites-enabled/
sudo systemctl restart nginx
Bước 4: Kiểm tra PHP trên Nginx
Tạo file /var/www/html/mywebsite/info.php
:
<?php
phpinfo();
?>
Mở trình duyệt và truy cập http://mywebsite.com/info.php
để kiểm tra.
1.3 Xử lý lỗi phổ biến khi triển khai PHP với Apache/Nginx
1. Lỗi 403 Forbidden trên Apache
- Nguyân nhân: Quyền truy cập thư mục không đúng.
- Giải pháp:
sudo chown -R www-data:www-data /var/www/html/mywebsite
sudo chmod -R 755 /var/www/html/mywebsite
2. Lỗi 502 Bad Gateway trên Nginx
- Nguyân nhân: PHP-FPM chưa chạy hoặc sai socket.
- Giải pháp:
sudo systemctl restart php7.4-fpm
sudo systemctl restart nginx
3. Lỗi 404 Not Found khi truy cập file PHP
- Nguyên nhân: Cấu hình
try_files
trong Nginx chưa chính xác. - Giải pháp: Đảm bảo cấu hình đúng:
location / {
try_files $uri $uri/ /index.php?$query_string;
}
2. Kết luận
- Cách cấu hình Virtual Host trong Apache.
- Cách cài đặt và tối ưu PHP trên Nginx.
- Cách xử lý các lỗi phổ biến khi triển khai PHP.

Với hơn 10 năm kinh nghiệm lập trình web và từng làm việc với nhiều framework, ngôn ngữ như PHP, JavaScript, React, jQuery, CSS, HTML, CakePHP, Laravel..., tôi hy vọng những kiến thức được chia sẻ tại đây sẽ hữu ích và thiết thực cho các bạn.
Xem thêm

Chào, tôi là Vũ. Đây là blog hướng dẫn lập trình của tôi.
Liên hệ công việc qua email dưới đây.
lhvuctu@gmail.com