Мне нужно перенести проект Laravel из ПРОДАКЦИИ в разработку (localhost)

У меня есть задача реализовать новые функции в старом рабочем проекте Laravel. Проблема в том, что нет технической поддержки, которая могла бы сказать мне, как ее запустить. Никакой документации или readme. У меня мало опыта работы с Laravel, поэтому вот что я сделал. Я загрузил весь проект, включая файл .env, по FTP и поместил его в htdocs XAMPP, запустил Apache и MySQL. Я запускаю установку npm, установку композитора, импортирую БД в localhost/phpmyadmin. Я выполнил миграцию php artisan. Затем php artisan db:seed (это заняло слишком много времени, 8-10 минут, а размер базы данных - 16 МБ), но без ошибок. Когда я запускаю сервер, я получаю сообщение Сервер разработки Laravel запущен: http://127.0.0.1:8000 но всегда появляется ошибка: Упс, похоже, что-то пошло не так. В консоли Не удалось загрузить ресурс: сервер ответил со статусом 500 (внутренняя ошибка сервера). Думаю, не удалось создать соединение с БД. Кроме того, когда я попробовал установить npm, у меня появилось много ошибок, но мне удалось их исправить, используя более старую версию Node.

Пожалуйста, помогите мне запустить проект.

Tech. info
Laravel Framework 5.4.36
Node version: 12.12.12
PHP version: 7.3.0

композитор.json

{
    "name": "laravel/laravel",
    "description": "The Laravel Framework.",
    "keywords": ["framework", "laravel"],
    "license": "MIT",
    "type": "project",
    "require": {
        "php": ">=5.6.4",
        "dimsav/laravel-translatable": "7.*",
        "geoip2/geoip2": "~2.0",
        "intervention/image": "^2.4",
        "laravel/framework": "5.4.*",
        "laravel/tinker": "~1.0",
        "laravelcollective/html": "^5.2.0",
        "maatwebsite/excel": "~2.1.0",
        "matthiasmullie/minify": "^1.3",
        "mockery/mockery": "0.9.*",
        "torann/geoip": "^1.0"
    },
    "require-dev": {
        "fzaninotto/faker": "~1.4",
        "mockery/mockery": "0.9.*",
        "phpunit/phpunit": "~5.7"
    },
    "autoload": {
        "classmap": [
            "database"
        ],
        "psr-4": {
            "App\\": "app/"
        },
        "files": [
            "app/Http/Helpers.php"
        ]
    },
    "autoload-dev": {
        "psr-4": {
            "Tests\\": "tests/"
        }
    },
    "scripts": {
        "post-root-package-install": [
            "php -r \"file_exists('.env') || copy('.env.example', '.env');\""
        ],
        "post-create-project-cmd": [
            "php artisan key:generate"
        ],
        "post-install-cmd": [
            "Illuminate\\Foundation\\ComposerScripts::postInstall",
            "php artisan optimize"
        ],
        "post-update-cmd": [
            "Illuminate\\Foundation\\ComposerScripts::postUpdate",
            "php artisan optimize"
        ],
    "post-autoload-dump": [
        "Illuminate\\Foundation\\ComposerScripts::postAutoloadDump",
        "@php artisan package:discover"
    ]
    },
    "config": {
        "preferred-install": "dist",
        "sort-packages": true
    }
}

Когда я пытаюсь открыть http://127.0.0.1:8000/, я все равно получаю сообщение «Упс, похоже, что-то пошло не так». Я включил режим отладки, очистил кеш и получил эти ошибки. Что их вызывает? Проект исходит непосредственно из действующего производства.

Упс, похоже, что-то пошло не так. И в режиме DEBUG эти ошибки

    (2/2) ErrorException
Undefined index: 127.0.0.1 (View: D:\DEV\XAMPP\htdocs\BeShared\resources\views\front\home_2023.blade.php)

