Apache là một web server được sử dụng rất phổ biến hiện nay trên hệ điều hành Ubuntu. Tuy nhiên, thay vì sử dụng thư mục gốc mặc định của Apache để lưu trữ, bạn có thể di chuyển document của trang web sang một vị trí khác để dễ dàng quản lý và mở rộng quy mô. Và hôm nay Vietnix sẽ hướng dẫn di chuyển Web Root Apache đến vị trí mới trên Ubuntu 20.04.
Giới thiệu về di chuyển Web Root Apache đến vị trí mới trên Ubuntu 20.04
Trên hệ điều hành Ubuntu, máy chủ web Apache sẽ cung cấp các document được lưu trữ trong thư mục var/www/html
theo mặc định. Thư mục này được gọi là document root. Khi quản trị viên hoặc người dùng gửi một request đến máy chủ, Apache sẽ phản hồi lại bằng các file thích hợp được lưu trong thư mục document root đó.
Thư mục này thường sẽ nằm trên hệ thống tập tin gốc cùng với phần còn lại của hệ điều hành. Nhưng đôi khi sẽ thuận tiên hơn nếu bạn có thể di chuyển tài liệu gốc này đến một vị trí khác, chẳng hạn như trong một hệ thống file riêng biệt khác.
Ví dụ: Nếu bạn cần phục vụ nhiều trang web từ cùng một Apache server, việc đặt document root của mỗi trang web trên chính ổ đĩa dành riêng cho web đó sẽ giúp quy mô của trang web được mở rộng hơn, dễ dàng đáp ứng các nhu cầu cần thiết hơn trong tương lai.
Sau đây, Vietnix sẽ hướng dẫn bạn cách di chuyển một document root của Apache từ vị trí mặc định là var/www/html
sang một vị trí mới.
Yêu cầu tiên quyết để thực hiện
Để thực hiện hướng dẫn, bạn sẽ cần:
- Máy chủ Ubuntu 20.04 đã thiết lập có một tài khoản người dùng non-root được cấp đặc quyền
sudo
. - Apache được cài đặt trên máy chủ Ubuntu.
- SSL được đã được cấu hình cho tên miền mà bạn đang sử dụng. Nếu website của bạn chưa có chứng chỉ SSL, bạn có thể liên hệ Vietnix để được tư vấn và đăng ký chứng chỉ SSL uy tín với chi phí phải chăng.
- Chuẩn bị một vị trí mới cho thư mục tài liệu gốc mà bạn sẽ sử dụng cho việc di chuyển. Mặc dù, trong hướng dẫn này, thư mục
/mnt/volume_nyc3_01
được sử dụng làm thư mục cho vị trí mới này. Nhưng 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ữ cho tài liệu gốc cho nội dung web của mình.
Lưu ý: Vị trí mới của document root có thể được cấu hình dựa trên nhu cầu sử dụng. Nếu bạn đang di chuyển document root của mình sang một thiết bị lưu trữ khác, bạn cần chọn một vị trí bên dưới điểm gắn kết của thiết bị (device’s mount point).
Các bước thực hiện
Bước 1: Sao chép các file sang vị trí mới
Khi đáp ứng được yêu cầu tiên quyết, bạn đã có một document root tại /var/www/your_domain
. Bạn cũng có thể có các document root bổ sung trong VirtualHost
tương ứng. Đồng thời, thiết lập vị trí của document root hiện tại của mình trước khi tiến hành copy các file có liên quan sang vị trí mới.
Bạn có thể tìm kiếm vị trí document root bằng cách sử dụng lệnh grep
để tìm kiếm trong thư mục /etc/apache2/sites-enabled
. Điều này giúp giới hạn sự tập trung tìm kiếm lại vào các trang web hiện đang hoạt động. Flag -R
đảm bảo rằng grep
sẽ in cả DocumentRoot
và tên file đầy đủ ở output:
grep -R "DocumentRoot" /etc/apache2/sites-enabled
Output sau đây sẽ cho biết vị trí của DocumentRoot
hiện tại trên máy 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
Kết quả hiển thị ở đây sẽ tùy vào thiết lập trước đó trên máy của bạn. Tuy nhiên, bạn có thể sử dụng output từ grep
để đảm bảo rằng bạn đang di chuyển các file mong muốn và cập nhật đúng các file cấu hình phù hợp tương ứng.
Như vậy, bạn đã xác nhận được vị trí của document root, tiếp theo hãy copy các file đó vào vị trí mới bằng lệnh rsync
:
Lưu ý: Khi sử dụng lệnh rsync
, bạn hãy lưu ý hai điều sau.
- Có một dấu gạch chéo sau
your_domain
. Nếu bạn không đặt dấu gạch chéo ở đây, thì bạn đang sao chép thư mục này sang thư mục gốc của tài liệu mới dưới dạng của một thư mục con. Ví dụ, document root 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 khiến việc cung cấp nội dung của fileindex.html
từ document root mới gặp sự cố. - Bạn không đặt dấu gạch chéo ở cuối thư mục gốc mới
/mnt/volume_nyc3_01
.
sudo rsync -av /var/www/your_domain/ /mnt/volume_nyc3_01
Flag -a
giúp duy trì quyền và thuộc tính của các thư mục khác, flag -v
cung cấp output chi tiết để bạn có thể thuận tiện theo dõi toàn bộ tiến trình đồng bộ hóa.
Output tương tự như 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
Đến đây các file đã được di chuyển qua thư mục mới. Tiếp theo, bạn điều chỉnh cấu hình của Apache để cập nhật những thay đổi này.
Để cài đặt và vận hành Apache ổn định, sử dụng VPS chất lượng cao là rất cần thiết. Vietnix hiện đang cung cấp nhiều gói dịch vụ VPS tốc độ cao, cấu hình linh hoạt, phù hợp với mọi nhu cầu và ngân sách của bạn như VPS Giá Rẻ, VPS Phổ Thông, VPS Cao Cấp, VPS NVMe. Bạn có thể dễ dàng nâng cấp hoặc điều chỉnh cấu hình theo sự phát triển của dự án riêng.
Với tốc độ truy cập cao, hiệu năng mạnh mẽ của VPS cùng đội ngũ hỗ trợ 24/7 giàu kinh nghiệm, Vietnix mang đến cho bạn một môi trường VPS ổn định và tin cậy để triển khai ứng dụng và website của bạn. Liên hệ ngay để được tư vấn chi tiết hơn.
Bước 2: Cập nhật các file cấu hình
Mở /etc/apache2/sites-enabled/your_domain.conf
bằng trình chỉnh sửa. Ở ví dụ này sử dụng nano
:
sudo nano /etc/apache2/sites-enabled/your_domain.conf
Tìm dòng bắt đầu bằng DocumentRoot
và thay thế bằng vị trí của document root mới. Trong ví dụ này, vị trí root mới là /mnt/volume_nyc3_01
:
<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>
Ở dưới chỉ thị </VirtualHost>
trên, bạn hãy thêm các dòng sau vào để đảm bảo rằng máy chủ sẽ đi theo các đường liên kết tượng trưng (symbolic links) trong thư mục:
. . .
</VirtualHost>
<Directory /mnt/volume_nyc3_01>
Options FollowSymLinks
AllowOverride None
Require all granted
</Directory>
Dưới đây là bản đầy đủ của file, bạn có thể kiểm tra lại để đảm bảo rằng cấu hình của mình giống với bản cấu hình ở đây.
<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 sau khi hoàn tất. Nếu sử dụng nano
, bạn có thể bạn có thể thực hiện bằng cách nhấn CTRL + X
, rồi Y
, rồi ENTER
.
Tiếp theo, bạn có thể chuyển sang cấu hình cho SSL.
Mở file /etc/apache2/sites-enabled/your_domain-le-ssl.conf
:
sudo nano /etc/apache2/sites-enabled/your_domain-le-ssl.conf
Giống file cấu hình trước đó, bạn cần sửa đổi DocumentRoot
để cập nhật vị trí mới của document root:
<IfModule mod_ssl.c>
<VirtualHost *:443>
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
. . .
</VirtualHost>
</IfModule>
Lưu và đóng file này sau khi hoàn tất.
Bước 3: Khởi động lại Apache
Đầu tiên, đảm bảo không có lỗi cú pháp xảy ra trong file cấu hình sau khi chỉnh sửa với lệnh configtest
:
sudo apachectl configtest
Nếu không có lỗi cú pháp xảy ra, output sẽ được hiển thị tương tự như dưới đây:
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 tắt đi dòng hiển thị ở phía trên cùng trong kết quả output này, hãy thêm chỉ thị ServerName
vào file cấu hình chung của Apache tại vị trí /etc/apache2/apache2.conf
. Tên máy chủ có thể là tên miền hoặc địa chỉ IP của máy chủ bạn đang sử dụng. Hãy mở file bằng trình chỉnh sửa bất kỳ:
sudo nano /etc/apache2/apache2.conf
Đặt chỉ thị ServerName
ở cuối của tệp thành your_domain
hoặc địa chỉ IP của máy chủ sử dụng:
# 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 sau khi hoàn tất. 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. Chỉ cần output chứa Syntax OK
là bạn có thể tiếp tục các bước tiếp theo.
Hãy sử dụng lệnh sau để khởi động lại Apache:
sudo systemctl reload apache2
Khi máy chủ đã khởi động lại, hãy truy cập vào các trang web bị ảnh hưởng bởi sự thay đổi đường dẫn thư mục gốc trên của bạn để đảm bảo rằng chúng vẫn đang hoạt động như mong đợi. Sau khi bạn đã đảm bảo mọi thứ đều hoạt động tốt, hãy xóa các file bên trong thư mục document root ban đầu:
sudo rm -Rf /var/www/your_domain
Như vậy, bạn đã di chuyển thành công thư mục document root của Apache đến một vị trí mới.
Vietnix hiện đang là nhà cung cấp hosting, VPS tốc độ cao uy tín, chất lượng hàng đầu tại Việt Nam với 11 năm kinh nghiệm. Trong suốt quá trình hoạt động, Vietnix đã đồng hành cùng 50.000+ khách hàng trong và ngoài nước. Trong đó có những đơn vị nổi tiếng như iVIVU.com, Vietnamwork, KINGFOOD, UBGroup, GTV,…
Khi được hỏi về chất lượng hosting, VPS tại Vietnix, 97% khách hàng đã sử dụng đều đánh giá tốt và còn giới thiệu cho người khách sử dụng. 89% khách hàng vẫn đang duy trì sử dụng dịch vụ của Vietnix đến thời điểm hiện tại. Do đó, bạn hoàn toàn có thể hoàn toàn yên tâm về chất lượng dịch vụ tại đây.
Nhờ sự nỗ lực không ngừng nâng cao chất lượng dịch vụ, mang đến sự hài lòng cho khách hàng, Vietnix đã được vinh danh với giải thưởng “Thương hiệu Việt Nam xuất sắc 2022“.
Với đội ngũ tư vấn nhiều kinh nghiệm và tận tâm, Vietnix sẽ tư vấn cho bạn giải pháp phù hợp nhất với nhu cầu. Liên hệ ngay với Vietnix để được hỗ trợ.
- Địa chỉ: 265 Hồng Lạc, Phường 10, Quận Tân Bình, Thành Phố Hồ Chí Minh
- Hotline: 1800 1093 – 07 088 44444
- Email: sales@vietnix.com.vn
Lời kết
Qua hướng dẫn này, bạn đã biết cách thay đổi thư mục document root của Apache sang một vị trí mới. Nhờ đó, có thể quản lý máy chủ web và lưu trữ hiệu quả hơn khi có nhiều trang web trên một máy chủ. Nếu còn vấn đề gì chưa rõ, bạn có thể bình luận bên dưới để được hỗ trợ thêm.