[Help] Lỗi You don't have permission to access / on this server

Em đang viết một trang web sử dụng PHP và sử dụng Apache. Khi mình đăng nhập xong và truy cập vào trang thông tin cá nhân thì thấy màn hình trống hiện ra với thông báo lỗi

  • Forbidden You don't have permission to access / on this server*

Vào thư mục /var/logs/apache2/ và xem tất cả các tập tin log thì cũng chỉ thấy dòng thông báo trên mà không có thêm chi tiết nào khác được cung cấp.

Có bác nào biết cách fix lỗi này không chỉ em với?

Hói 9 tháng trước

Bạn gặp lỗi này là do Apache không có quyền truy cập vào thư mục chứa ứng dụng của bạn. Nhớ là thư mục chứa ứng dụng chứ không phải là thư mục / trên máy chủ (hay máy tính cá nhân cài Apache dùng ở môi trường localhost).

Lý do bạn gặp lỗi này là bởi vì mặc dù ngay cả khi bạn set quyền thậm chỉ là 777 cho thư mục gốc ứng dụng của bạn (giả sử là /var/www/my_app) thì bạn vẫn cần phải set thêm quyền truy cập thư mục cho Apache trong các tập tin config thường là httpd.conf hoặc httpd-vhosts.conf. Ví dụ như sau:

<Directory /var/www/my_app>
    Options FollowSymLinks
    AllowOverride All
    Order deny,allow
    Allow from all
</Directory>

Bạn chú ý sau khi thay đổi 1 trong 2 tập tin config ở trên thì bạn cần phải khởi động lại Apache. Trên Ubuntu câu lệnh khởi động Apache sẽ là:

$ sudo service apache2 restart

Trên các phiên bản Linux của Redhat câu lệnh này sẽ là:

$ sudo service httpd restart

Trường hợp bạn đã set như trên và khởi động lại Apache rồi mà vẫn bị thì bạn cần kiểm tra xem có một chỉ thị nào khác viết chèn (override) chỉ thị ở trên không. Thông thường Apache có cấu hình mặc định khá khắt khe với một chỉ thị được tạo ra sẵn trong httpd.conf như sau:

<Directory />
    Options FollowSymLinks
    AllowOverride All
    Order deny,allow
    Allow from all
</Directory>

Và bạn cần chắc chắn rằng chỉ thị bạn tạo rao cho my_app nằm ở phía dưới chỉ thị có sắn trên. Hoặc bạn có thể comment bỏ đi các chỉ thị có sẵn trên.

Trả lời 2 ngày trước

Viết Trả Lời: