Hướng dẫn cấu hình server Apache trên VPS Ubuntu từ A-Z

Hướng dẫn cấu hình Apache trên VPS Ubuntu để chạy website PHP/Laravel: cài đặt Apache, PHP, Virtual Host, SSL Let’s Encrypt và các bước bảo mật cần thiết.

Hướng dẫn cấu hình server Apache trên VPS Ubuntu từ A-Z

Apache trên VPS là gì?

Apache là một trong những web server phổ biến nhất hiện nay, thường được sử dụng để chạy website PHP, WordPress và Laravel trên VPS. Cấu hình đúng Apache giúp website phản hồi ổn định, hỗ trợ tên miền riêng, kết nối HTTPS và dễ dàng quản trị về sau.

Bài viết này hướng dẫn cấu hình Apache trên VPS Ubuntu 22.04 hoặc 24.04. Bạn cần có quyền đăng nhập SSH và tài khoản có quyền sudo. Hãy thay các giá trị trong dấu <...> bằng thông tin thực tế trước khi chạy lệnh.

1. Cập nhật VPS trước khi cài đặt

Đăng nhập VPS qua SSH rồi cập nhật danh sách package:

sudo apt update && sudo apt upgrade -y

Việc cập nhật hệ thống giúp giảm lỗi do package cũ và bổ sung các bản vá bảo mật cần thiết.

Hướng dẫn cài đặt Laravel 10 trên VPS Ubuntu từ A-Z

Lỗi thường gặp trong lập trình Website PHP Framework Laravel

Hướng dẫn cài đặt server Linux, Nginx, MySQL, PHP trên Ubuntu

Review Hosting Hawkhost: giảm giá siêu khủng có đi cùng chất lượng?

2. Cài đặt Apache trên Ubuntu

Cài Apache bằng lệnh:

sudo apt install -y apache2

Khởi động Apache cùng hệ thống và kiểm tra trạng thái dịch vụ:

sudo systemctl enable --now apache2
sudo systemctl status apache2

Nếu trạng thái hiển thị active (running), Apache đã hoạt động. Bạn có thể mở địa chỉ IP VPS trên trình duyệt để kiểm tra trang mặc định của Apache.

3. Mở cổng HTTP và HTTPS trên firewall

Nếu đang sử dụng UFW, hãy cho phép các kết nối web:

sudo ufw allow OpenSSH
sudo ufw allow 'Apache Full'
sudo ufw enable
sudo ufw status

Chỉ nên mở những port thực sự cần thiết. Thông thường, website cần port 22 cho SSH, port 80 cho HTTP và port 443 cho HTTPS.

4. Cài PHP và các extension cần thiết

Với website PHP hoặc Laravel, bạn cần cài PHP cùng các extension phù hợp:

sudo apt install -y php php-cli libapache2-mod-php php-mysql php-xml php-mbstring php-curl php-zip php-bcmath php-gd php-intl unzip git curl

Kiểm tra phiên bản PHP:

php -v

Apache thường tự động nhận module PHP sau khi cài đặt. Nếu cần khởi động lại Apache, hãy chạy:

sudo systemctl restart apache2

5. Tạo thư mục website và thiết lập quyền

Ví dụ website sử dụng tên miền :

sudo mkdir -p /var/www//public_html
sudo chown -R $USER:$USER /var/www//public_html
sudo chmod -R 755 /var/www/

Không nên cấp quyền 777 cho toàn bộ website. Với ứng dụng Laravel, cần đảm bảo Apache có quyền ghi vào các thư mục runtime như storage và bootstrap/cache.

6. Cấu hình Virtual Host cho Apache

Tạo file Virtual Host:

sudo nano /etc/apache2/sites-available/.conf

Thêm cấu hình sau:


ServerName
ServerAlias www.
DocumentRoot /var/www//public_html

/public_html>
AllowOverride All
Require all granted


ErrorLog /var/log/apache2/-error.log
CustomLog /var/log/apache2/-access.log combined

