Cách cài đặt Apache Web Server trên Ubuntu 16.04

2 năm trước

Cách cài đặt Apache Web Server trên Ubuntu 16.04

Mở đầu.

Apache HTTP server là web server được sử dụng rộng rãi nhất trên thế giới. Nó cung cấp nhiều tính năng mạnh mẽ bao gồm dynamically loadable module, hỗ trợ phương tiện truyền thông và tương thích tốt với các phần mềm phổ biến khác.

Bài viết sẽ hướng dẫn cách để cài đặt một máy chủ web Apache trên server Ubuntu 16.04 của bạn.

 

Yêu cầu

Trước khi bạn bắt đầu hướng dẫn này, bạn nên có một non-root user, với quyền sudo trên server của bạn. Ngoài ra, bạn sẽ cần phải cấu hình tường lửa cơ bản để chặn những port không cần thiết. Bạn có thể tìm hiểu làm thế nào để cấu hình một tài khoản người dùng chuẩn và thiết lập tường lửa cho máy chủ của bạn bằng cách làm theo hướng dẫn thiết lập ban đầu máy chủ của ViCloud cho Ubuntu 16.04.

Khi tài khoản được tạo, login với tư cách một non-root user để bắt đầu.

 

Bước 1: Cài đặt Apache

Apache có sẵn trong kho phần mềm mặc định của Ubuntu, vì vậy ta sẽ cài đặt nó sử dụng công cụ quản lý gói thông thường.

Bắt đầu bằng cách cập nhật local package index để theo dõi những thay đổi mới nhất. Sau đó, cài đặt gói apache2:

 

sudo apt-get updatesudo apt-get install apache2

 

Sau khi xác nhận cài đặt, apt-get sẽ cài Apache và tất cả những gói phụ thuộc của nó.

 

Bước 2: Điều chỉnh Firewall

Trước khi có thể test Apache, cần phải sửa đổi firewall để cho phép truy cập bên ngoài đến các default web port. Khi follow theo các hướng dẫn trong phần Yêu cầu, bạn cần config UFW firewall  để hạn chế quyền truy cập vào server của bạn.

Trong khi cài đặt, Apache tự đăng ký với UFW để cung cấp một vài profile. Ta có thể sử dụng các profile này để đơn giản hóa quá trình cho phép hoặc vô hiệu hóa quyền truy cập vào Apache thông qua firewall.

Truy cập đến ufw application profiles bằng lệnh:

sudo ufw app list 

 

Danh sách các profile được hiển thị:

 
OutputAvailable applications:
Apache
Apache Full
Apache Secure
OpenSSH

Dễ thấy, có 3 profile sau:

  • Apache: Profile này chỉ mở cổng 80( cho những truy cập Web bình thường, không bị mã hóa)
  • Apache Full: Profile mở cả cổng 80 và cổng 443 (cho phép cả những truy cập bình thường lẫn những truy cập mã hóa TLS/SSL)
  • Apache Secure: Profile này chỉ mở cổng 443 ( chỉ cho phép những truy cập mã hóa TLS/SSL)

Tùy vào từng trường hơp để chọn profile thích hợp, ở bài viết này ta sẽ dùng profile Apache Full:

sudo ufw allow 'Apache Full' 

Kiểm tra sự thay đổi khi gõ lệnh:

sudo ufw status 

Bạn sẽ thấy HTTP traffic được hiển thị:

Status: active
To Action From
-- ------ ----
OpenSSH ALLOW Anywhere 
Apache Full ALLOW Anywhere 
OpenSSH (v6) ALLOW Anywhere (v6) 
Apache Full (v6) ALLOW Anywhere (v6)
 

Vậy là ta đã kích hoạt thành công profile để cho phép truy cập đến wev server.

 

Bước 3: Kiểm tra Web Server

Vào cuối của quá trình cài đặt, Ubuntu 16.04 khởi động Apache. Các web server hoạt động bình thường và đang chạy.

Kiểm tra với hệ khởi tạo systemd để đảm bảo dịch vụ đang hoạt động với lệnh:

sudo systemctl status apache2
Output● apache2.service - LSB: Apache2 web server
Loaded: loaded (/etc/init.d/apache2; bad; vendor preset: enabled)
Drop-In: /lib/systemd/system/apache2.service.d
└─apache2-systemd.conf
Active: active (running) since Fri 2017-05-19 18:30:10 UTC; 1h 5min ago
Docs: man:systemd-sysv-generator(8)
Process: 4336 ExecStop=/etc/init.d/apache2 stop (code=exited, status=0/SUCCESS)
Process: 4359 ExecStart=/etc/init.d/apache2 start (code=exited, status=0/SUCCESS)
Tasks: 55
Memory: 2.3M
CPU: 4.094s
CGroup: /system.slice/apache2.service
├─4374 /usr/sbin/apache2 -k start
├─4377 /usr/sbin/apache2 -k start
└─4378 /usr/sbin/apache2 -k start
May 19 18:30:09 ubuntu-512mb-nyc3-01 systemd[1]: Stopped LSB: Apache2 web server.
May 19 18:30:09 ubuntu-512mb-nyc3-01 systemd[1]: Starting LSB: Apache2 web server...
May 19 18:30:09 ubuntu-512mb-nyc3-01 apache2[4359]: * Starting Apache httpd web server apache2
May 19 18:30:09 ubuntu-512mb-nyc3-01 apache2[4359]: AH00558: apache2: Could not reliably determine the server's fully qualified domain name, using 127.0.1.1. Set the 'ServerName' directive globally to suppress this message
May 19 18:30:10 ubuntu-512mb-nyc3-01 apache2[4359]: *
May 19 18:30:10 ubuntu-512mb-nyc3-01 systemd[1]: Started LSB: Apache2 web server.

 

