Thứ sáu, 26/05/2017 | 00:00 GMT+7

Cách cài đặt web server Apache trên Ubuntu 16.04

Server Apache HTTP 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 các module có thể tải động, hỗ trợ phương tiện truyền thông mạnh mẽ và tích hợp rộng rãi với các phần mềm phổ biến khác.

Trong hướng dẫn này, ta sẽ thảo luận cách cài đặt web server Apache trên server Ubuntu 16.04 của bạn.

Yêu cầu

Trước khi bắt đầu hướng dẫn này, bạn nên có một regular user , không phải root có quyền sudo cấu hình trên server của bạn. Ngoài ra, bạn cần phải cấu hình firewall cơ bản để chặn các cổng không cần thiết. Bạn có thể tìm hiểu cách cấu hình account regular user và cài đặt firewall cho server của bạn theo hướng dẫn cài đặt server ban đầu của ta cho Ubuntu 16.04 .

Khi bạn có account , hãy đăng nhập với quyền user không phải root của bạn để bắt đầu.

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

Apache có sẵn trong repository mặc định của Ubuntu, vì vậy ta sẽ cài đặt nó bằng các công cụ quản lý gói thông thường.

Ta sẽ bắt đầu bằng cách cập nhật index gói local để cập nhật thay đổi mới nhất . Sau đó, ta có thể cài đặt gói apache2 :

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

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

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

Trước khi có thể kiểm tra Apache, ta cần sửa đổi firewall của bạn để cho phép bên ngoài truy cập vào các cổng web mặc định. Giả sử rằng bạn đã làm theo các hướng dẫn trong yêu cầu , bạn nên cấu hình firewall UFW để 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 số cấu hình ứng dụng. Ta có thể sử dụng các cấu hình này để đơn giản hóa quá trình bật hoặc tắt quyền truy cập vào Apache thông qua firewall của ta .

Ta có thể liệt kê các cấu hình ứng dụng ufw bằng lệnh :

  • sudo ufw app list

Bạn sẽ nhận được một danh sách các profile ứng dụng:

Output
Available applications: Apache Apache Full Apache Secure OpenSSH

Như bạn thấy , có ba cấu hình có sẵn cho Apache:

  • Apache : Cấu hình này chỉ mở cổng 80 ( truy cập web bình thường, không được mã hóa)
  • Apache Full : Cấu hình này mở cả cổng 80 ( truy cập web bình thường, không được mã hóa) và cổng 443 ( truy cập được mã hóa TLS / SSL)
  • Apache Secure : Cấu hình này chỉ mở cổng 443 ( truy cập được mã hóa TLS / SSL)

Vì mục đích của ta , ta sẽ cho phép lưu lượng truy cập đến cho profile Apache Full bằng lệnh :

  • sudo ufw allow 'Apache Full'

Bạn có thể kiểm tra thay đổi bằng lệnh :

  • sudo ufw status

Bạn sẽ thấy truy cập HTTP được phép trong kết quả được hiển thị:

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

Như bạn thấy , cấu hình đã được kích hoạt để cho phép truy cập vào web server .

Bước 3: Kiểm tra Server Web của bạn

Khi kết thúc quá trình cài đặt, Ubuntu 16.04 khởi động Apache. Web server đã được cài đặt và đang chạy.

Ta có thể kiểm tra bằng systemd init đảm bảo dịch vụ đang chạy bằng 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ư bạn thấy ở trên, dịch vụ có vẻ chạy thành công . Tuy nhiên, cách tốt nhất để kiểm tra là thực sự truy cập một trang từ Apache.

Bạn có thể truy cập trang đích Apache mặc định để xác nhận phần mềm đang chạy bình thường. Bạn có thể truy cập thông tin này thông qua domain hoặc địa chỉ IP của server .

Nếu bạn đang sử dụng DigitalOcean và chưa cài đặt domain cho server của bạn , bạn có thể làm theo hướng dẫn của ta về cách cài đặt domain với DigitalOcean để cài đặt .

Nếu bạn không muốn cài đặt domain cho server của bạn , bạn có thể sử dụng địa chỉ IP công cộng của server . Nếu bạn không biết địa chỉ IP của server của bạn , bạn có thể tìm bằng một số cách nhau từ dòng lệnh.

Hãy thử nhập vào dấu nhắc lệnh của server của bạn:

  • hostname -I

Bạn sẽ nhận lại một vài địa chỉ được phân tách bằng dấu cách. Bạn có thể thử từng cái trong trình duyệt web của bạn để xem chúng có hoạt động không.

Một giải pháp thay thế là nhập cái này, cái này sẽ cung cấp cho bạn địa chỉ IP công cộng của bạn khi được nhìn thấy từ một vị trí khác trên internet:

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

Khi bạn có địa chỉ IP hoặc domain của server , hãy nhập domain hoặc địa chỉ đó vào thanh địa chỉ của trình duyệt:

http://server_domain_or_IP 

Bạn sẽ thấy trang web Ubuntu 16.04 Apache mặc định, trông giống như sau:

