JABZ7SHOP : Web Selling Things With Cheap Price : https://jabz7shop.blogspot.com/ : Go To My Shop Online Now
Bài đăng

Cách cấu hình thay đổi Web Root trong máy chủ Web Apache trên Ubuntu 20.04

7 min read

 

Giới thiệu

Trên Ubuntu, máy chủ web Apache phục vụ các tài liệu được lưu trữ mặc định trong thư mục var / www / html. Thư mục này được gọi là thư mục gốc (DocumentRoot) của tài liệu. Khi quản trị viên hoặc người dùng đưa ra yêu cầu đối với máy chủ, máy chủ sẽ phản hồi với các tệp thích hợp từ tài liệu gốc này. Thư mục này thường nằm trên hệ thống tệp gốc cùng với phần còn lại của hệ điều hành. Tuy nhiên, đôi khi, sẽ thật hữu ích nếu bạn di chuyển tài gốc liệu sang một vị trí khác, chẳng hạn như hệ thống tệp được gắn kết một cách riêng biệt. Ví dụ: nếu bạn phân phối nhiều trang web từ cùng một phiên bản Apache, việc đặt các tài liệu liệu của mỗi trang web trên khối lượng riêng của nó cho phép bạn mở rộng quy mô để đáp ứng nhu cầu của một trang web hoặc khách hàng cụ thể. Trong hướng dẫn này, bạn sẽ di chuyển gốc tài liệu Apache từ vị trí mặc định của nó là var / www / html sang một vị trí mới.

Điều kiện

  • Máy chủ Ubuntu 20.04 và người dùng không phải root có đặc quyền sudo.
  • Cài đặt sẵn Apache trên máy chủ của bạn.
  • SSL được định cấu hình cho tên miền của bạn.
  • Một vị trí mới cho tài liệu gốc của bạn. Trong bài hướng dẫn này, / mnt / volume_nyc3_01 được sử dụng làm thư mục cho vị trí mới này. Mặc dù các hướng dẫn trong bài này sử dụng ví dụ về thiết bị lưu trữ khối được gắn kết, bạn có thể sử dụng bất kỳ vị trí thư mục nào trên hệ thống của mình làm nơi lưu trữ thư mục gốc mới để phục vụ nội dung web của bạn.

Vị trí lưu trữ tài liệu gốc mới của bạn có thể được định cấu hình dựa trên nhu cầu của bạn. Nếu bạn đang di chuyển thư mục gốc của mình sang một thiết bị lưu trữ khác, bạn sẽ muốn chọn một vị trí bên dưới điểm gắn kết của thiết bị.

Bước 1: Sao chép tệp sang một vị trí mới

Nếu bạn đã làm theo các hướng dẫn tiên quyết, bạn sẽ tạo được một tài liệu gốc mới tại / var / www / your_domain. Bạn cũng có thể có một thư mục gốc bổ sung tại VirtualHost tương ứng. Điều quan trọng là phải thiết lập vị trí của thư mục gốc hiện tại của bạn trước khi bạn sao chép các tệp có liên quan sang vị trí mới của chúng.

Tìm kiếm vị trí thư mục gốc của bạn bằng cách sử dụng lệnh grep để tìm kiếm trong thư mục / etc / apache2 / sites-enable. Điều này giới hạn sự tập trung vào các trang đang hoạt động. -R đảm bảo rằng grep sẽ in cả DocumentRoot và tên tệp đầy đủ trong đầu ra:

  1. grep -R "DocumentRoot" /etc/apache2/sites-enabled

Kết quả sau cho biết vị trí của DocumentRoot hiện tại của bạn:

Output
/etc/apache2/sites-enabled/your_domain-le-ssl.conf: DocumentRoot /var/www/your_domain /etc/apache2/sites-enabled/your_domain.conf: DocumentRoot /var/www/your_domain