in d3187463eae345eb4dbf0390f4d742b104703265.php line 27
at CompilerEngine->handleViewException(object(ErrorException), 1)
in PhpEngine.php line 44
at PhpEngine->evaluatePath('D:\\DEV\\XAMPP\\htdocs\\BeShared\\storage\\framework\\views/d3187463eae345eb4dbf0390f4d742b104703265.php', array('__env' => object(Factory), 'app' => object(Application), 'errors' => object(ViewErrorBag), 'canonical' => 'http://127.0.0.1:8000', 'services' => object(Collection), 'projects' => object(Collection), 'news' => object(Collection), 'current_page' => 'index', 'current_subpage' => 'home', 'request' => object(Request), 'admin' => null, 'pages_header' => object(Collection), 'pages_footer' => object(Collection), 'seo_og_type' => 'article', 'seo_title' => 'Full Service Digital Agency | BeShared', 'seo_description' => 'Lorem Ipsum is simply dummy text of the printing and typesetting industry.', 'social_image' => 'http://127.0.0.1:8000/img/logo-social.jpg', 'footer_logos' => object(Collection), 'career_positions' => object(Collection), 'all_services' => object(Collection), 'cache_buster' => '20200411', 'currentDomain' => array('lang' => 'en', 'phone' => '+39 320 294 8061', 'phone_link' => '+393202948061', 'country' => 'United Kingdom', 'tawkto' => array('property' => '5bdc5798a5b4b877204268cb', 'widget' => 'default'), 'show_in_header_langs' => true, 'show_for_domain' => array('beshared.bg', 'beshared.eu'), 'currentLink' => 'https://beshared.eu', 'active' => true, 'hreflang' => 'en')))
in CompilerEngine.php line 59
at CompilerEngine->get('D:\\DEV\\XAMPP\\htdocs\\BeShared\\resources\\views/front/home_2023.blade.php', array('__env' => object(Factory), 'app' => object(Application), 'errors' => object(ViewErrorBag), 'canonical' => 'http://127.0.0.1:8000', 'services' => object(Collection), 'projects' => object(Collection), 'news' => object(Collection), 'current_page' => 'index', 'current_subpage' => 'home', 'request' => object(Request), 'admin' => null, 'pages_header' => object(Collection), 'pages_footer' => object(Collection), 'seo_og_type' => 'article', 'seo_title' => 'Full Service Digital Agency | BeShared', 'seo_description' => 'Lorem Ipsum is simply dummy text of the printing and typesetting industry.', 'social_image' => 'http://127.0.0.1:8000/img/logo-social.jpg', 'footer_logos' => object(Collection), 'career_positions' => object(Collection), 'all_services' => object(Collection), 'cache_buster' => '20200411', 'currentDomain' => array('lang' => 'en', 'phone' => '+39 320 294 8061', 'phone_link' => '+393202948061', 'country' => 'United Kingdom', 'tawkto' => array('property' => '5bdc5798a5b4b877204268cb', 'widget' => 'default'), 'show_in_header_langs' => true, 'show_for_domain' => array('beshared.bg', 'beshared.eu'), 'currentLink' => 'https://beshared.eu', 'active' => true, 'hreflang' => 'en')))
in View.php line 137


(1/2) ErrorException
Undefined index: 127.0.0.1

in d3187463eae345eb4dbf0390f4d742b104703265.php line 27
at HandleExceptions->handleError(8, 'Undefined index: 127.0.0.1', 'D:\\DEV\\XAMPP\\htdocs\\BeShared\\storage\\framework\\views\\d3187463eae345eb4dbf0390f4d742b104703265.php', 27, array('__path' => 'D:\\DEV\\XAMPP\\htdocs\\BeShared\\storage\\framework\\views/d3187463eae345eb4dbf0390f4d742b104703265.php', '__data' => array('__env' => object(Factory), 'app' => object(Application), 'errors' => object(ViewErrorBag), 'canonical' => 'http://127.0.0.1:8000', 'services' => object(Collection), 'projects' => object(Collection), 'news' => object(Collection), 'current_page' => 'index', 'current_subpage' => 'home', 'request' => object(Request), 'admin' => null, 'pages_header' => object(Collection), 'pages_footer' => object(Collection), 'seo_og_type' => 'article', 'seo_title' => 'Full Service Digital Agency | BeShared', 'seo_description' => 'Lorem Ipsum is simply dummy text of the printing and typesetting industry.', 'social_image' => 'http://127.0.0.1:8000/img/logo-social.jpg', 'footer_logos' => object(Collection), 'career_positions' => object(Collection), 'all_services' => object(Collection), 'cache_buster' => '20200411', 'currentDomain' => array('lang' => 'en', 'phone' => '+39 320 294 8061', 'phone_link' => '+393202948061', 'country' => 'United Kingdom', 'tawkto' => array('property' => '5bdc5798a5b4b877204268cb', 'widget' => 'default'), 'show_in_header_langs' => true, 'show_for_domain' => array('beshared.bg', 'beshared.eu'), 'currentLink' => 'https://beshared.eu', 'active' => true, 'hreflang' => 'en')), 'obLevel' => 1, '__env' => object(Factory), 'app' => object(Application), 'errors' => object(ViewErrorBag), 'canonical' => 'http://127.0.0.1:8000', 'services' => object(Collection), 'projects' => object(Collection), 'news' => object(Collection), 'current_page' => 'index', 'current_subpage' => 'home', 'request' => object(Request), 'admin' => null, 'pages_header' => object(Collection), 'pages_footer' => object(Collection), 'seo_og_type' => 'article', 'seo_title' => 'Full Service Digital Agency | BeShared', 'seo_description' => 'Lorem Ipsum is simply dummy text of the printing and typesetting industry.', 'social_image' => 'http://127.0.0.1:8000/img/logo-social.jpg', 'footer_logos' => object(Collection), 'career_positions' => object(Collection), 'all_services' => object(Collection), 'cache_buster' => '20200411', 'currentDomain' => array('lang' => 'en', 'phone' => '+39 320 294 8061', 'phone_link' => '+393202948061', 'country' => 'United Kingdom', 'tawkto' => array('property' => '5bdc5798a5b4b877204268cb', 'widget' => 'default'), 'show_in_header_langs' => true, 'show_for_domain' => array('beshared.bg', 'beshared.eu'), 'currentLink' => 'https://beshared.eu', 'active' => true, 'hreflang' => 'en')))
in d3187463eae345eb4dbf0390f4d742b104703265.php line 27

