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
.envhoặ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