Cấu hình Apache/Nginx cho PHP

Tạo bởi Hoàng Vũ, chỉnh sửa cuối lúc 28 tháng 2, 2025

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.
Website Logo

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.

Bình luận

Website Logo

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

Chúng Tôi Trên

Bạn đang muốn học về lập trình website?

Bạn cần nâng cao kiến thức chuyên nghiệp hơn để nâng cao cơ hội nghề nghiệp? Liên hệ