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 bảo mật Apache bằng Let's Encrypt trên 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 tạo chứng chỉ SSL tự ký cho Apache trong 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