Laravel в Ubuntu и php7 .4 я вижу только страницу с файлами и папками - PullRequest
0 голосов
/ 06 февраля 2020

В Ubuntu я установил Laravel и PHP. Но когда я набираю ip своего сервера в браузере, я вижу только файлы и папки.

Ubuntu 16.04, php 7.4, apache2

Это моя папка /var/www/html/myproj/:

root@srv:/var/www/html/myproj# ls
CHANGELOG.md  bpl            laradock      routes      webpack.mix.js
README.md     composer.json  package.json  server.php
app           composer.lock  phpunit.xml   storage
artisan       config         public        tests
bootstrap     database       resources     vendor

Что мне еще нужно сделать?


Это laravel .conf файл, который находится в /etc/apache2/sites-available:

<VirtualHost *:80>
    ServerName yourdomain.tld

    ServerAdmin webmaster@localhost
    DocumentRoot /var/www/html/myproj/public

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

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

.htaccess выглядит так:

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

    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]
</IfModule>

Ответы [ 3 ]

2 голосов
/ 06 февраля 2020

Если вы используете Apache2, есть несколько вещей, которые нужно сделать. Сначала попробуйте открыть путь publi c в вашем браузере, например: http://localhost/public

Если проблема остается, убедитесь, что в конфигурации вашего сервера обработан файл .htaccess, это свойство должно быть установлено в конфигурации apache2:

 AllowOverride All

Вот пример с папкой веб-сервера по умолчанию:

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

Как правило, это значение по умолчанию равно None, поэтому измените его на All.

Но, чтобы быть уверенным, что вы можете это сделать, вы должны активировать расширение mod_rewrite, поэтому в терминале linux введите следующее:

sudo a2enmod rewrite
sudo service apache2 restart
0 голосов
/ 06 февраля 2020

Если вы используете nginx, попробуйте настройки ниже:

server {
    listen         80 default_server;
    listen         [::]:80 default_server;
    server_name    example.com www.example.com;
    root           /var/www/html/myproj/public;
}
0 голосов
/ 06 февраля 2020

настройте файл nginx vhost в папку point / publi c, а также добавьте laravel правило перезаписи в файл vhost

...