Bạn không có quyền truy cập trên máy chủ này
Nhiều cấu hình máy chủ web phải đối mặt với các vấn đề liên quan đến quyền đối với tệp. Nó thường khiến máy chủ không thể truy cập được đối với khách truy cập và biểu hiện dưới dạng lỗi 403. Thông thường, thông báo lỗi giống như “Bị cấm: bạn không có quyền truy cập / trên máy chủ này”. Nó có thể là bất cứ thứ gì ở dạng Forbidden: bạn không có quyền truy cập tài nguyên này.
Các vấn đề tương tự cũng có thể xảy ra do sự cố trong tệp cấu hình Apache hoặc thậm chí do lỗi .htaccess tập tin. Hướng dẫn này cung cấp các giải pháp từng bước cho tất cả các vấn đề này. Hãy thử từng giải pháp một, bắt đầu từ giải pháp đầu tiên.
Mục Lục
Nguyên nhân nào gây ra lỗi Apache 403 này?
Đây là một lỗi 403 khá phổ biến trên phần cuối của Apache do vô số vấn đề gây ra. Tuy nhiên, trong hầu hết các trường hợp, lỗi này xảy ra do thiếu các quyền thích hợp cần thiết để truy cập một trang web công khai. Ngoài ra, các trang web WordPress thường gặp phải vấn đề này do .htaccess tập tin.
Hơn nữa, kể từ phiên bản Apache 2.4, đã có một số thay đổi về cách thức hoạt động của các lệnh. Điều này cũng có thể hạn chế quyền truy cập công khai vào trang web của bạn và dẫn đến lỗi 403 bị cấm.
1. Sửa quyền đối với tệp để tránh lỗi
Hầu hết mọi người gặp phải lỗi 403 phổ biến này do thiếu quyền thích hợp. Nếu quản trị viên trang web quên bật quyền truy cập đọc ra thế giới bên ngoài, thì người dùng cuối sẽ không thể truy cập tài nguyên được yêu cầu. Đây thường là nguyên nhân gốc rễ của lỗi này.
Ví dụ: giả sử bạn đang cố gắng truy cập một tệp có tên SGK.php trên trang web WordPress và gặp lỗi cho biết bạn không có quyền truy cập /textbook.php trên máy chủ này. Nó ngụ ý rằng tệp ở đó, nhưng chủ sở hữu trang web đã vô hiệu hóa quyền truy cập của người dùng công khai.
Thay vào đó, nếu bạn là quản trị viên trang web, bạn cần đảm bảo các tệp dành cho quyền truy cập công khai có quyền đọc phù hợp. Ngoài ra, nếu bạn đang gặp phải lỗi này trên một trang web công cộng, hãy thông báo cho quản trị viên trang web để giải quyết vấn đề này.
Đặt quyền chính xác cho các tệp có thể truy cập công khai có thể hơi phức tạp. Đó là lý do tại sao quản trị viên nên bắt đầu với quyền hoàn toàn không và thêm chúng khi cần thiết. Bạn nên có các thư mục có chế độ cho phép 755 và các tệp với 644.
Đối với một trang web đơn giản, các thư mục cần phải có hành hình quyền và các tệp phải có đọc sự cho phép. Đảm bảo không cấp quyền thực thi trên tệp. Người dùng độc hại có thể có được quyền truy cập không mong muốn vào các máy chủ công cộng thông qua các tệp như vậy
Chế độ quyền cho Đọc, Viết và Hành hình truy cập lần lượt là 4, 2 và 1. Vì vậy, chế độ cấp quyền 755 trên các thư mục có nghĩa là chỉ chủ sở hữu mới có toàn quyền truy cập vào nội dung thư mục. Người dùng nhóm và những người khác chỉ có thể đọc và thực thi. Tương tự, chế độ quyền 644 cho tệp cung cấp quyền đọc và ghi cho chủ sở hữu và chỉ quyền đọc cho những người khác.
Để giải quyết các lỗi như bị cấm: bạn không có quyền truy cập tài nguyên này trên bất kỳ máy chủ nào, hãy sửa các quyền của thư mục webroot của bạn. Lệnh dưới đây sử dụng tiện ích chmod để đặt quyền thư mục thành 755:
sudo find /var/www/html -type d -exec chmod 755 {} ;
Lệnh này giả sử bạn đang sử dụng gốc tài liệu mặc định của Apache để giữ trang web của mình. Nếu bạn đang sử dụng một thư mục khác, hãy thay thế tên thư mục cho phù hợp. Sử dụng lệnh dưới đây để thay đổi tất cả các quyền tệp thành 644:
sudo find /var/www/html -type f -exec chmod 644 {} ;
Lệnh trên sử dụng tiện ích tìm kiếm để định vị các tệp riêng lẻ và đặt quyền chính xác thông qua chmod. Phần kết {} giữ các đường dẫn tệp được trả về bởi lệnh find và dấu chấm phẩy (;) đánh dấu sự kết thúc của phép lặp.
Ngoài ra, bạn cũng có thể thay đổi các quyền đối với tệp riêng lẻ. Ví dụ: lệnh sau sẽ thay đổi quyền của SGK.php trên web gốc và làm cho nó có thể truy cập công khai. Vì vậy, lần tới khi ai đó cố gắng truy cập vào tệp này, họ sẽ không thấy lỗi “bạn không có quyền truy cập tài nguyên này”.
sudo chmod 644 /var/www/html/textbook.php
Khi bạn đã thay đổi tất cả các quyền đối với tệp theo yêu cầu, hãy khởi động lại máy chủ Apache để các thay đổi của bạn có hiệu lực.
sudo systemctl restart apache2.service
Lệnh này khởi động lại máy chủ Apache trên Ubuntu. Tuy nhiên, nhiều bản phân phối dựa trên RPM như RHEL hoặc CentOS cài đặt Apache dưới dạng httpd. Đối với các hệ thống như vậy, hãy sử dụng lệnh sau để thay thế:
sudo systemctl restart httpd
2. Sửa tệp .htaccess cho trang web WordPress của bạn
Các .htaccess tệp đóng vai trò là tệp cấu hình phân tán và cho Apache biết cách xử lý những thứ như thay đổi cấu hình trên mỗi thư mục. Đôi khi tệp này có thể bị hỏng và có thể dẫn đến lỗi “bạn không có quyền truy cập / trên máy chủ này”.
May mắn thay, nếu đó là nguyên nhân gây ra lỗi 403 trên máy chủ của bạn, bạn có thể dễ dàng sửa lỗi này bằng cách tạo tệp .htaccess mới. Để tạo tệp .htaccess mới cho trang web của bạn, trước tiên, hãy đăng nhập vào bảng điều khiển WordPress của bạn. Sau đó, nhấp vào Cài đặt> Permalinks.
Bạn không phải thực hiện bất kỳ thay đổi bổ sung nào ở đây. Chỉ cần nhấp vào Lưu thay đổi và WordPress sẽ tạo một tệp .htaccess mới cho bạn.
Vì vậy, bất cứ lúc nào bạn thấy “bạn không có quyền truy cập tài nguyên này” trên máy chủ Apache, hãy thử tạo tệp .htaccess mới. Phương pháp này thường hoạt động tốt cho các trang web WordPress.
3. Định cấu hình Chỉ thị trong Tệp Cấu hình Apache
Apache 2.4 sử dụng mô-đun cấu hình mới có tên mod_authz_host. Mô-đun này cho thấy một số chỉ thị mới. Trong ngắn hạn, điều này thực hiện các quy tắc sau:
- Yêu cầu tất cả được cấp: Cho phép tất cả các yêu cầu
- Yêu cầu tất cả bị từ chối: Từ chối mọi yêu cầu
- Yêu cầu máy chủ safe.com: Chỉ cho phép các yêu cầu từ safe.com
Nếu bạn đang sử dụng Apache 2.4, hãy đảm bảo rằng tệp cấu hình chính của bạn chứa khối mã sau. Bạn có thể xem nội dung của tệp này bằng trình soạn thảo văn bản đơn giản như Vim. Thêm khối này vào tệp cấu hình nếu chúng bị thiếu. Sau đó, bạn có thể lưu và thoát Vim.
vim /etc/apache2/apache2.conf
Mã số:
<Directory />Options FollowSymLinks
AllowOverride None
Require all denied
</Directory>
<Directory /usr/share>
AllowOverride None
Require all granted
</Directory>
<Directory /var/www/>
Options Indexes FollowSymLinks
AllowOverride None
Require all granted
</Directory>
Hơn nữa, nếu bạn đang chạy một máy chủ web dựa trên RHEL, bạn cần dễ dàng truy cập vào / var / www trong tệp cấu hình Apache của bạn. Vì vậy, hãy đảm bảo /etc/httpd/conf/httpd.conf tệp chứa khối mã sau.
vim /etc/httpd/conf/httpd.conf
Mã số:
<Directory "/var/www">
AllowOverride None
Require all granted
</Directory>
Cuối cùng, khởi động lại máy chủ Apache bằng một trong các lệnh sau:
sudo systemctl restart apache2.service
sudo systemctl restart httpd
Sửa lỗi quyền máy chủ Apache trên Linux
Rất nhiều người gặp phải vấn đề trên khi truy cập các trang web công cộng hoặc cấu hình trang web của riêng họ. Hướng dẫn này bao gồm một số bản sửa lỗi cho vấn đề này. Đặt lại quyền hệ thống tệp cho Apache nên là phương án đầu tiên. Nếu lỗi vẫn tiếp diễn ngay cả sau khi thay đổi quyền, hãy thử tạo .htaccess và đảm bảo các chỉ thị được đặt đúng trong tệp cấu hình Apache của bạn.
Có nhiều sự cố khác có thể dẫn đến lỗi phía máy chủ tương tự như lỗi này. Bạn cần phải thành thạo trong việc khắc phục sự cố máy chủ Linux để máy chủ của bạn hoạt động trong những trường hợp như vậy.