Также из-за установки композитора я получаю сообщение: «Нечего устанавливать», но затем возникает какая-то ошибка. Может быть вот в чем проблема:

 composer install
Installing dependencies from lock file (including require-dev)
Verifying lock file contents can be installed on current platform.
Nothing to install, update or remove
Package phpoffice/phpexcel is abandoned, you should avoid using it. Use phpoffice/phpspreadsheet instead.
Generating autoload files
Method Illuminate\Foundation\ComposerScripts::postAutoloadDump is not callable, can not call post-autoload-dump script
> @php artisan package:discover


  There are no commands defined in the "package" namespace.


Script @php artisan package:discover handling the post-autoload-dump event returned with error code 1

откройте файл .env и измените APP_ENV=production на APP_ENV=local, что выведет приложение из производственного режима и поможет в отладке. Я бы рекомендовал запустить php artisan serve в вашей оболочке вместо использования xampp, поскольку Laravel в основном обслуживается из каталога public, и у xampp могут возникнуть проблемы с этим. Затем узнайте больше о Laravel, поскольку он не предназначен для запуска из общедоступного корня сети, что может сбить с толку и затруднить работу тех, кто не знаком с Laravel; есть некоторая кривая обучения...

timgavin 11.08.2024 19:16

Я считаю, что .env уже настроен для dev APP_ENV=local APP_KEY=base64:fQodpEiTOej5yAYMHWVsV0jvssbgTXbbYa8DN0= APP_DEBUG=false APP_LOG_LEVEL=debug APP_URL=localhost DB_CONNECTION=mysql .0.0.1 DB_PORT=3306 DB_DATABASE=soci15sm_newsite DB_USERNAME=soci15sm_newsite DB_PASSWORD =socipassword BROADCAST_DRIVER=журнал CACHE_DRIVER=массив SESSION_DRIVER=файл QUEUE_DRIVER=sync REDIS_HOST=127.0.0.1 REDIS_PASSWORD=null REDIS_PORT=6379 MAIL_DRIVER=smtp MAIL_HOST=mailtrap.io MAIL_PORT=2525

Simba 11.08.2024 21:02

Измените на APP_DEBUG=true

timgavin 11.08.2024 21:27

Спасибо. После удаления кеша я вижу ошибки после APP_DEBUG=true, но мне все еще интересно, что их вызывает. Вы можете проверить ошибки выше.

Simba 12.08.2024 11:13

перейдите к serviceController и найдите переменную оператора, попробуйте отладить с помощью dd($operator); и добавьте то, что вы нашли, в комментарий

Muhammad Sajidul Islam 12.08.2024 12:29

Переменная $operator не найдена в ServicesController

Simba 12.08.2024 14:36

