Chỉ dành cho khách truy cập Blog của chúng tôi Nhận thêm 3 tháng miễn phí + GIẢM GIÁ 10% cho gói TriAnnual YSBLOG10
Nắm bắt cơ hội

Làm thế nào để thiết lập Apache Hướng dẫn từng bước cài đặt Linux Server vào năm 2026

Để thiết lập Apache trên máy chủ LinuxCài đặt gói apache2/httpd, kích hoạt và khởi động dịch vụ, cho phép các cổng 80/443 trong tường lửa, tạo Virtual Host cho tên miền của bạn, kiểm tra cấu hình xem có lỗi cú pháp không, và bật HTTPS với Let's Encrypt. Các bước có thể khác nhau tùy thuộc vào bản phân phối.

Trong hướng dẫn dành cho người mới bắt đầu này về cách thiết lập Apache Trên máy chủ Linux, bạn sẽ học được các bước chính xác để cài đặt, cấu hình, bảo mật và tối ưu hóa. Apache (httpd) trên các bản phân phối phổ biến như Ubuntu/Debian và CentOS/RHEL/AlmaLinux/Rocky Linux. Là một chuyên gia hosting giàu kinh nghiệm, tôi cũng sẽ chia sẻ những lời khuyên thực tế, các biện pháp tăng cường bảo mật và tối ưu hiệu năng để vận hành các trang web đạt chuẩn sản xuất.

Những thứ bạn cần (Điều kiện tiên quyết)

Trước khi bắt đầu, vui lòng xác nhận những điều sau:

  • Máy chủ Linux (VPS, đám mây hoặc máy chủ chuyên dụng) với bản phân phối dựa trên Ubuntu/Debian hoặc CentOS/RHEL.
  • Quyền truy cập root hoặc sudo
  • Tên miền đã đăng ký (không bắt buộc nhưng được khuyến nghị)
  • Cấp quyền truy cập tường lửa cho các cổng mở 80 (HTTP) và 443 (HTTPS)
  • Bưu kiện manager ready: apt cho Ubuntu/Debian, dnf/yum cho các hệ điều hành dựa trên RHEL.

Apache Trên Linux: Những khác biệt về tên gọi quan trọng

Trên khắp các phân phối, Apache Sử dụng các tên gói và dịch vụ khác nhau:

  • Ubuntu/Debian: gói apache2, Dịch vụ apache2, cấu hình trong /etc/apache2/
  • RHEL/CentOS/AlmaLinux/Rocky: gói httpd, Dịch vụ httpd, cấu hình trong /etc/httpd/

Hãy ghi nhớ những điều này mỗi khi bạn chạy lệnh hoặc chỉnh sửa tệp cấu hình.

Hướng dẫn từng bước: Cài đặt Apache

Ubuntu / Debian

sudo apt update
sudo apt install -y apache2
sudo systemctl enable --now apache2
sudo ufw allow "Apache Full"    # enables 80 and 443
sudo systemctl status apache2
curl -I http://<your_server_ip>

RHEL/CentOS/AlmaLinux/Rocky

sudo dnf install -y httpd
sudo systemctl enable --now httpd
sudo firewall-cmd --permanent --add-service=http
sudo firewall-cmd --permanent --add-service=https
sudo firewall-cmd --reload
sudo systemctl status httpd
curl -I http://<your_server_ip>

Nếu bạn đang sử dụng CentOS phiên bản cũ hơn với yum, thay thế dnf với yumTrên các thiết lập RHEL tối thiểu, hãy đảm bảo mạng của bạn và DNS Giải quyết vấn đề một cách chính xác trước khi tiếp tục.

Hãy biết chìa khóa của bạn Apache Tập tin và thư mục

  • Ubuntu / Debian: /etc/apache2/apache2.conf, /etc/apache2/ports.conf, /etc/apache2/sites-available/, /etc/apache2/sites-enabled/đăng nhập /var/log/apache2/
  • Dựa trên RHEL: /etc/httpd/conf/httpd.conf, /etc/httpd/conf.d/đăng nhập /var/log/httpd/

Dịch vụ management (có tác dụng với cả hai nhóm):

sudo systemctl status apache2|httpd
sudo systemctl reload apache2|httpd
sudo systemctl restart apache2|httpd

Tạo máy chủ ảo đầu tiên của bạn (Trang web)

1) Chuẩn bị thư mục gốc và quyền truy cập.

sudo mkdir -p /var/www/example.com/public_html
echo "<h1>Hello from Apache</h1>" | sudo tee /var/www/example.com/public_html/index.html

# Ownership differs by distro:
# Ubuntu/Debian user is "www-data", RHEL-based user is "apache"
# Ubuntu/Debian:
sudo chown -R www-data:www-data /var/www/example.com
# RHEL-based:
# sudo chown -R apache:apache /var/www/example.com

