Laravel On Ubuntu And Php7.4 I Can See Only Page With Files And Folders

- 1 answer

On Ubuntu I've installed Laravel and PHP. But when I type ip of my server in the browser I can see only files and folders.

Ubuntu 16.04, php 7.4, apache2

This is my folder /var/www/html/myproj/:

[email protected]:/var/www/html/myproj# ls  bpl            laradock      routes      webpack.mix.js     composer.json  package.json  server.php
app           composer.lock  phpunit.xml   storage
artisan       config         public        tests
bootstrap     database       resources     vendor

What I have to do yet?

This is laravel.conf file that is in /etc/apache2/sites-available:

<VirtualHost *:80>
    ServerName yourdomain.tld

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

    <Directory /var/www/html/myproj>
        AllowOverride All
            Require ip xxx.xx.xx.xx

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

.htaccess looks like this:

<IfModule mod_rewrite.c>
    <IfModule mod_negotiation.c>
        Options -MultiViews -Indexes

    RewriteEngine On

    # Handle Authorization Header
    RewriteCond %{HTTP:Authorization} .
    RewriteRule .* - [E=HTTP_AUTHORIZATION:%{HTTP:Authorization}]

    # Redirect Trailing Slashes If Not A Folder...
    RewriteCond %{REQUEST_FILENAME} !-d
    RewriteCond %{REQUEST_URI} (.+)/$
    RewriteRule ^ %1 [L,R=301]

    # Handle Front Controller...
    RewriteCond %{REQUEST_FILENAME} !-d
    RewriteCond %{REQUEST_FILENAME} !-f
    RewriteRule ^ index.php [L]


Assuming you are using Apache2, there are several things to do. First, try to open the public path in your browser, for example : http://localhost/public

If the problem remains, verify in your server configuration that .htaccess file are handled, this property must be set in the apache2 configuration :

 AllowOverride All

Here is an example with the default web server folder :

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

In general this value is set to None by default, so change it to All.

But, to be sure you can do that, you must have activated the mod_rewrite extension, so in linux terminal type this :

sudo a2enmod rewrite
sudo service apache2 restart