Thứ ba, 12/12/2017 | 00:00 GMT+7

Kiến thức cơ bản về Apache: Khắc phục sự cố cài đặt và cấu hình

Web server Apache là một web server open-souce phổ biến vì tính linh hoạt, mạnh mẽ và hỗ trợ rộng rãi. Trong hướng dẫn này, ta sẽ xem xét một số quy trình phổ biến để quản lý server Apache, bao gồm dừng, khởi động và bật dịch vụ, làm việc với các file và folder server ảo cũng như định vị các file và folder quan trọng trên server của bạn.

Hướng dẫn này dành cho user làm việc với Apache trên Ubuntu. User làm việc trên CentOS và các bản phân phối dựa trên RHEL khác có thể xem phần một trong hướng dẫn này để biết thông tin về cách cài đặt Apache trên CentOS.

Cách sử dụng Hướng dẫn này:

  • Mỗi phần được dùng độc lập với những phần khác, vì vậy hãy bỏ qua các phần có liên quan đến nhu cầu của bạn.
  • Mỗi lệnh là độc lập, cho phép bạn thay thế các giá trị của riêng mình cho các giá trị có màu đỏ.
  • Mỗi phần có các tài nguyên được liên kết, mà bạn có thể tham khảo để biết thêm thông tin về các chủ đề được đề cập.

Cài đặt Dịch vụ Apache

Để cài đặt dịch vụ Apache, hãy cập nhật index gói của bạn, sau đó cài đặt:

  • sudo apt-get update
  • sudo apt-get install apache2

Để biết thêm chi tiết về quá trình cài đặt, hãy làm theo hướng dẫn của ta về Cách cài đặt Server Web Apache trên Ubuntu 16.04 .

Bật và tắt đơn vị Apache

Dịch vụ Apache của ta được cấu hình để bắt đầu tự động khi khởi động. Tuy nhiên, nếu ta muốn sửa đổi hành vi này, ta có thể nhập như sau:

  • sudo systemctl disable apache2.service

Để cho phép Apache khởi động lại khi khởi động:

  • sudo systemctl enable apache2.service

Dừng, Bắt đầu và Reload Apache

Để dừng server Apache, hãy nhập lệnh sau:

  • sudo systemctl stop apache2

Để khởi động server Apache, hãy nhập:

  • sudo systemctl start apache2

Để dừng dịch vụ và bắt đầu lại, hãy nhập:

  • sudo systemctl restart apache2

Nếu bạn đang thực hiện thay đổi cấu hình, bạn có thể reload Apache mà không làm mất kết nối . Nhập lệnh sau:

  • sudo systemctl reload apache2

Để tìm hiểu thêm về systemd init và lệnh systemctl , hãy xem phần giới thiệu này về những điều cần thiết trong systemd .

Kiểm tra trạng thái server

Để kiểm tra trạng thái của server Apache của bạn, hãy nhập:

  • sudo systemctl status apache2

Đầu ra từ lệnh này sẽ cho bạn biết Apache có đang chạy hay không và sẽ hiển thị cho bạn vài dòng cuối cùng trong file log .

Tạo folder root tài liệu cho trang web tĩnh

Khi sử dụng Apache để xây dựng trang web, các nhà phát triển thường sử dụng virtual hosts đơn vị bao gồm các trang web hoặc domain riêng lẻ. Quá trình này bao gồm việc tạo một folder cho document root , folder cấp cao nhất Apache kiểm tra khi cung cấp nội dung.

Tạo folder :

  • sudo mkdir -p /var/www/example.com/public_html

Chỉ định quyền sở hữu folder cho user không phải root của bạn:

  • sudo chown -R $USER:$USER /var/www/example.com/public_html

Cho phép truy cập đọc vào folder web chung:

  • sudo find /var/www -type d -exec chmod 775 {} \;

Để biết thêm về các quyền, hãy xem phần giới thiệu của ta về các quyền của Linux . Lưu ý các quyền của bạn có thể thay đổi theo nhu cầu và trường hợp sử dụng của bạn.

Tạo folder root tài liệu cho module xử lý động

Nếu bạn đang làm việc với một module xử lý động như PHP, bạn sẽ tạo folder root tài liệu của bạn như sau:

  • sudo mkdir -p /var/www/example.com/public_html

Chỉ định quyền sở hữu folder cho user không phải root của bạn và quyền sở hữu group cho group www-data :

  • sudo chown -R sammy:www-data /var/www/example.com/public_html

Sửa đổi cài đặt cấu hình

Khi làm việc với server ảo, cần phải sửa đổi cài đặt cấu hình để phản ánh thông tin cụ thể của domain , để Apache có thể phản hồi chính xác các yêu cầu domain .

Mở file cấu hình server ảo của bạn:

  • sudo nano /etc/apache2/sites-available/example.com.conf

Sửa đổi những điều sau:

ServerAdmin admin@example.com ServerName example.com ServerAlias www.example.com DocumentRoot /var/www/example.com/public_html 

Với các sửa đổi, file sẽ trông như thế này (miễn là nó chưa được sửa đổi trước đó):

/etc/apache2/sites-available/example.com.conf
<VirtualHost *:80>         ServerAdmin admin@example.com         ServerName example.com         ServerAlias www.example.com         DocumentRoot /var/www/example.com/public_html         ErrorLog ${APACHE_LOG_DIR}/error.log         CustomLog ${APACHE_LOG_DIR}/access.log combined </VirtualHost> 