2) Thêm cấu hình Máy chủ ảo

Ubuntu/Debian (sites-available + a2ensite):

sudo nano /etc/apache2/sites-available/example.com.conf
<VirtualHost *:80>
  ServerName example.com
  ServerAlias www.example.com
  DocumentRoot /var/www/example.com/public_html

  <Directory /var/www/example.com/public_html>
    AllowOverride All
    Require all granted
    Options -Indexes
  </Directory>

  ErrorLog ${APACHE_LOG_DIR}/example_error.log
  CustomLog ${APACHE_LOG_DIR}/example_access.log combined
</VirtualHost>
sudo a2ensite example.com.conf
sudo a2enmod rewrite
sudo apache2ctl configtest
sudo systemctl reload apache2

RHEL/CentOS/AlmaLinux/Rocky (conf.d):

sudo nano /etc/httpd/conf.d/example.com.conf
<VirtualHost *:80>
  ServerName example.com
  ServerAlias www.example.com
  DocumentRoot /var/www/example.com/public_html

  <Directory /var/www/example.com/public_html>
    AllowOverride All
    Require all granted
    Options -Indexes
  </Directory>

  ErrorLog /var/log/httpd/example_error.log
  CustomLog /var/log/httpd/example_access.log combined
</VirtualHost>
sudo apachectl -t
sudo systemctl reload httpd

Nếu SELinux đang ở chế độ thực thi và thư mục gốc của tài liệu nằm ngoài các đường dẫn mặc định, hãy thiết lập ngữ cảnh phù hợp:

# RHEL-based SELinux example for a custom docroot:
sudo semanage fcontext -a -t httpd_sys_content_t "/var/www/example.com(/.*)?"
sudo restorecon -Rv /var/www/example.com

Kích hoạt HTTPS với Let's Encrypt (Miễn phí) SSL)

Ubuntu / Debian

sudo apt install -y certbot python3-certbot-apache
sudo certbot --apache -d example.com -d www.example.com
# Test auto-renewal
sudo certbot renew --dry-run

RHEL/CentOS/AlmaLinux/Rocky

# Enable EPEL if needed (RHEL/CentOS):
sudo dnf install -y epel-release
sudo dnf install -y certbot python3-certbot-apache
sudo certbot --apache -d example.com -d www.example.com
sudo certbot renew --dry-run

Certbot bổ sung SSL Công cụ này tạo máy chủ ảo, cài đặt chứng chỉ và cấu hình chuyển hướng HTTP sang HTTPS. Chứng chỉ sẽ tự động gia hạn thông qua bộ hẹn giờ của systemd.

Tăng cường bảo mật thiết yếu

Ẩn thông tin chi tiết máy chủ và tắt tính năng hiển thị danh sách.

# Ubuntu/Debian: edit /etc/apache2/conf-available/security.conf (or apache2.conf)
# RHEL-based: edit /etc/httpd/conf.d/security.conf (create if missing)

ServerTokens Prod
ServerSignature Off

# In each <Directory> or global:
Options -Indexes

Tường lửa, quyền hạn và SELinux

  • Chỉ giữ cho cổng 80/443 mở; chặn các cổng khác trừ khi cần thiết.
  • Sử dụng quyền hạn tối thiểu cho thư mục gốc của web. Tệp: 644, thư mục: 755.
  • Trên RHEL, đối với các kết nối đi ra (ví dụ: đến máy chủ ứng dụng), hãy cho phép: sudo setsebool -P httpd_can_network_connect 1.

Các mô-đun bảo mật và các thực tiễn tốt nhất về HTTPS

  • Hãy cân nhắc ModSecurity WAF: Ubuntu sudo apt install libapache2-mod-security2RHEL sudo dnf install mod_security.
  • Hãy sử dụng các thuật toán mã hóa TLS mạnh và bật HSTS khi bạn đã hoàn toàn chuyển sang HTTPS.
  • Cập nhật thường xuyên: sudo apt upgrade or sudo dnf upgrade.

Tối ưu hiệu năng cho lưu lượng truy cập thực tế

Chọn MPM phù hợp

Đối với hầu hết các trang web hiện đại, sự kiện MPM có khả năng mở rộng tốt hơn prefork. Nếu bạn chạy PHP, ghép nối sự kiện MPM với PHP-FPM (không phải mod_php).

# Ubuntu/Debian:
sudo a2dismod mpm_prefork
sudo a2enmod mpm_event proxy_fcgi setenvif
sudo a2enconf php*-fpm   # choose your installed PHP-FPM version
sudo systemctl reload apache2

