Ошибка пути PHP / Laravel при перемещении проекта на тестовый сервер

#php #laravel

#php #laravel

Вопрос:

Я уже некоторое время разрабатываю свой проект на своем локальном компьютере (Windows), и теперь, когда я попытался перенести его на свой тестовый сервер (Linux) Я получаю ошибки о файлах, которые все еще ссылаются на путь к моей локальной машине. Я пытаюсь выяснить, как я могу очистить его или установить для него новый, правильный путь.

Все команды artisan немедленно выдают ошибку во время composer du/install/update работы до Generating optimized autoload files . В дополнение к тому, что composer du я пробовал php artisan cache:clear . Все это выдает одну и ту же ошибку.

Вот ошибка, которую он выдает, а также файл, из которого исходит ошибка:

https://pastebin.com/0dS18UQs

Заранее спасибо, это очень ценится.

Комментарии:

1. У вас есть две проблемы, которые я вижу: Cannot create cache directory /home/202967.cloudwaysapps.com/qjbpthzgsh/.composer/cache/files/, or directory is not writable. . Убедитесь, что вы находитесь в правильном каталоге и что у вас есть доступ на запись к обоим /home/202967.cloudwaysapps.com/qjbpthzgsh/ и /home/202967.cloudwaysapps.com/qjbpthzgsh/.composer , а также ко всем подкаталогам под ним. require(C:appslandlordroutes/breadcrumbs.php) Это поиск каталога Windows вместо каталога Linux. Попробуйте использовать динамическую ссылку вместо жестко запрограммированной ссылки на файл.

2. ваша папка кэша недоступна для записи composer

3. @YAMM Вызовет ли это проблему? Я уже развертывал проекты раньше с этой ошибкой, которая все еще работала нормально.

4. @aynber большое спасибо. Я подозреваю, что в основе проблемы лежит не обновляемый путь Windows, но, похоже, я не могу найти, где я могу обновить путь, который вызывается в ошибке ( require(C:appslandlordroutes/breadcrumbs.php) ).

5. Попробуйте grep -R breadcrumbs.php * из корневого каталога на сервере Linux. Это должно помочь сузить поиск. Вы также можете попробовать grep -R 'C:apps' * посмотреть, жестко ли где-нибудь указан этот путь

Ответ №1:

Кажется, я обнаружил проблему. Каталоги были жестко запрограммированы (я полагаю, Laravel) в bootstrap/cache/config.php файле.

Спасибо всем за помощь.

Комментарии:

1. Отличная работа, Чарл, можешь ли ты проверить свой ответ как ответ ‘the’, пожалуйста?

Ответ №2:

Попробуйте эту команду: sudo chown -R $ USER $HOME/.composer

или попробуйте это

sudo chown -R {user} /home/{user}/.composer/cache/repo/https—packagist.org

Комментарии:

1. Пожалуйста, объясните, почему следует использовать эти команды. Имейте в виду, что другие должны иметь возможность извлечь уроки из вашего ответа

2. @NicoHaase эта команда предоставит пользователю разрешение (сменить владельца), так что текущий пользователь должен иметь все элементы управления в каталоге.

3. Пожалуйста, добавьте все подобные объяснения в ответ, а не в раздел комментариев. Кроме того, объясните, как это связано с вопросом — взгляните на ответ, который Чарл дал на свой собственный вопрос