Như đã thấy ở trên, dịch vụ dường như đã khởi động thành công. Tuy nhiên, cách tốt nhất để kiểm tra là yêu cầu một trang từ Apache.

Nếu bạn đang sử dụng Cloud Server của ViCloud và không có một domain name được thiết lập server của bạn, bạn có thể làm theo hướng dẫn làm thế nào để thiết lập một tên miền với ViCloud để thiết lập nó trên diễn đàn.

Nếu bạn không muốn để thiết lập domain name cho server của bạn, bạn có thể sử dụng public IP address của server. Nếu bạn không biết địa chỉ IP của máy chủ của bạn, vài lệnh sau có thể giúp bạn.

Gõ lệnh sau trên Command Prompt của server:

hostname -I 

 

Bạn sẽ nhận lại một vài địa chỉ cách nhau bởi dấu cách. Bạn có thể thử chúng trong trình duyệt web 
xem địa chỉ nào hoạt động.

Cách khác là dùng lệnh này, nó sẽ cho bạn địa chỉ IP được thấy từ một nơi khác trên Internet

sudo apt-get install curl
curl -4 icanhazip.com 

 

Khi đã có địa chỉ IP, nhập nó vào ô địa chỉ trên web browser:

http://server_domain_or_IP

Bạn sẽ thấy trang mặc định của Ubuntu 16.04, gần giống với:

Apache default page

This page is simply included to show that Apache is working correctly. It also includes some basic information about important Apache files and directory locations.

 

Bước 4: Quản lí tiến trình trên Apache

Sau đây là một số lệnh dùng để quản lsi tiến trình trên Apache:

Dừng web server:

sudo systemctl stop apache2 

 

Tiếp tục tiến trình trên server khi đang dừng:

sudo systemctl start apache2 

 

Dừng xử lí và khởi động lại server:

sudo systemctl restart apache2 

 

Cập nhật nhứng thay đổi cấu hình mà không ảnh hưởng đén các tiến trình đang chạy:

sudo systemctl reload apache2 

 

Mặc đinh, Apache khởi động cùng với server. Nếu không muốn điều này xảy ra, dùng lệnh:

sudo systemctl disable apache2 

Để kích hoạt lại việc tự khởi động của Apache, dùng lệnh:

sudo systemctl enable apache2 
 

Bước 5: Làm quen với những file và thư mục quan trọng của Apache

Sau khi cơ bản nắm được những lệnh quản lí server của Apache, hãy đến với những phần khác của Apache:  File và thư mục quan trọng

Content

  • /var/www/html:  Những nội dung về web, mà mặc định chỉ chứa default page của Apache,được lưu bên ngoài /var/www/html . Thay đổi điều này bằng cách edit Apache configuration file.

Server Configuration

  • /etc/apache2: Đường dẫn chứa toàn bộ file cấu hình của Apache.
  • /etc/apache2/apache2.conf: File cấu hình chính của Apache. Edit file này sẽ ảnh hưởng đến cấu hình toàn cục của Apache. Nó có trách nhiệm load nhiều file cấu hình khác trong thư mục.
  • /etc/apache2/ports.conf: File này xác định cổng mà Apache sẽ "lắng nghe" đến. Theo mặc định, Apache lắng nghe cổng 80 và thêm cổng 443 khi một module cung cấp SSL được kích hoạt.
  • /etc/apache2/sites-available/: Thư mục nơi "Virtual Host" được lưu trữ. Apache sẽ không sử dụng các tập tin cấu hình được tìm thấy trong thư mục này, trừ khi chúng có liên kết đến thư mục sites-enabled (xem dưới đây). Thông thường, việc cấu hình server block được thực hiện trong thư mục này, và sau đó kích hoạt bằng cách liên kết với các thư mục khác với lệnh a2ensite.
  • /etc/apache2/sites-enabled/: Thư mục nơi per-site "Virtual Hosts" đã kích hoạt được lưu trữ. Thông thường, chúng được tạo bằng cách liên kết với các file cấu hình được tìm thấy trong thư mục sites-available với a2ensite. Apache đọc các tập tin cấu hình và liên kết tìm thấy trong thư mục này khi khởi động hoặc tải lại để compile một cấu hình hoàn chỉnh.
  • /etc/apache2/conf-available//etc/apache2/conf-enabled/: 2 thư mục này có cùng quan hệ như sites-available và sites-enabled , nhưng được dùng để lưu trữ phần cấu hình không thuộc về Virtual Host. File trong conf-available có thể được kích hoạt bằng lệnh a2enconf và đóng bằng lệnh a2disconf
  • /etc/apache2/mods-available//etc/apache2/mods-enabled/: Lần lượt chứa những module khả dụng và đã được kích hoạt. File có đuôi .load chứa những phần cấu hình để load một module cụ thể, trong khi những file đuôi .conf chứa những cấu hình cho chính module. Module có thể được kích hoạt hoặc tắt với lệnh a2enmod vàa2dismod .

Server Logs

  • /var/log/apache2/access.log: Mặc định, mọi yêu cầu đến web server của bạn được ghi lại trong file log này, trừ khi Apache được cấu hình để thực hiện nhiệm vụ khác.
  • /var/log/apache2/error.log: Lưu lại những lỗi xảy ra. LệnhLogLevel trong Apache configuration làm rõ số lượng chi tiết về lỗi được lưu trữ.
 

Tổng kết

Bây giờ bạn đã cài đặt web server của mình, bạn có nhiều lựa chọn cho các loại nội dung để phục vụ và các công nghệ mà bạn muốn sử dụng để tạo ra một trải nghiệm phong phú hơn.

Cảm ơn đã theo dõi bài viết tại cộng đồng IT ViCloud Community, vui lòng để lại comment bên dưới!