Nếu bạn đã thiết lập sẵn, kết quả của bạn có thể khác với những gì được hiển thị ở đây. Trong cả hai trường hợp, bạn có thể sử dụng đầu ra từ grep để đảm bảo rằng bạn đang di chuyển các tệp mong muốn và cập nhật các tệp cấu hình thích hợp. Bây giờ bạn đã xác nhận vị trí của gốc tài liệu của mình, hãy sao chép các tệp vào vị trí mới của chúng bằng rsync:

Chú ý: Khi sử dụng lệnh rsync, hãy lưu ý 2 điều sau:

  • Lưu ý rằng  một dấu gạch chéo sau your_domain. Nếu bạn không bao gồm dấu gạch chéo ở đây, bạn đang sao chép thư mục này sang thư mục gốc tài liệu mới dưới dạng thư mục con. Ví dụ: thư mục gốc mới của bạn sẽ có cấu trúc sau: / var / www / mnt / volume_nyc3_01 / your_domain. Điều này sẽ gây ra sự cố khi cố gắng cung cấp tệp index.html của bạn từ gốc tài liệu mới của bạn.
  • Thứ hai, không có dấu gạch chéo trên thư mục gốc của tài liệu mới / mnt / volume_nyc3_01.
  1. sudo rsync -av /var/www/your_domain/ /mnt/volume_nyc3_01

-a bảo toàn quyền và các thuộc tính thư mục khác, trong khi -v cung cấp đầu ra dài dòng để bạn có thể theo dõi tiến trình đồng bộ hóa. Đầu ra của bạn nên bao gồm những điều sau:

Output
sending incremental file list ./ index.html sent 265 bytes received 38 bytes 606.00 bytes/sec total size is 134 speedup is 0.44

Với các tệp của bạn tại chỗ, bạn có thể chuyển sang sửa đổi cấu hình Apache của mình để phản ánh những thay đổi này.

Bước 2: Cập nhật tệp cấu hình

Sau khi định vị và sao chép tệp vào thư mục gốc mới, bạn có thể định cấu hình tệp máy chủ ảo để trỏ đến vị trí mới này. Bắt đầu bằng cách mở /etc/apache2/sites-enabled/your_domain.conf bằng trình soạn thảo ưa thích của bạn. Ví dụ này sử dụng nano:

  1. sudo nano /etc/apache2/sites-enabled/your_domain.conf

Tìm dòng bắt đầu bằng DocumentRootvà thay thế bằng vị trí mới. Trong ví dụ này, vị trí mới là / mnt / volume_nyc3_01:

/etc/apache2/sites-enabled/your_domain.conf
<VirtualHost *:80>
    ServerAdmin sammy@your_domain
    ServerName your_domain
    ServerAlias www.your_domain
    DocumentRoot /mnt/volume_nyc3_01
    ErrorLog ${APACHE_LOG_DIR}/error.log
    CustomLog ${APACHE_LOG_DIR}/access.log combined
RewriteEngine on
RewriteCond %{SERVER_NAME} =www.your_domain [OR]
RewriteCond %{SERVER_NAME} =your_domain
RewriteRule ^ https://%{SERVER_NAME}%{REQUEST_URI} [END,NE,R=permanent]
</VirtualHost>

Sau chỉ thị <VirtualHost> này, hãy thêm các dòng được đánh dấu này để đảm bảo rằng máy chủ sẽ tuân theo các liên kết tượng trưng trong thư mục:

/etc/apache2/sites-enabled/your_domain.conf
. . .
</VirtualHost>

<Directory /mnt/volume_nyc3_01>
    Options FollowSymLinks
    AllowOverride None
    Require all granted
</Directory>

Nhìn chung, /etc/apache2/sites-enabled/your_domain.conffile của bạn phải bao gồm tất cả các dòng sau dành riêng cho vị trí DocumentRoot mới:

/etc/apache2/sites-enabled/your_domain.conf
<VirtualHost *:80>
    ServerAdmin sammy@your_domain
    ServerName your_domain
    ServerAlias www.your_domain
    DocumentRoot /mnt/volume_nyc3_01
    ErrorLog ${APACHE_LOG_DIR}/error.log
    CustomLog ${APACHE_LOG_DIR}/access.log combined