Ваш код compact('type', 'operator', 'query', 'boolean'). Метод Compact() принимает переданные ему строки и генерирует массив из этих строк и связанных с ними переменных. Эквивалентный (и предпочтительный способ, т. е. не использовать compact()) — написать ['type' => $type, 'operator' => $operator, 'query' => $query, 'boolean' => $boolean]. Если какая-либо из этих четырех переменных отсутствует в вашем коде до вызова compact(), вы получите ошибку, которую видите. Однако вам нужно отладить свой код и справиться с этим 🙂

Tim Lewis 12.08.2024 22:16

не уверен, поможет это или нет, но, возможно, вы захотите что-то сделать в будущем. Несколько лет назад я был главой проекта Laravel, и я столкнулся с аналогичной проблемой, поэтому, чтобы помешать мне выполнять задачу, которую вы выполняете каждый раз, когда мне нужно было реализовать новую функцию, я использовал Git в качестве контроллера версий и средства развертывания. Я также использовал выделенную машину в качестве искусственной среды для тестирования. - Запускайте все обновления и контроль версий через Git. - Запускайте все в созданной среде, «зеркальной» производственной среде (сейчас я бы это сделал с помощью виртуальной машины).

PHPmaker 14.08.2024 08:34
Стоит ли изучать PHP в 2023-2024 годах?
Стоит ли изучать PHP в 2023-2024 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Symfony Station Communiqué - 7 июля 2023 г
Symfony Station Communiqué - 7 июля 2023 г
Это коммюнике первоначально появилось на Symfony Station .
Оживление вашего приложения Laravel: Понимание режима обслуживания
Оживление вашего приложения Laravel: Понимание режима обслуживания
Здравствуйте, разработчики! В сегодняшней статье мы рассмотрим важный аспект управления приложениями, который часто упускается из виду в суете...
Установка и настройка Nginx и PHP на Ubuntu-сервере
Установка и настройка Nginx и PHP на Ubuntu-сервере
В этот раз я сделаю руководство по установке и настройке nginx и php на Ubuntu OS.
Коллекции в Laravel более простым способом
Коллекции в Laravel более простым способом
Привет, читатели, сегодня мы узнаем о коллекциях. В Laravel коллекции - это способ манипулировать массивами и играть с массивами данных. Благодаря...
Как установить PHP на Mac
Как установить PHP на Mac
PHP - это популярный язык программирования, который используется для разработки веб-приложений. Если вы используете Mac и хотите разрабатывать...
1
8
105
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Я исправил это благодаря моему бывшему коллеге Мишо, который наконец нашел проблему. Кажется, мой проект является многодоменным (мультитенантным), и ему просто нужно было добавить localhost в начало доменов.php Спасибо, Мишо!

"localhost" => [
    'lang' => 'bg',
    'phone' => '+359/878 788 469',
    'phone_link' => '+359/878 788 469',
    'country' => 'Bulgaria',
    'tawkto' => [
"beshared.bg" => [
        'lang' => 'bg',
        'phone' => '+359/878 788 469',
        'phone_link' => '+359/878 788 469',
        'country' => 'Bulgaria',
        'tawkto' => [
            'property' => '5b9a47dbc666d426648ab989',
            'widget' => '1cnmdqpuu',
        ],
        'show_in_header_langs' => false,
        'show_for_domain' => 'beshared.bg',
        'currentLink' => 'https://beshared.bg',
        'active' => true,
        'hreflang' => 'bg-bg',
    ],
    "beshared.eu" => [
        'lang' => 'en',
        'phone' => '+39 320 294 8061',
        'phone_link' => '+393202948061',
        'country' => 'United Kingdom',
        'tawkto' => [
            'property' => '5bdc5798a5b4b877204268cb',
            'widget' => 'default',
        ],
        'show_in_header_langs' => true,
        'show_for_domain' => ['beshared.bg', 'beshared.eu'],
        'currentLink' => 'https://beshared.eu',
        'active' => true,
        'hreflang' => 'en',
    ],
    "it.beshared.eu" => [
        'lang' => 'it',
        'phone' => '+39 320 294 8061',
        'phone_link' => '+393202948061',
        'country' => 'Italy',
        'tawkto' => [
            'property' => '5bdc5798a5b4b877204268cb',
            'widget' => 'default',
        ],
        'show_in_header_langs' => true,
        'show_for_domain' => ['beshared.bg', 'beshared.eu'],
        'currentLink' => 'https://it.beshared.eu',
        'active' => true,
        'hreflang' => 'it',
    ],

Другие вопросы по теме