Laravel по-русски

Русское сообщество разработки на PHP-фреймворке Laravel.

Ты не вошёл. Вход тут.

#1 24.12.2018 19:41:45

Магия при установке

Всем доброго времени суток!  Устанавливаю ларавел.
Версия Laravel: 5.3
Версия PHP: 7.2 и 7.3
Операционная система и её версия: Linux Debian
Вендор и версия Веб-сервера: Apache/2.4.37

Задача, что должно происходить _в целом_, техническое задание:
    // Запуск welcome страницы
Что произошло, текст ошибки, если есть:
    // В браузере белый экран после установки. Ошибок нет.
Чего вы ожидали получить:
    // Хочу получить отображение страницы, но  браузер ничего не выдает.
Варианты/догадки, почему это произошло:
    // Какая-то магия
Пробую запустить в терминале и оЧудо: выдает мне исходный код страницы.
После этого запускаю в браузере запускается тоже.
Пробовал так 2 раза, что бы точно узнать, что причина в этом.
Объясните, пожалуйста. В терминале php 7.3, в браузере 7.2

Не в сети

#2 25.12.2018 07:25:35

Re: Магия при установке

Что ты называешь "запустить в терминале". Ты запрашиваешь 80 порт в телнете или ты запускаешь какую-нибудь команду artisan?
Предполагаю второе, потому что пишешь о разницах в версиях (cli и mod_php?). Так какие именно команды ты даёшь в терминале расскажи, это может иметь значение.


There are two hard things in computer science: cache invalidation, naming things, and off-by-one errors.

Не в сети

#3 25.12.2018 12:25:23

Re: Магия при установке

Нет, просто запускаю индекс, что и в браузере.

php public/index.php

Не в сети

#4 25.12.2018 12:38:45

Re: Магия при установке

Я вчера хорошо в этом разобрался. Фишка в том, что ларавел не может записать логи из-за отсутствия прав на запись, но ошибку он мне не выдавал в окно браузера, поэтому я и решил запустить скрипт в консоле.
В случае, если я запускаю в браузере, то в логах апача та самая ошибка, описанная выше.

[Tue Dec 25 04:37:19.134650 2018] [php7:error] [pid 20252] [client 127.0.0.1:59706] PHP Fatal error:  Uncaught UnexpectedValueException: The stream or file "/var/www/events.com/public_html/quickstart/storage/logs/laravel.log" could not be opened: failed to open stream: Permission denied in /var/www/events.com/public_html/quickstart/vendor/monolog/monolog/src/Monolog/Handler/StreamHandler.php:87\nStack trace:\n#0 /var/www/events.com/public_html/quickstart/vendor/monolog/monolog/src/Monolog/Handler/AbstractProcessingHandler.php(37): Monolog\\Handler\\StreamHandler->write(Array)\n#1 /var/www/events.com/public_html/quickstart/vendor/monolog/monolog/src/Monolog/Logger.php(289): Monolog\\Handler\\AbstractProcessingHandler->handle(Array)\n#2 /var/www/events.com/public_html/quickstart/vendor/monolog/monolog/src/Monolog/Logger.php(565): Monolog\\Logger->addRecord(400, Object(UnexpectedValueException), Array)\n#3 /var/www/events.com/public_html/quickstart/vendor/laravel/framework/src/Illuminate/Log/Writer.php(202): Monolog\\Logger->error(Object(UnexpectedValueException), Array)\n#4 /var/www/events.com/public_html/quickstart/vendor in /var/www/events.com/public_html/quickstart/vendor/monolog/monolog/src/Monolog/Handler/StreamHandler.php on line 87, referer: [url]http://events.com/quickstart/public/[/url]

Но стоит запустить в консоле, то выводит

php public/index.php
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="utf-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1">

    <title>Laravel Quickstart - Basic</title>

    <!-- Fonts -->
    <link href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/4.4.0/css/font-awesome.min.css" rel='stylesheet' type='text/css'>
    <link href="https://fonts.googleapis.com/css?family=Lato:100,300,400,700" rel='stylesheet' type='text/css'>

    <!-- Styles -->
    <link href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.6/css/bootstrap.min.css" rel="stylesheet">
    
    <style>
        body {
            font-family: 'Lato';
        }

        .fa-btn {
            margin-right: 6px;
        }
    </style>
</head>
<body id="app-layout">
    <nav class="navbar navbar-default">
        <div class="container">
            <div class="navbar-header">

                <!-- Branding Image -->
                <a class="navbar-brand" href="http://:">
                    Task List
                </a>
            </div>

        </div>
    </nav>

        <div class="container">
        <div class="col-sm-offset-2 col-sm-8">
            <div class="panel panel-default">
                <div class="panel-heading">
                    New Task
                </div>

                <div class="panel-body">
                    <!-- Display Validation Errors -->
                    
                    <!-- New Task Form -->
                    <form action="http://:/task" method="POST" class="form-horizontal">
                        <input type="hidden" name="_token" value="g1BMPIMy8syWiXTDf4jSOvsST4sn8OcF3TMkklCm">

                        <!-- Task Name -->
                        <div class="form-group">
                            <label for="task-name" class="col-sm-3 control-label">Task</label>

                            <div class="col-sm-6">
                                <input type="text" name="name" id="task-name" class="form-control" value="">
                            </div>
                        </div>

                        <!-- Add Task Button -->
                        <div class="form-group">
                            <div class="col-sm-offset-3 col-sm-6">
                                <button type="submit" class="btn btn-default">
                                    <i class="fa fa-btn fa-plus"></i>Add Task
                                </button>
                            </div>
                        </div>
                    </form>
                </div>
            </div>

            <!-- Current Tasks -->
                    </div>
    </div>

    <!-- JavaScripts -->
    <script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/2.1.4/jquery.min.js"></script>
    <script src="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.6/js/bootstrap.min.js"></script>
    </body>
</html>

Это та самая, всем знакомая домашняя страница по умолчанию после установки.
После ее запуска все начинает работать, хотя прав на запись я не давал
Никаких комманд, типо этой:

sudo chmod -R 755 /var/www

я не запускал.

Не в сети

#5 25.12.2018 17:07:35

Re: Магия при установке

Диагноз: Твой веб-скрипт работает под другой учеткой, чем ты используешь в консоли. Надо не только chmod-ом пользоваться, но и chown-ом! И никогда не запускать скрипты от рута.
Проверь, скорее всего твой апачи или энжинекс работают под учеткой www-data. Ну или vagrant, если ты homestead используешь.

Поправь владельца рекурсивно для всего приложения, короче.

Изменено artoodetoo (25.12.2018 17:08:19)


There are two hard things in computer science: cache invalidation, naming things, and off-by-one errors.

Не в сети

Подвал раздела