2013-08-16 15 views
16

cài đặt laravel của tôi đã làm việc ngày hôm qua tốt nhưng hôm nay tôi nhận được lỗi sau:Laravel - Forbidden Bạn không có quyền truy cập/trên máy chủ này

Forbidden 

You don't have permission to access/on this server. 

Additionally, a 403 Forbidden error was encountered while trying to use an ErrorDocument to handle the request. 

Có ai biết nơi tôi đang đi sai?

+0

Không giống như một vấn đề Laravel. Bạn có thể cần phải xem xét máy chủ web của bạn, tập tin .htaccess và quyền truy cập tập tin: http://www.cyberciti.biz/faq/apache-403-forbidden-error-and-solution/. –

Trả lời

0

Bạn có thể đang gặp sự cố về quyền đối với tệp. Xác minh tệp htacces của bạn, nó đã thay đổi từ hôm qua chưa? Ngoài ra, nếu bạn đang thực hiện bất kỳ nội dung nào "cập nhật nhà soạn nhạc" hoặc "tối ưu hóa thủ công", hãy thử chowning thư mục dự án laravel của bạn cho tên người dùng của bạn.

chown -R yourusername yourlaravelappfolder 

EDIT: vấn đề là có thể do quyền tập tin địa phương của bạn liên quan đến Vagrant. Hãy thử để

set the permissions to the Vagrantfile containing folder to 777 
+0

Tôi đã không thay đổi gì kể từ hôm qua. Cảm ơn đề xuất của bạn nhưng nó không hoạt động. – panthro

+0

OK, có thể môi trường máy chủ của bạn đã thay đổi trong thời gian chờ đợi không? Một cái gì đó phải đã xảy ra :) Lỗi bạn đang phải đối mặt với một số lý do, phải không? – Gadoma

+0

Không có gì thay đổi. Nó đã làm việc tối qua. Tắt máy tính. Nó không hoạt động sáng nay. – panthro

11

Bạn đã cố thay đổi tệp .htaccess mà Laravel đề xuất nếu tệp mặc định không hoạt động? Tôi có vấn đề tương tự này và thay đổi nó để

Options +FollowSymLinks 
RewriteEngine On 

RewriteCond %{REQUEST_FILENAME} !-d 
RewriteCond %{REQUEST_FILENAME} !-f 
RewriteRule^index.php [L] 

và nó soleved :)

+1

Cảm ơn. Làm việc cho tôi là tốt. – KCP

+0

trong đó tệp '.htaccess' mà chúng ta cần phải đặt mã này? 'root' hoặc cái được tìm thấy trong thư mục' public'? –

+1

Thay đổi gốc '.htaccess' file –

3

Với tôi vấn đề dường như là về thực tế rằng không có tập tin index.php trong thư mục public_html. Tuy nhiên, khi tôi nhập địa chỉ này: http://azxcvfj.org/public, địa chỉ này hoạt động (địa chỉ này chỉ là một ví dụ. Nó chỉ đến hư không). Điều này khiến tôi suy nghĩ và cuối cùng tôi đã giải quyết nó bằng cách làm như sau.

tôi đã thực hiện một tập tin .htaccess trong thư mục gốc của ứng dụng (thư mục public_html) với nội dung sau:

<IfModule mod_rewrite.c> 
    <IfModule mod_negotiation.c> 
     Options -MultiViews 
    </IfModule> 

    RewriteEngine On 

    # Redirect Trailing Slashes... 
    RewriteRule ^(.*)/$ /$1 [L,R=301] 

    # Handle Front Controller... 
    RewriteCond %{REQUEST_FILENAME} !-d 
    RewriteCond %{REQUEST_FILENAME} !-f 
    RewriteRule^public/index.php [L] 
</IfModule> 

