Cách di chuyển web root Apache đến vị trí mới trên Ubuntu 16.04
Trên Ubuntu, theo mặc định, web server Apache2 lưu trữ tài liệu của nó trong/var/www/html , thường nằm trên hệ thống file  root  với phần còn lại của hệ điều hành. Tuy nhiên, đôi khi, rất hữu ích khi di chuyển root  tài liệu sang một vị trí khác, chẳng hạn như hệ thống file  được  mount  riêng biệt. Ví dụ: nếu bạn phục vụ nhiều trang web từ cùng một version  Apache, việc đặt root  tài liệu của mỗi người trên  dung 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, ta sẽ chỉ cho bạn cách di chuyển root tài liệu Apache đến vị trí mới.
Yêu cầu
Để hoàn thành hướng dẫn này, bạn cần :
- Server Ubuntu 16.04 với user không phải root có quyền - sudo. Bạn có thể tìm hiểu thêm về cách cài đặt user có các quyền này trong hướng dẫn Cài đặt server ban đầu với Ubuntu 16.04 của ta .
- Web server Apache2 : Nếu bạn chưa cài đặt , phần Apache của bài viết chuyên sâu, Cách cài đặt ngăn xếp Linux, Apache, MySQL, PHP (LAMP) trên Ubuntu 16.04 , có thể hướng dẫn bạn. 
- Vị trí mới cho root tài liệu của bạn : Vị trí root tài liệu mới hoàn toàn có thể cấu hình dựa trên nhu cầu của bạn. Nếu bạn đang di chuyển root tài liệu của bạn 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 mount của thiết bị. 
 Trong ví dụ này,  ta  sẽ sử dụng folder  /mnt/volume-nyc1-01 . Nếu bạn đang sử dụng Block Storage trên DigitalOcean,hướng dẫn này sẽ chỉ cho bạn cách gắn ổ đĩa của bạn trước khi tiếp tục với hướng dẫn này.
Bước 1 - Sao chép file sang vị trí mới
 Trên bản cài đặt Apache mới, tài liệu root  được đặt tại /var/www/html . Tuy nhiên, nếu bạn đang làm việc với một  server  hiện có, bạn có thể có một  cài đặt  khác đáng kể bao gồm nhiều root  tài liệu trong các lệnh VirtualHost tương ứng.
 Bạn có thể tìm kiếm vị trí của các root  tài liệu bổ sung bằng cách sử dụng grep .  Ta  sẽ tìm kiếm trong folder  /etc/apache2/sites-enabled để giới hạn sự tập trung của  ta  vào các trang đang hoạt động. Cờ -R  đảm bảo  grep sẽ in cả DocumentRoot và tên file  trong  kết quả  của nó:
- grep -R "DocumentRoot" /etc/apache2/sites-enabled 
Kết quả sẽ giống như kết quả kết quả bên dưới, mặc dù tên và số lượng kết quả có thể khác với cài đặt hiện có:
Outputsites-enabled/000-default.conf   DocumentRoot /var/www/html Sử dụng phản hồi từ grep  đảm bảo  rằng bạn đang di chuyển các file  mà bạn muốn di chuyển và cập nhật các file  cấu hình thích hợp của chúng.
 Bây giờ  ta  đã xác nhận vị trí của root  tài liệu  của bạn ,  ta  sẽ sao chép các file  vào vị trí mới của chúng bằng rsync . Sử dụng cờ -a bảo toàn các quyền và các thuộc tính folder  khác, trong khi -v cung cấp  kết quả  dài dòng để bạn có thể theo dõi tiến trình.
 Lưu ý: Hãy chắc chắn rằng không có dấu gạch chéo trên folder , có thể được thêm vào nếu bạn sử dụng tính năng hoàn thành tab. Khi có dấu gạch chéo ở cuối, rsync sẽ kết xuất nội dung của folder  vào điểm  mount  thay vì chuyển nó vào folder  html có chứa:
- sudo rsync -av /var/www/html /mnt/volume-nyc1-01 
Bây giờ ta đã sẵn sàng cập nhật cấu hình.
Bước 2 - Cập nhật file cấu hình
Apache2 sử dụng cả file cấu hình trang web và global . Để biết thông tin cơ bản về phân cấp file cấu hình, hãy xem Cách cấu hình Server Web Apache trên Ubuntu hoặc Debian VPS .
 Nếu bạn đang làm việc với cài đặt hiện có, bạn nên sửa đổi file   server  ảo mà bạn đã tìm thấy trước đó bằng grep . Đối với ví dụ của  ta ,  ta  sẽ xem xét hai file   Server  ảo được cung cấp với Apache theo mặc định, 000-default.conf và default-ssl.conf .
  Ta  sẽ bắt đầu bằng cách chỉnh sửa file  000-default.conf :
