Hướng dẫn 403 forbidden phpmyadmin nginx

I give up... How to configure nginx to open inedx.php in html/pma folder when i am enter url localhost/pma/ ?

When i enter localhost/pma/index.php it's work. I am working on windows.

My nginx config:

worker_processes  1;

events {
    worker_connections  1024;
}

http {
    include       mime.types;
    default_type  application/octet-stream;

    sendfile        on;
    keepalive_timeout  65;

    server {
        listen       80;
        server_name  localhost;

index  index.html index.htm index.php;

        location / {
            root   html;
            index  index.html index.htm index.php;
        }

        location /pma/ {
            root   html/pma;
            index  index.html index.htm index.php;
        }

        error_page   500 502 503 504  /50x.html;
        location = /50x.html {
            root   html;
        }

        location ~ \.php$ {
            include fastcgi.conf;
            fastcgi_pass 127.0.0.1:9000;
            fastcgi_index index.php;
            include fastcgi_params;
        }

    }
}

asked Jan 21, 2013 at 16:51

solve by Ray`n on irc: root have to be in server, not location.

worker_processes  1;

events {
    worker_connections  1024;
}

http {
    include       mime.types;
    default_type  application/octet-stream;

    sendfile        on;
    keepalive_timeout  65;

    server {
        listen       80;
        server_name  localhost;

index  index.html index.htm index.php;
root html

        error_page   500 502 503 504  /50x.html;
        location = /50x.html {
            root   html;
        }

        location ~ \.php$ {
            include fastcgi.conf;
            fastcgi_pass 127.0.0.1:9000;
            fastcgi_index index.php;
            include fastcgi_params;
        }

    }
}

answered Jan 21, 2013 at 19:21

kabrakabra

1,2861 gold badge17 silver badges24 bronze badges

Thi thoảng khi cài đặt NGinX và PHP lên server Linux thường bị tình trạng lỗi 403 forbidden mặc dù đã cấu hình các thông số đầy đủ. Kiểm tra log của NGINX thì sẽ thấy thông báo Permission denied. Lúc này việc cần làm là kiểm tra kĩ việc cấp quyền truy cập của NGINX đối với thư mục chứa mã nguồn trang.

I. Cấp quyền truy cập cho user/group nginx

Giả sử mã nguồn trang web được đặt tại /var/www/domain_name/public_html.

Đảm bảo các file mã nguồn có thể đọc và execute:

sudo chmod 0755 -R /var/www/domain_name

Cấp quyền đọc và ghi cho NGINX:

sudo chown -R nginx:nginx /var/www/domain_name

Trong trường hợp không muốn NGINX có quyền ghi mà chỉ có quyền đọc:

sudo usermod -aG nginx user1

sudo chown -R user1:nginx /var/www/domain_name

Câu lệnh đầu tiên sẽ add user1 vào group nginx, câu lệnh thứ 2 sẽ cấp quyền ghi cho user1 tại thư mục mã nguồn đồng thời cho phép các user khác trong group nginx (bao gồm cả user nginx) có quyền đọc và execute tại đây.

Khởi động lại các service:

sudo service php-fpm restart

sudo service nginx restart

II. Chỉnh SELinux

Trong hầu hết các trường hợp chỉ cần chỉnh bước 1 là có thể chạy trang web bình thường rồi. Nhưng đối với những hệ thống có kích hoạt SELinux thì cần chỉnh thêm một chút.

Kiểm tra tình trạng SELinux:

sudo getenforce

Nếu kết quả là “Enforcing” có nghĩ là SELinux đang bật. Hãy thử tắt SELinux đi:

sudo setenforce Permissive

Khởi động lại NGINX và PHP-FPM service để xem kết quả!

Trong trường hợp vẫn muốn bật SELinux vì một lý do nào đó, hãy làm như sau để nói cho SELinux biết đâu là thư mục chứa mã nguồn trang web.

Bật lại SELinux:

sudo setenforce Enforcing

Đánh dấu thư mục chưa mã nguồn web:

sudo chcon -Rt httpd_sys_content_t /var/www/domain_name

Khởi động lại VPS và xem kết quả. Nếu vẫn bị lỗi 403 Forbidden thì gõ thêm lệnh sau:

sudo setsebool -P httpd_can_network_connect on

Những câu lệnh trên được thử trên CentOS 6.8, các hệ điều hành khác có thể khác biệt đôi chút.

Th8 01, 2022

Hai G.

4ít nhất Đọc

Hướng dẫn 403 forbidden phpmyadmin nginx

Lỗi 403 Forbidden là thông báo lỗi khi bạn đang bị chặn truy cập vào địa chỉ web, do địa chỉ đó không có dữ liệu hoặc bạn không có đủ quyền truy cập hay bị chặn bởi hosting.

Đừng lo lắng, hầu hết các nhà làm web đều đã gặp từng gặp lỗi này. Cách sửa lỗi cũng rất đơn giản.

Hướng dẫn 403 forbidden phpmyadmin nginx

Bạn đã biết lỗi 403 forbidden là gì. Ở phần sau bạn sẽ biết cách sửa nhanh lỗi 403.  Cách chúng tôi sửa lỗi này ở trường hợp thực tế trên một gói WordPress site hosting. Các CMS khác bạn cũng có thể áp dụng cách sửa lỗi tương tự.

  • Bạn cần chuẩn bị gì?
  • Các cách thể hiện lỗi 403 Forbidden là gì?
  • Lý do gây lỗi 403 Forbidden Error
  • Sửa lỗi Error 403 Forbidden 
  • Lời kết

Bạn cần chuẩn bị gì?

Trước khi bắt đầu, bạn cần chuẩn bị:

  • Truy cập vào hosting control panel

Các cách thể hiện lỗi 403 Forbidden là gì?

Tùy từng server bạn sẽ thấy website hiển thị lỗi 403 theo cách khác nhau. Nhiều webmaster còn chỉnh trang lỗi HTTP 403 theo ý họ. Tóm lại nếu bạn thấy các thông báo tương tự sau, thì bạn đã biết website đang gặp lỗi 403:

  • Forbidden: You don’t have permission to access [directory] on this server
  • HTTP Error 403 – Forbidden
  • HTTP 403
  • 403 forbidden request forbidden by administrative rules
  • 403 Forbidden
  • Access Denied You don’t have permission to access

Vậy nguyên nhân do đâu?

Lý do gây lỗi 403 Forbidden Error

Lỗi 403 xảy ra khi bạn bị chặn truy cập vào địa chỉ đó. Chúng chỉ có thể là:

  • Cấu hình file .htaccess sai
  • Sai phân quyền file hoặc folder
  • Lỗi plugin hay do plugin không tương thích
  • Lỗi 403 forbidden có thể do công ty hosting của bạn cập nhật thay đổi gì đó ở hệ thống.

Khi thấy lỗi 403 Error trong quá trình phát triển web có thể bạn sẽ cảm thấy rất phiền. Nhưng giờ bạn đã biết lý do gây ra lỗi, bạn đã có thể tìm cách sửa lỗi Error 403 forbidden rồi

Sửa lỗi Error 403 Forbidden 

Chúng tôi dùng website WordPress làm ví dụ sửa lỗi, các CMS khác cũng áp dụng cách tương tự nếu bạn gặp lỗi. Các bước sửa lỗi error 403 Forbidden tuần tự là:

Cách 1 – Kiểm tra file .htaccess

Bạn có thể chưa quen với file .htaccess, do file này là file ẩn trong thư mục website. Tuy nhiên nếu bạn đang dùng  Hostinger File Manager, bạn có thể thấy .htaccess mặc định.

Hướng dẫn 403 forbidden phpmyadmin nginx

Với các trường hợp khác, nếu bạn dùng cPanel, bạn có thể truy cập hosting qua File Manager của cpanel. Để tìm file .htaccess bạn làm như sau:

  1. Mở File Manager từ hosting Control Panel
  2. Trong public_html directory, tìm .htaccess file.
  3. Nếu bạn không thấy file .htaccess file, bạn chọn Settings rồi kích hoạt Show Hidden Files (dotfiles).
    Hướng dẫn 403 forbidden phpmyadmin nginx

Để giúp bạn hiểu thêm về file .htaccess, nó là file cấu hình server và chủ yếu hoạt động để tinh chỉnh cấu hình các cài đặt của web server Apache

Mặc dù file .htaccese đều có trong bất kỳ website WordPress nào, có một số trường hợp file .htaccess bị xóa không cố ý, bạn cần tạo lại file .htaccess thủ công. Các bước như sau:

  1. Tải file .htaccess về máy tính để lưu 1 bản backup
  2. Xóa file này trên server.
    Hướng dẫn 403 forbidden phpmyadmin nginx
  3. Thử truy cập lại website
  4. Nếu hoạt động, tức là lỗi do .htaccess
  5. Bây giờ, hãy tạo mới một file .htaccess, đăng nhập vào WordPress dashboard, click vào Settings > Permalinks.
  6. Bạn không cần thay đổi gì hết mà chỉ cần nhấn nút Save ở cuối trang.
    Hướng dẫn 403 forbidden phpmyadmin nginx
  7. File .htaccess mới sẽ được tạo lại cho website của bạn

Nếu không được, hãy qua bước thứ 2

Cách 2 – Xử lý phân quyền

Một lý do khác gây ra lỗi 403 Error Forbidden message là phân quyền file hoặc folder không đúng. Lý do là khi files được tạo ra nó sẽ được tạo ra với phân quyền mặc định. Những quyền này bao gồm đọc, viết và thực thi khi sử dụng. Tuy nhiên, qua thời gian, những quyền trên sẽ thay đổi tùy vào yêu cầu. Đổi quyền file rất dễ. Bạn có thể làm việc này qua FTP client hoặc file manager. FileZilla FTP client cung cấp nhiều lựa chọn để đổi file hoặc folder.

Vì vậy, chúng tôi khuyên nên sử dụng FTP để chỉnh lại phân quyền theo các bước sau:

  1. Truy cập vào website qua FTP client.
  2. Chuyển tới thư mục gốc của tài khoản Hosting.
  3. Chọn folder chính chứa tất cả file (thường gọi là public_html), chuột phải vào nó và chọn File Permissions.
    Hướng dẫn 403 forbidden phpmyadmin nginx
  4. Kiểm tra Apply to directories only, điền quyền 755 và nhấn OK.
    Hướng dẫn 403 forbidden phpmyadmin nginx
  5. Khi FileZilla đã đổi xong quyền, hãy lặp lại bước 3, nhưng lúc này hãy chọn apply to files only rồi điền 644 và nhấn ok.
    Hướng dẫn 403 forbidden phpmyadmin nginx
  6. Khi hoàn tất, thử truy cập vào website bây giờ, và xem xem lỗi có được sửa chưa.

Nếu bạn muốn hiểu thêm về phần quyền file và folder hoạt động như thế nào trong môi trường Linux, hoặc bạn muốn dùng command line để đổi phần quyền, hãy xem qua hướng dẫn này.

Tuy nhiên, nếu vẫn không được, hãy tiếp tục ở bước tiếp theo.

Cách 3 – Vô hiệu WordPress plugins

Nếu bạn đã tới bước này, chắc chắn chỉ còn lỗi do plugin hoặc plugin không tương thích. Ở bước này, chúng ta sẽ thử vô hiệu plugin để xem nó có làm mất lỗi 403 Forbidden Error không. Cách tốt nhất là vô hiệu toàn bộ plugin và kích hoạt lại từ từ. Với bước này, bạn có thể xác định plugin nào gây lỗi để đưa ra giải pháp tốt nhất.

Đây là các bước để kiểm thử xem plugin nào lỗi:

  1. Truy cập vào tài khoản hosting của bạn với FTP và tìm thư mục public_html (hoặc thư mục chứa file chạy website).
  2. Vào thư mục  wp-content -> Chọn thư mục Plugins, đổi tên thành tên khác như là ‘disabled-plugins’. Hành động này sẽ vô hiệu plugin. Bạn có thể xem qua bài hướng dẫn chi tiết hơn về WordPress plugins.
    Hướng dẫn 403 forbidden phpmyadmin nginx
  3. Hãy thử truy cập lại website. Nếu truy cập được tức là plugins có lỗi. Thử deactive plugins từng cái một và xem website của bạn có hoạt động khôi mỗi khi vô hiệu một cái. Cách này bạn sẽ xác định được plugin gây lỗi.
  4. Bạn có thể chọn update plugins hoặc cài lại plugin sau khi đã xác định được plugin gây lỗi. Nếu vẫn không được (trường hợp hiếm) ,hãy liên hệ với nhà cung cấp hosting của bạn, có thể họ sẽ giúp được.

Lời kết

Bằng cách làm theo các phương pháp được liệt kê ở trên, bạn có thể loại bỏ 403 forbidden error. Nhưng chỉ 3 bước hoặc thôi bạn đã sửa nó được rồi. Chúng tôi hy vọng rằng bằng bài hướng dẫn chi tiết này đã giúp bạn sửa lỗi 403 nhanh chóng. Để tìm thêm các bài hướng dẫn về WordPress, hãy xem qua trang này

Hải G. là chuyên gia quản lý, vận hành các dịch vụ website. Anh có nhiều năm kinh nghiệm về VPS, Hosting, technical SEO, CMS. Đặc biệt yêu thích WordPress và đã dùng nó hơn 5 năm nay. Sở thích của anh là đọc, viết blog, đi du lịch và tư vấn cho các bạn trẻ khởi nghiệp.