2017-10-11 84 views
0

一直在搜索關於在我的Linux mint 18.2系統上運行apache 2.4的配置laravel 5.4的最近3天之外,什麼都無法訪問。當apache服務器啓動時,我手動在瀏覽器中輸入localhost,它確實顯示了laravel的默認主頁,但是當我嘗試通過實時預覽在括號中進行訪問時(實時預覽基本URL:http://localhost作爲我的laravel項目專業人員的謊言在/ var/www/html /中),但它會引發與我的apache配置中的錯誤相對應的內部服務器錯誤。因此,我在apache2和apache2的啓用站點的目錄中提出了我的.htaccess文件000-default.conf文件。 conf文件: 一件重要的事情:手之前,我有在/ var/WWW我的項目文件夾PRO/HTML/我的Laravel項目除了主頁

1. 000-default.conf(sites-enabled) 


<VirtualHost *:80> 

    ServerName localhost 

    ServerAdmin [email protected] 
    DocumentRoot /var/www/html/pro/public 

    <Directory /var/www/html/pro/public> 
    Options Indexes +FollowSymLinks 
    AllowOverride All 
    Require all granted 
    </Directory> 

    ErrorLog ${APACHE_LOG_DIR}/error.log 
    CustomLog ${APACHE_LOG_DIR}/access.log combined 

</VirtualHost> 


2. apache2.conf 



Mutex file:${APACHE_LOCK_DIR} default 
    PidFile ${APACHE_PID_FILE} 
    Timeout 300 
    KeepAlive On 
    MaxKeepAliveRequests 100 
    KeepAliveTimeout 5 
    User ${APACHE_RUN_USER} 
    Group ${APACHE_RUN_GROUP} 
    HostnameLookups Off 

    ErrorLog ${APACHE_LOG_DIR}/error.log 

    LogLevel warn 

    IncludeOptional mods-enabled/*.load 
    IncludeOptional mods-enabled/*.conf 

    Include ports.conf 

    <Directory /> 
    Options FollowSymLinks 
    AllowOverride None 
    Require all denied 
    </Directory> 

    <Directory /usr/share> 
    AllowOverride None 
    Require all granted 
    </Directory> 

    <Directory /var/www/html/> 
    Options Indexes FollowSymLinks 
    AllowOverride None 
    Require all granted 
    </Directory> 

    AccessFileName .htaccess 

    <FilesMatch "^\.ht"> 
    Require all denied 
    </FilesMatch> 

    IncludeOptional conf-enabled/*.conf 
    IncludeOptional sites-enabled/*.conf 
    Include /etc/phpmyadmin/apache.conf 

    3 .htaccess (/var/www/html/pro/public/.htaccess) 



<IfModule mod_rewrite.c> 
    <IfModule mod_negotiation.c> 
     Options -MultiViews 
    </IfModule> 
    RewriteEngine On 
    RewriteBase /var/www/html/pro/public/ 

    # 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

您是否通過本cmd :: php artisan serve爲您服務laravel項目? –

+0

@GauravGupta是的,我發佈這個問題本身之前做到了!這是唯一的原因,我可以看到我的主頁運行,沒有別的 – acaman

回答

0

您的所有路線將在index.php後可用,我的意思是如果您的路線的網址是abc,那麼它將打開爲http://localhost/index.php/abc。現在您不需要更改.htacesss文件中的任何內容。

轉到你的項目的根並給讀寫執行權限,使laravel將能夠緩存裏面引導/緩存目錄,並能夠創造內部存儲/日誌,你的日誌文件目錄中的文件。

sudo chmod -R 777 bootstrap/cache 
sudo chmod -R 777 storage/logs 

如果您的項目之後也沒有運行,那麼有時候您還需要給予此權限。

sudo chmod -R 777 vendor/ storage/ 

運行這三個命令後

sudo a2ensite 000-default.conf 
sudo a2enmod rewrite 
sudo service apache2 restart 

你的路線應該本地主機後送達。

希望這會有所幫助:)

+0

那有幫助:) – acaman

+0

很高興幫助:) – Vikash

+0

upvote這個答案也可以幫助別人也因爲它是一個共同的問題:P,它可以節省很多時間。我也被困在這麼多次:) – Vikash

0

嘗試給laravel中的存儲和引導文件夾提供讀/寫權限。如果可以的話,還要設置虛擬主機。請參閱here