Trang mặc định của Apache

Trang này chỉ được đưa vào để hiển thị rằng Apache đang hoạt động chính xác. Nó cũng bao gồm một số thông tin cơ bản về các file Apache quan trọng và vị trí folder .

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

Đến đây bạn đã cài đặt và chạy web server của bạn , ta có thể xem qua một số lệnh quản lý cơ bản.

Để dừng web server của bạn, có thể chạy lệnh:

  • sudo systemctl stop apache2

Để khởi động web server khi nó bị dừng, hãy nhập:

  • sudo systemctl start apache2

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

  • sudo systemctl restart apache2

Nếu bạn chỉ đơn giản là thực hiện thay đổi cấu hình, Apache có thể reload mà không làm mất kết nối . Để làm điều này, bạn có thể sử dụng lệnh sau:

  • sudo systemctl reload apache2

Theo mặc định, Apache được cấu hình để khởi động tự động khi server khởi động. Nếu bạn không muốn vậy , bạn có thể tắt hành vi này bằng lệnh :

  • sudo systemctl disable apache2

Để bật lại dịch vụ khởi động khi server khởi động , có thể chạy lệnh:

  • sudo systemctl enable apache2

Apache bây giờ sẽ tự động khởi động khi server khởi động lại.

Bước 5: Làm quen với các file và folder Apache quan trọng

Đến đây bạn đã biết cách tự quản lý dịch vụ, bạn nên dành vài phút để tự làm quen với một số folder và file quan trọng.

Nội dung

  • /var/www/html : Nội dung web thực tế, theo mặc định chỉ bao gồm trang Apache mặc định mà bạn đã xem trước đó, được cung cấp từ folder /var/www/html . Điều này có thể được thay đổi bằng cách thay đổi các file cấu hình Apache.

Cấu hình server

  • /etc/apache2 : Thư mục cấu hình Apache. Tất cả các file cấu hình Apache đều nằm ở đây.
  • /etc/apache2/apache2.conf : Tệp cấu hình Apache chính. Điều này có thể được sửa đổi để thay đổi cấu hình chung của Apache. Tệp này chịu trách nhiệm tải nhiều file khác trong folder cấu hình.
  • /etc/apache2/ports.conf : Tệp này chỉ định các cổng mà Apache sẽ lắng nghe. Theo mặc định, Apache lắng nghe trên cổng 80 và cũng lắng nghe trên cổng 443 khi một module cung cấp khả năng SSL được bật.
  • /etc/apache2/sites-available/ : Thư mục chứa “ Server ảo” trên mỗi trang web. Apache sẽ không sử dụng các file cấu hình được tìm thấy trong folder này trừ khi chúng được liên kết với folder sites-enabled (xem bên dưới). Thông thường, tất cả cấu hình khối server được thực hiện trong folder này, và sau đó được kích hoạt bằng cách liên kết đến folder khác bằng lệnh a2ensite .
  • /etc/apache2/sites-enabled/ : Thư mục lưu trữ “Virtual Hosts” cho mỗi trang web. Thông thường, chúng được tạo bằng cách liên kết đến các file cấu hình được tìm thấy trong folder sites-available của sites-available với a2ensite . Apache đọc các file cấu hình và liên kết được tìm thấy trong folder này khi nó khởi động hoặc reload để biên dịch một cấu hình hoàn chỉnh.
  • /etc/apache2/conf-available/ , /etc/apache2/conf-enabled/ : Những folder có mối quan hệ tương tự như các sites-availablesites-enabled folder , nhưng được sử dụng để đoạn cấu hình được lưu trữ mà không làm thuộc trong một Server ảo. Các file trong folder conf-available thể được bật bằng lệnh a2enconf và vô hiệu hóa bằng lệnh a2disconf .
  • /etc/apache2/mods-available/ , /etc/apache2/mods-enabled/ : Các folder này chứa các module có sẵn và được kích hoạt tương ứng. Các file có .load chứa các phân đoạn để tải các module cụ thể, trong khi các file kết thúc bằng .conf chứa cấu hình cho các module đó. Các module có thể được bật và tắt bằng cách sử dụng lệnh a2enmoda2dismod .

Nhật ký server

  • /var/log/apache2/access.log : Theo mặc định, mọi yêu cầu đến web server của bạn đều được ghi lại trong file log này trừ khi Apache được cấu hình để làm theo cách khác.
  • /var/log/apache2/error.log : Theo mặc định, tất cả các lỗi được ghi lại trong file này. Chỉ thị LogLevel trong cấu hình Apache chỉ định mức độ chi tiết mà các bản ghi lỗi sẽ chứa.

Kết luận

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

Tìm hiểu cách sử dụng Server ảo Apache tại đây . Nếu bạn muốn xây dựng một ứng dụng hoàn chỉnh hơn, hãy xem bài viết này về cách cấu hình LAMP trên Ubuntu 16.04 .


Tags:

Các tin liên quan

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
Cách cung cấp các ứng dụng Django với Apache và mod_wsgi trên Debian 8
2016-12-19