# RHEL-based:
sudo dnf install -y php-fpm
sudo systemctl enable --now php-fpm
# Example (in your vhost) to pass PHP via FPM socket:
# <FilesMatch "\.php$">
#   SetHandler "proxy:unix:/run/php-fpm/www.sock|fcgi://localhost/"
# </FilesMatch>

Nén và lưu vào bộ nhớ đệm

# Enable modules (Ubuntu/Debian):
sudo a2enmod deflate headers expires brotli
sudo systemctl reload apache2

# Example rules (add inside vhost or a conf file):
AddOutputFilterByType DEFLATE text/html text/plain text/css application/javascript application/json
# If Brotli installed:
# AddOutputFilterByType BROTLI_COMPRESS text/html text/plain text/css application/javascript application/json

# Caching static assets:
ExpiresActive On
ExpiresByType image/webp "access plus 1 month"
ExpiresByType image/png "access plus 1 month"
ExpiresByType text/css "access plus 7 days"
ExpiresByType application/javascript "access plus 7 days"

Giới hạn kết nối và KeepAlive

Điều chỉnh cho bạn RAM/CPU. Là điểm khởi đầu cho VPS 2-4 GB:

# event MPM example (Ubuntu: /etc/apache2/mods-available/mpm_event.conf)
# RHEL: in /etc/httpd/conf.modules.d/ prefixed file or main httpd.conf
<IfModule mpm_event_module>
   StartServers             2
   MinSpareThreads         25
   MaxSpareThreads         75
   ThreadLimit             64
   ThreadsPerChild         25
   MaxRequestWorkers      150
   MaxConnectionsPerChild   0
</IfModule>

KeepAlive On
MaxKeepAliveRequests 100
KeepAliveTimeout 5

Đo lường bằng lưu lượng truy cập thực tế và điều chỉnh. Luôn tải lại trang sau khi thay đổi và theo dõi. sử dụng bộ nhớ để ngăn chặn việc hoán đổi.

Nhật ký, Giám sát và Bảo trì

  • Nhật ký truy cập: /var/log/apache2/access.log or /var/log/httpd/access_log
  • Nhật ký lỗi: /var/log/apache2/error.log or /var/log/httpd/error_log
  • Nhật ký dịch vụ: journalctl -u apache2 or journalctl -u httpd
  • Theo dõi nhật ký trực tiếp: sudo tail -f /var/log/apache2/error.log
  • Xoay vòng nhật ký: được xử lý bởi logrotate; kiểm tra cấu hình trong /etc/logrotate.d/

Để có được thông tin chi tiết về lưu lượng truy cập, các công cụ như GoAccess cung cấp báo cáo thời gian thực từ nhật ký truy cập mà không làm tăng thêm chi phí xử lý. Apache.

Khắc phục sự cố thường gặp

  • Cổng hiện đang được sử dụng: sudo ss -tulpn | grep :80 Tìm xung đột. Dừng dịch vụ khác hoặc thay đổi Apache'S Listen cổng vào ports.conf (Ubuntu) hoặc httpd.conf (BẠC).
  • Lỗi 403: Cấm truy cập: Kiểm tra quyền truy cập/quyền sở hữu tệp và Apache <Directory> các quy tắc. Trên SELinux, hãy đảm bảo ngữ cảnh chính xác và sử dụng restorecon.
  • Lỗi máy chủ nội bộ 500: Kiểm tra nhật ký lỗi để tìm cú pháp .htaccess hoặc PHP lỗi. Kiểm tra với apachectl -t.
  • Các thay đổi không được áp dụng: Sử dụng systemctl reload (một cách nhẹ nhàng) sau khi chỉnh sửa cấu hình; hãy xác minh với apachectl -t.
  • Trang web chậm: Bật tính năng nén, bộ nhớ đệm, chuyển sang MPM sự kiện và sử dụng... PHP-FPM. Phân tích hiệu năng ứng dụng và cơ sở dữ liệu, không chỉ... Apache.

Tùy chọn: Xây dựng một ngăn xếp LAMP hoàn chỉnh

Thêm PHP và cơ sở dữ liệu biến máy chủ của bạn thành một hệ thống LAMP cho WordPress và các ứng dụng động:

# Ubuntu/Debian:
sudo apt install -y php php-fpm php-mysql mariadb-server

# RHEL-based:
sudo dnf install -y php php-fpm php-mysqlnd mariadb-server
sudo systemctl enable --now mariadb

Thích hơn PHP-FPM với ApacheSử dụng MPM sự kiện của 's để có khả năng xử lý đồng thời tốt hơn so với mod_php.

Khi nào sử dụng YouStable cho Apache Lưu trữ web