Với Laravel, DocumentRoot nên trỏ vào thư mục public của dự án, chẳng hạn /var/www//public. Điều này giúp bảo vệ các file nội bộ như .env.

7. Kích hoạt Virtual Host và module rewrite

Bật site mới và module rewrite:

sudo a2ensite .conf
sudo a2enmod rewrite
sudo apache2ctl configtest
sudo systemctl reload apache2

Nếu nhận được thông báo Syntax OK, cấu hình Apache hợp lệ. Tiếp theo, hãy trỏ bản ghi DNS A của tên miền về địa chỉ IP VPS rồi truy cập domain để kiểm tra.

8. Cài SSL miễn phí cho Apache

HTTPS giúp mã hóa dữ liệu và tăng độ tin cậy của website. Cài Certbot cùng plugin Apache:

sudo apt install -y certbot python3-certbot-apache

Cấp chứng chỉ cho domain:

sudo certbot --apache -d  -d www.

Làm theo hướng dẫn trên màn hình và chọn chuyển hướng HTTP sang HTTPS nếu website đã sẵn sàng. Kiểm tra cơ chế gia hạn tự động:

sudo certbot renew --dry-run

9. Kiểm tra log và xử lý lỗi Apache

Khi website không hoạt động, hãy kiểm tra cấu hình:

sudo apache2ctl configtest
sudo systemctl status apache2

Xem log lỗi theo thời gian thực:

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

Một số lỗi thường gặp gồm sai đường dẫn DocumentRoot, chưa bật module rewrite, quyền thư mục không phù hợp hoặc DNS chưa trỏ đúng IP VPS. Với Laravel, cũng nên kiểm tra log trong thư mục storage/logs.

10. Lưu ý bảo mật khi vận hành Apache trên VPS

  • Không đăng nhập và chạy ứng dụng bằng tài khoản root.
  • Sử dụng SSH key và hạn chế đăng nhập SSH bằng mật khẩu.
  • Không công khai file .env hoặc thư mục mã nguồn.
  • Chỉ mở các port cần thiết trên firewall.
  • Cập nhật Ubuntu, Apache, PHP và thư viện thường xuyên.
  • Thiết lập backup định kỳ cho mã nguồn và database.
  • Theo dõi access log và error log để phát hiện truy cập bất thường.

Câu hỏi thường gặp

Apache và Nginx nên chọn web server nào?

Apache dễ làm quen và hỗ trợ tốt nhiều hệ thống PHP. Nginx thường phù hợp khi cần tối ưu hiệu suất và xử lý nhiều kết nối đồng thời. Lựa chọn phụ thuộc vào ứng dụng và kinh nghiệm quản trị của bạn.

Vì sao website bị lỗi 403 Forbidden?

Nguyên nhân thường là quyền thư mục, thiếu quyền truy cập trong Virtual Host hoặc cấu hình Directory chưa có Require all granted.

Vì sao thay đổi file Apache nhưng website chưa cập nhật?

Hãy kiểm tra cú pháp bằng apache2ctl configtest, sau đó reload Apache bằng systemctl reload apache2. Nếu vẫn lỗi, kiểm tra log Apache.

Kết luận

Cấu hình Apache trên VPS Ubuntu không quá phức tạp nếu thực hiện đúng trình tự: cài Apache, mở firewall, cài PHP, tạo Virtual Host, bật rewrite, cài SSL và kiểm tra log. Sau khi website hoạt động, hãy duy trì cập nhật và backup định kỳ để server an toàn, ổn định hơn.

Từ khoá: huong dan cau hinh server apache tren vps ubuntu tu a-z, cấu hình server Apache, cài Apache trên VPS, Apache Ubuntu, Virtual Host, SSL Apache, VPS Laravel

How To 60s

How To 60s

How To 60s - Tổng hợp Giáo án và đề thi THCS chương trình mới KNTT, CTST. Thủ thuật excel, word, powerpoint, windows. Mẹo vặt máy tính giúp công việc đơn giản hơn. Chia sẻ những kinh nghiệm, thủ thuật hay trong công việc và cuộc sống hàng ngày