2017-10-11 13 views
0

私のlinux mint 18.2システムでlaravel 5.4を設定する方法について過去3日間を探していました。 apacheサーバーが起動してブラウザにlocalhostを手動で入力すると、laravelのデフォルトホームページが表示されますが、ライブプレビューを通じてブラケットにアクセスしようとすると(live preview base url:http://localhost laravel project pro lies/var/www/html /)にありますが、私のApache設定のエラーに対応する内部サーバーエラーがスローされます。ここで私の.htaccessファイル、000-default.confファイルをapache2とapache2のサイト対応ディレクトリに入れます。 CONFファイル: 一つ重要なこと:私は、/ var/www/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であなたにサービスを提供しましたか? –

+0

@GauravGuptaはい私はこの質問自体を投稿する前にそれをしました!それは助けてくれた – acaman

答えて

0

すべてのルートはindex.phpの後に表示されます。ルートのURLが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/ 

あなたのルートがlocalhostの後に提供されなければならないこと

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

後にこれらの3つのコマンドを実行します。

希望します。

+0

のホームページを見ることができる唯一の理由です。 – acaman

+0

助けてくれて嬉しいです。 – Vikash

+0

upvoteこの回答も共通の問題として他人に役立つかもしれません:P、たくさん保存できます時間。私はまた、これこんなに多くの時間に立ち往生した:) – Vikash

0

laravelのストレージとブートストラップフォルダに読み取り/書き込み権限を与えてください。また、仮想ホストを設定することもできます。 hereを参照してください。

関連する問題