#php #laravel
#php #laravel
Вопрос:
Я уже некоторое время разрабатываю свой проект на своем локальном компьютере (Windows), и теперь, когда я попытался перенести его на свой тестовый сервер (Linux) Я получаю ошибки о файлах, которые все еще ссылаются на путь к моей локальной машине. Я пытаюсь выяснить, как я могу очистить его или установить для него новый, правильный путь.
Все команды artisan немедленно выдают ошибку во время composer du/install/update
работы до Generating optimized autoload files
. В дополнение к тому, что composer du
я пробовал php artisan cache:clear
. Все это выдает одну и ту же ошибку.
Вот ошибка, которую он выдает, а также файл, из которого исходит ошибка:
Заранее спасибо, это очень ценится.
Комментарии:
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. Пожалуйста, добавьте все подобные объяснения в ответ, а не в раздел комментариев. Кроме того, объясните, как это связано с вопросом — взгляните на ответ, который Чарл дал на свой собственный вопрос