Khi khắc phục sự cố, hãy nhớ kiểm tra kỹ file này và các lệnh của nó.

Để biết thêm chi tiết về cách làm việc với server ảo, hãy xem cuộc thảo luận của ta về cách làm việc với server ảo Apache trên Ubuntu 16.04 .

Bật và tắt file cấu hình

Tệp server ảo

Để bật file cấu hình server ảo:

  • sudo a2ensite example.com.conf

Để tắt file cấu hình (trong ví dụ cụ thể này, file cấu hình server ảo mặc định của Apache):

  • sudo a2dissite 000-default.conf

Mô-đun

Để bật các module có trong /etc/apache2/mods-available , hãy sử dụng lệnh sau:

  • sudo a2enmod example_mod

Để tắt một module cụ thể:

  • sudo a2dismod example_mod

Tệp cấu hình

Để bật các file cấu hình trong /etc/apache2/conf-available các file không được liên kết với server ảo — hãy nhập:

  • sudo a2enconf example-conf

Để tắt file cấu hình:

  • sudo a2disconf example-conf

Kiểm tra cấu hình

Bất kỳ lúc nào bạn thực hiện thay đổi đối với file cấu hình trong Apache, hãy đảm bảo chạy lệnh sau để kiểm tra lỗi cú pháp:

  • sudo apache2ctl configtest

Tệp và folder quan trọng

Khi bạn tiếp tục làm việc với Apache, bạn sẽ gặp phải các folder và file sau:

Nội dung

  • /var/www/html : Thư mục này chứa nội dung web của trang web và là folder root mặc định của nó. Bạn có thể sửa đổi cài đặt cấu hình mặc định của Apache để trỏ đến các folder khác trong var/www .

Cấu hình server

  • /etc/apache2 : Thư mục cấu hình trong Apache, nơi lưu trữ tất cả các file cấu hình của nó.

  • /etc/apache2/apache2.conf : Tệp cấu hình chính của Apache, nơi lưu trữ các cài đặt cấu hình chung của nó. Các file khác trong folder cấu hình được tải từ file này. Nó cũng lưu trữ các chỉ thị FollowSymLinks , điều khiển việc bật và tắt cấu hình.

  • /etc/apache2/sites-available/ : Thư mục này chứa các file cấu hình server ảo, được kích hoạt thông qua các liên kết đến folder sites-enabled . Việc sửa đổi file khối server xảy ra trong folder này và được kích hoạt thông qua lệnh a2ensite .

  • /etc/apache2/sites-enabled/ : Các file cấu hình server ảo đã kích hoạt được lưu trữ tại đây. Khi Apache khởi động hoặc reload , nó sẽ đọc các file cấu hình và liên kết trong folder này vì nó tuân theo cấu hình đầy đủ.

  • /etc/apache2/conf-available/etc/apache2/conf-enabled : Trong mối quan hệ tương tự như sites-availablesites-enabled , các folder này chứa các phân đoạn cấu hình không được đính kèm với các file cấu hình server ảo.

  • /etc/apache2/mods-available/etc/apache2/mods-enabled : Chứa các module có sẵn và được bật, các folder này có hai thành phần: file kết thúc bằng .load , chứa các phân đoạn tải các module cụ thể và file kết thúc bằng .conf , lưu trữ cấu hình của các module này.

Nhật ký server

  • /var/log/apache2/access.log : Tệp này chứa mọi yêu cầu đến web server trừ khi cài đặt cấu hình của Apache đã được sửa đổi.

  • /var/log/apache2/error.log : Tệp này có lỗi. Để sửa đổi số lượng chi tiết trong log lỗi, hãy sửa đổi chỉ thị LogLevel trong /etc/apache2/apache2.conf .

Một cách khác để truy cập thông tin về đơn vị Apache là thông qua thành phần journald , thành phần này thu thập thông tin log từ các ứng dụng và kernel . Để xem các mục nhập cho đơn vị Apache, hãy nhập:

  • sudo journalctl -u apache2

Kết luận

Trong hướng dẫn này, ta đã đề cập đến một số quy trình phổ biến để quản lý server Apache, bao gồm dừng, khởi động và bật dịch vụ, làm việc với các file và folder server ảo cũng như định vị các file và folder quan trọng trên server của bạn. Để tìm hiểu thêm về cách làm việc với Apache, hãy xem các tài nguyên sau:


Tags:

Các tin liên quan

Cách cài đặt web server Apache trên Ubuntu 16.04
2017-05-26
Cách thiết lập server ảo Apache trên Debian 8
2017-02-06
Cách sử dụng Apache làm reverse-proxy với mod_proxy trên CentOS 7
2017-02-02
Cách sử dụng Apache làm Reverse Proxy với mod_proxy trên Ubuntu 16.04
2017-02-01
Cách sử dụng Apache làm reverse-proxy với mod_proxy trên Debian 8
2017-02-01
Cách viết lại URL bằng mod_rewrite cho Apache trên Debian 8
2017-01-27
Cách viết lại URL bằng mod_rewrite cho Apache trên Ubuntu 16.04
2017-01-25
Cách mã hóa kết nối Tomcat 8 với Apache hoặc Nginx trên CentOS 7
2017-01-24
Cách tạo chứng chỉ SSL trên Apache cho CentOS 7
2017-01-04
Cách bảo mật Apache bằng Let's Encrypt trên Debian 8
2016-12-20