【问题标题】:Nothing accessible in my Laravel project except the home page除了主页,我的 Laravel 项目中没有任何可访问的内容
【发布时间】:2018-03-22 17:45:46
【问题描述】:

过去 3 天一直在寻找有关在我的运行 apache 2.4 的 linux mint 18.2 系统上配置 laravel 5.4 的信息。当apache服务器启动并且我在浏览器中手动输入localhost时,它确实显示了laravel的默认主页,但是当我尝试通过括号中的实时预览访问它时(实时预览基本网址:http://localhost作为我的laravel项目pro 位于 /var/www/html/) 但它会引发与我的 apache 配置中的错误相对应的内部服务器错误。所以在这里我提出了我的 .htaccess 文件,000-default.conf 文件在 apache2 的启用站点目录中和apache2.conf 文件: 一件重要的事情:我的项目文件夹 pro 位于 /var/www/html/

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


<VirtualHost *:80>

    ServerName localhost

    ServerAdmin webmaster@localhost
    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>

先谢谢你!

【问题讨论】:

  • 你有没有通过这个 cmd :: php artisan serve 为你的 laravel 项目服务?
  • @GauravGupta 是的,我在发布这个问题之前就这样做了!这就是我可以看到我的主页正在运行的唯一原因

标签: laravel lamp apache2.4


【解决方案1】:

你的所有路由在 index.php 之后都可用,我的意思是如果你的路由的 url 是 abc,那么它将以http://localhost/index.php/abc 打开。现在您无需更改 .htacesss 文件中的任何内容。

进入你的项目根目录并赋予读写执行权限,以便 laravel 能够将文件缓存在 bootstrap/cache 目录中,并能够在 storage/ 中创建日志文件日志目录。

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

您的路线应该在 localhost 之后提供。

希望这会有所帮助:)

【讨论】:

  • 确实有帮助:)
  • 很高兴为您提供帮助:)
  • 也支持这个答案,它也可能对其他人有所帮助,因为这是一个常见问题:P,它可以节省大量时间。我也被困了很多次:)
【解决方案2】:

尝试在 laravel 中为您的 storage 和 bootstrap 文件夹授予读/写权限。如果可以的话,还要设置虚拟主机。参考here

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2012-09-30
    • 1970-01-01
    • 1970-01-01
    • 2015-10-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多