除了主页,我的 Laravel 项目中没有任何内容可以访问

Nothing accessible in my Laravel project except the home page

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

下找到了我的项目文件夹 pro
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 ^(.*)/$ / [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>

先谢谢你!

尝试授予 read/write 对您的存储空间和 laravel 中的 bootstrap 文件夹的权限。如果可以的话,还要设置虚拟主机。参考 here.

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

转到您的项目根目录并授予读写执行权限,以便laravel能够将文件缓存在bootstrap/cache目录中并能够在 storage/logs 目录中创建日志文件。

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 之后提供。

希望这会有所帮助:)