2017-10-11 48 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