RewriteEngine on
RewriteCond %{SERVER_NAME} =www.your_domain [OR]
RewriteCond %{SERVER_NAME} =your_domain
RewriteRule ^ https://%{SERVER_NAME}%{REQUEST_URI} [END,NE,R=permanent]
</VirtualHost>

<Directory /mnt/volume_nyc3_01>
    Options FollowSymLinks
    AllowOverride None
    Require all granted
</Directory>

Lưu và thoát khỏi trình chỉnh sửa của bạn. Bạn có thể thoát ra khỏi nano bằng cách nhấn CTRL + X, sau đó nhấn Y, rồi ENTER. Sau khi thực hiện những thay đổi này, bạn có thể chuyển sự chú ý của mình sang cấu hình SSL. Mở tệp /etc/apache2/sites-enabled/your_domain-le-ssl.conf:

sudo nano /etc/apache2/sites-enabled/<mark>your_domain</mark>-le-ssl.conf

Lưu và đóng tệp này. Bây giờ bạn đã thực hiện các thay đổi cấu hình cần thiết để phản ánh vị trí mới thư mục gốc của bạn.

Bước 3: Khởi động lại Apache

Sau khi thực hiện xong các thay đổi, bạn có thể khởi động lại Apache và kiểm tra kết quả. Trước tiên, hãy đảm bảo rằng cú pháp của các cấu hình mới của bạn là đúng với configtest:

  1. sudo apachectl configtest

Nếu cú pháp của bạn đúng, đầu ra của bạn sẽ hiển thị như sau:

Output
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 Syntax OK

Lưu ý: Nếu bạn muốn loại bỏ dòng trên cùng trong đầu ra này, hãy thêm lệnh ServerName vào tệp cấu hình Apache chung của bạn tại /etc/apache2/apache2.confServerName có thể là miền hoặc địa chỉ IP của máy chủ của bạn. Mở tệp bằng trình chỉnh sửa của bạn:

  1. sudo nano /etc/apache2/apache2.conf

Đặt lệnh ServerName ở cuối tệp cấu hình với your_domain hoặc địa chỉ IP máy chủ của bạn:

/etc/apache2/apache2.conf
# This is the main Apache server configuration file.  It contains the
# configuration directives that give the server its instructions.
# See http://httpd.apache.org/docs/2.4/ for detailed information about
# the directives and /usr/share/doc/apache2/README.Debian about Debian specific
# hints.
...

ServerName your_domain

Lưu và thoát khỏi trình chỉnh sửa của bạn.

Tuy nhiên, đây chỉ là một thông báo và không ảnh hưởng đến chức năng của trang web của bạn. Miễn là đầu ra chứa Syntax OK, bạn đã sẵn sàng để tiếp tục.

Sử dụng lệnh sau để khởi động lại Apache:

  1. sudo systemctl reload apache2

Khi máy chủ đã khởi động lại, hãy truy cập các trang web bị ảnh hưởng của bạn để đảm bảo rằng chúng đang hoạt động như mong đợi. Khi bạn cảm thấy thoải mái vì mọi thứ đều theo thứ tự, đừng quên xóa các bản sao gốc của dữ liệu:

  1. sudo rm -Rf /var/www/your_domain

Bây giờ bạn đã chuyển thành công thư mục gốc Apache của mình sang một vị trí mới.

Kết luận

Trong hướng dẫn này, bạn đã học cách thay đổi thư mục gốc (document root) Apache sang một vị trí mới. Điều này có thể giúp bạn quản trị máy chủ web cơ bản như lưu trữ hiệu quả nhiều trang web trên một máy chủ duy nhất. Nó cũng cho phép bạn tận dụng các thiết bị lưu trữ thay thế như lưu trữ khối mạng, điều này có thể hữu ích trong việc mở rộng quy mô một trang web khi nhu cầu của nó thay đổi.

00:00 / 00:00

Bạn có thể thích những bài đăng này

Đăng nhận xét