- sudo nano /etc/apache2/sites-enabled/000-default.conf 
Tiếp theo,  ta  sẽ tìm dòng bắt đầu bằng DocumentRoot và cập nhật nó với vị trí mới.
 Lưu ý: Bạn nên tìm những địa điểm khác mà đường dẫn ban đầu đã hiển thị và thay đổi cả những địa điểm đó sang vị trí mới. Với cài đặt mặc định, có DocumentRoot và một khối Directory mà bạn  cần  thay đổi. Trên bản cài đặt hiện có, bạn cũng có thể tìm thấy những thứ như alias  và bản viết lại cần cập nhật. Bất cứ nơi nào bạn thấy đường dẫn của root  tài liệu root  trong  kết quả  của grep , bạn  cần  phải điều tra.
<VirtualHost *:80>         ServerAdmin webmaster@localhost        DocumentRoot /mnt/volume-nyc1-01/html         <Directory />                 Options FollowSymLinks                 AllowOverride None        </Directory>       <Directory /mnt/volume-nyc1-01/html/>                 Options Indexes FollowSymLinks MultiViews                 AllowOverride None                 Require all granted         </Directory> Sau khi lưu các thay đổi này,  ta  sẽ chuyển sự chú ý sang cấu hình SSL. Khi cài đặt mới, SSL chưa được  cấu hình , nhưng  có thể bạn cần  cập nhật ssl-default.conf để tránh một số sự cố sau này nếu bạn không nhớ rằng mình cần thực hiện thay đổi.
- sudo  nano /etc/apache2/sites-available/ssl-default.conf 
<IfModule mod_ssl.c>         <VirtualHost _default_:443>                 ServerAdmin webmaster@localhost                 DocumentRoot /mnt/volume-nyc1-01  . . . Lưu ý: Nếu SSL không được bật, thì file  ssl-default.conf chỉ nằm trong /etc/apache2/sites-available. Nếu bạn bật SSL với a2ensite , một  softlink  sẽ được tạo từ file  trong sites-available cho /etc/apache2/sites-enabled . Trong trường hợp đó, file  có thể được chỉnh sửa từ một trong hai folder .
Bước 3 - Khởi động lại Apache
 Khi bạn đã hoàn tất các thay đổi cấu hình, bạn có thể  đảm bảo  cú pháp đúng với configtest :
- sudo apachectl configtest 
Bạn sẽ nhận được phản hồi từ apachectl configtest với một bản cài đặt mới:
OutputAH00558: 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 Miễn là bạn nhận được Syntax OK , hãy khởi động lại  web server . Nếu không, hãy theo dõi và khắc phục các sự cố mà nó đã báo cáo.
Sử dụng lệnh sau để khởi động lại Apache:
- sudo systemctl reload apache2 
Khi server đã khởi động lại, hãy truy cập các trang web bị ảnh hưởng của bạn và đảm bảo chúng hoạt động như mong đợi. Khi bạn thấy phù hợp , mọi thứ đã ổn định, đừng quên xóa bản sao root của dữ liệu.
Kết luận
Trong hướng dẫn này, ta đã trình bày cách thay đổi root tài liệu Apache thành một vị trí mới. Điều này có thể giúp bạn quản trị web server cơ bản, như lưu trữ hiệu quả nhiều trang web trên một server 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, một bước quan trọng trong việc mở rộng quy mô trang web khi nhu cầu của nó thay đổi.
Nếu bạn đang quản lý một trang web bận rộn hoặc đang phát triển, bạn có thể quan tâm đến việc tìm hiểu cách tải kiểm tra web server của bạn để xác định các tắc nghẽn hiệu suất trước khi bạn gặp phải chúng trong quá trình production . Bạn cũng có thể tìm hiểu thêm về việc cải thiện trải nghiệm production trong so sánh năm cách này để cải thiện cài đặt server ứng dụng web production của bạn .
Các tin liên quan
Cách thiết lập xác thực mật khẩu với Apache trên Ubuntu 16.042016-07-26
Cách cung cấp các ứng dụng Django với Apache và mod_wsgi trên Ubuntu 16.04
2016-05-17
Cách mã hóa kết nối Tomcat 8 với Apache hoặc Nginx trên Ubuntu 16.04
2016-04-29
Cách tạo chứng chỉ SSL tự ký cho Apache trong Ubuntu 16.04
2016-04-21
Cách thiết lập server ảo Apache trên Ubuntu 16.04
2016-04-21
Cách bảo mật Apache bằng Let's Encrypt trên Ubuntu 16.04
2016-04-21
Cách thiết lập Let's Encrypt chứng chỉ cho nhiều server ảo Apache trên Ubuntu 14.04
2016-01-19
Cách bảo mật Apache bằng Let's Encrypt trên Ubuntu 14.04
2015-12-18
Cách thiết lập server lưu lượng truy cập Apache làm Reverse-Proxy trên Ubuntu 14.04
2015-10-03
Cách thiết lập một cụm thụ động chủ động Apache bằng máy tạo nhịp tim trên CentOS 7
2015-09-08
 