Nếu bạn đang vận hành các khối lượng công việc sản xuất, một nền tảng đáng tin cậy là điều vô cùng quan trọng. YouStableMáy chủ ảo VPS và máy chủ chuyên dụng sử dụng ổ SSD của chúng tôi cung cấp hiệu suất I/O ổn định, khả năng chống tấn công DDoS, IPv6 hỗ trợ và Let's Encrypt miễn phí SSLCác kỹ sư của chúng tôi có thể làm cứng trước. Apache, cấu hình PHP- Sử dụng FPM và thiết lập sao lưu tự động để bạn tập trung vào trang web của mình, chứ không phải lo xử lý sự cố máy chủ.

Bằng cách làm theo các bước trên, giờ bạn đã biết cách thiết lập. Apache trên máy chủ Linux từ quá trình cài đặt đến... SSL, bảo mật và tinh chỉnh. Với nền tảng vững chắc và dịch vụ lưu trữ phù hợp, Apache có thể cung cấp năng lượng cho các trang web nhanh, an toàn và có khả năng mở rộng.

Câu hỏi thường gặp: Cách thiết lập Apache trên máy chủ Linux

Is Apache or Nginx Tốt hơn cho WordPress trên Linux?

Cả hai đều hoạt động tốt. Apache Cung cấp tính linh hoạt cho tệp .htaccess và hỗ trợ mô-đun chuyên sâu. Nginx Nó có khả năng xử lý xuất sắc các tài nguyên tĩnh và xử lý đồng thời nhiều tác vụ. Một mô hình sản xuất phổ biến là... Nginx như một máy chủ proxy ngược đặt phía trước Apache+PHP-FPM, hoặc Apache Chỉ sử dụng MPM sự kiện và bộ nhớ đệm. Hãy lựa chọn dựa trên nền tảng công nghệ và chuyên môn của nhóm bạn.

Làm cách nào để thay đổi ApacheCổng mặc định của 's là 80?

Ubuntu/Debian: chỉnh sửa /etc/apache2/ports.conf và VirtualHost cho phù hợp, ví dụ: Listen 8080<VirtualHost *:8080>. Dựa trên RHEL: cập nhật /etc/httpd/conf/httpd.conf và vhosts. Khởi động lại dịch vụ và mở cổng mới trong tường lửa của bạn.

Làm thế nào tôi có thể lưu trữ nhiều trang web trên một máy chủ duy nhất? Apache người phục vụ?

Sử dụng Virtual Hosts. Tạo các thư mục gốc và tệp vhost riêng biệt cho mỗi tên miền. Trên Ubuntu/Debian, đặt các tệp cấu hình vào thư mục sau: sites-available và kích hoạt bằng a2ensiteTrên các hệ thống dựa trên RHEL, hãy thêm một mục. .conf mỗi trang web /etc/httpd/conf.d/. Điểm DNS Bản ghi A/AAAA được gửi đến địa chỉ IP của máy chủ của bạn.

Làm thế nào để tự động gia hạn chứng chỉ Let's Encrypt trên...? Apache?

Certbot thiết lập bộ hẹn giờ systemd theo mặc định. Hãy xác minh bằng lệnh sau: systemctl list-timers | grep certbot và tiến hành diễn tập thử: sudo certbot renew --dry-runHãy đảm bảo tường lửa của bạn cho phép TCP 80/443 và tên miền của bạn trỏ đến máy chủ để HTTP-01/ALPN có thể xác thực.

Ở đâu Apache Các tệp cấu hình trên Linux?

Ubuntu/Debian lưu trữ các tệp cấu hình trong /etc/apache2/ (các trang web trong) sites-available/sites-enabled) với nhật ký trong /var/log/apache2/Sử dụng RHEL/CentOS/AlmaLinux/Rocky /etc/httpd/ (vhosts trong conf.d) với nhật ký trong /var/log/httpd/Các tệp chính là apache2.conf or httpd.conf.

Chia sẻ qua:

Prahlad Prajapati

Prahlad là chuyên gia về dịch vụ lưu trữ web và tăng trưởng website tự nhiên tập trung vào SEO đến từ Ấn Độ. Hoạt động trong lĩnh vực kỹ thuật số từ năm 2019, anh ấy giúp mọi người phát triển website của họ thông qua các chiến lược hiệu quả và bền vững. Đam mê học hỏi và thích nghi nhanh chóng, anh ấy tin rằng những chi tiết nhỏ tạo nên thành công lớn. Khám phá những hiểu biết của anh ấy về lưu trữ web và SEO để nâng cao sự hiện diện trực tuyến của bạn.

Bình luận

Chúng tôi sẽ không công khai email của bạn. Các ô đánh dấu * là bắt buộc *

Di chuyển về đầu trang