Và điều này làm việc. Với tệp này, về cơ bản bạn đang nói với máy chủ (Apache) rằng bất cứ khi nào ai đó đang cố gắng truy cập vào thư mục html công cộng (http://azxcvfj.org) thì ai đó đang được chuyển hướng sẽ được chuyển hướng đến http://azxcvfj.org/public/index.php

9

Đối với những người sử dụng Mamp hoặc Mamp pro:

Open MAMP Pro 
Click on “Hosts” 
Click on “Extended” (UPDATE: Only if you are using MAMP Pro 3.0.6) 
Check “Indexes” 
Click “Save” 
That’s it! Reload your localhost starting page and it should work properly. 
+1

cảm ơn. đây là câu trả lời tuyệt vời –

20

Tạo và đặt tệp .htaccess này trong thư mục cài đặt laravel của bạn.

<IfModule mod_rewrite.c> 
    RewriteEngine on 
    RewriteCond %{REQUEST_URI} !^public 
    RewriteRule ^(.*)$ public/$1 [L] 
</IfModule> 
+0

điều này làm việc cho tôi! thanks –

+0

Cảm ơn sự giúp đỡ của bạn –

0

Tôi gặp sự cố tương tự và đã tạo tệp .htaccess để khắc phục vấn đề này với một số cải tiến khác. Bạn có thể sử dụng nó như nó là, chỉ cần tải về từ Github Gist và thay đổi tên tập tin "public/index.php" thành "public/app.php" và xem nó hoạt động như thế nào! :)

8

Kiểm tra cấu hình máy chủ ảo của bạn. Đối với Ubuntu bạn có thể tìm thấy nó ở /etc/apache2/sites-available/yourlaravel.conf Nó phải là như thế này:

<VirtualHost *:80> 
ServerName yourlaravel.com 
DocumentRoot "/path/to/your/laravel/project/public" 
ServerAlias *.yourlaravel.com 

<Directory "/path/to/your/laravel/project/public"> 
    AllowOverride All 
    Require all granted 
</Directory> 

Điểm mấu chốt là Require all granted bên <Directory>.

Hy vọng điều đó sẽ hữu ích!

13

Tôi đã gặp vấn đề tương tự, sau đó tôi làm giống như giải pháp @lubat và dự án của tôi hoạt động tốt.: D cấu hình virtualhost của tôi:

<VirtualHost *:80> 
    ServerName laravelht.vn 
    DocumentRoot D:/Lavarel/HTPortal/public 
    SetEnv APPLICATION_ENV "development" 
    <Directory D:/Lavarel/HTPortal/public> 
     DirectoryIndex index.php 
     AllowOverride All 
     Require all granted 
     Order allow,deny 
     Allow from all 
    </Directory> 
</VirtualHost> 
2

Nó đã được giải quyết cho tôi với Laravel mặc công cộng/.htaccess tập tin thêm một dòng thêm:

File /public/.htaccess vẫn như sau:

<IfModule mod_rewrite.c> 
    <IfModule mod_negotiation.c> 
     Options -MultiViews 
    </IfModule> 

    RewriteEngine On 
    DirectoryIndex index.php # This line does the trick 

    # Redirect Trailing Slashes If Not A Folder... 
    RewriteCond %{REQUEST_FILENAME} !-d 
    RewriteRule ^(.*)/$ /$1 [L,R=301] 

    # Handle Front Controller... 
    RewriteCond %{REQUEST_FILENAME} !-d 
    RewriteCond %{REQUEST_FILENAME} !-f 
    RewriteRule^index.php [L] 

    # Handle Authorization Header 
    RewriteCond %{HTTP:Authorization} . 
    RewriteRule .* - [E=HTTP_AUTHORIZATION:%{HTTP:Authorization}] 
</IfModule> 
0

1. Cập nhật Máy chủ ảo của bạn.

<VirtualHost *:80> 
     ServerName example.com 
     DocumentRoot /var/www/html/example-project/public 
     <Directory /var/www/html/example-project/public/> 
       AllowOverride All 
       Require all granted 
     </Directory> 
</VirtualHost> 

2. Thay đổi các tập tin Permission và quyền sở hữu.

$ sudo chgrp -R www-data /var/www/html/example-project 
$ sudo chmod -R 775 /var/www/html/example-project 

This worked for me. Please give it a shot. Thanks :)

0

Đối với tôi điều này đã được chỉ đơn giản là gọi route() trên một tuyến đường được đặt tên mà tôi đã không được tạo ra/tạo ra không đúng cách. Điều này gây ra trang lỗi Cấm.

Khởi động lại máy chủ web được phép Rất phù hợp! lỗi hiển thị:

Route [my-route-name] not defined.

Sửa tên tuyến ->name('my-route-name') sửa lỗi.

Đây là trên Laravel 5.5 & bằng wampserver.