Я попытался развернуть приложение Laravel в gcloud, выполнив следующие шаги: руководство, но выдает эту ошибку There is no existing directory at "/user/home/appname/storage/logs" and its not buildable: Permission denied, и этот каталог находится на моей машине

Я отредактировал свой composer.json следующим образом

"scripts": {
    "post-autoload-dump": [
        "Illuminate\\Foundation\\ComposerScripts::postAutoloadDump",
        "@php artisan optimize:clear",            
        "@php artisan package:discover --ansi"
    ],
    "post-root-package-install": [
        "@php -r \"file_exists('.env') || copy('.env.example', '.env');\""
    ],
    "post-install-cmd": [
    "Illuminate\\Foundation\\ComposerScripts::postInstall",
    "php artisan optimize"
    ],
    "gcp-build": [
                    "composer install --no-dev"
                ],
    "post-deploy-cmd": [
    "chmod -R 755 bootstrap\/cache",
    "php artisan cache:clear",
    "php artisan config:clear",
    "chmod -R 755 storage\/logs"  ],
    "post-create-project-cmd": [
        "@php artisan key:generate --ansi"
    ]
}

Он дает следующую ошибку в середине сборки gcloud app deploy

Step #1: Generating optimized autoload files
Step #1: > Illuminate\Foundation\ComposerScripts::postAutoloadDump
Step #1: > @php artisan optimize:clear
Step #1: 
Step #1: In StreamHandler.php line 172:
Step #1:                                                                                
Step #1:   There is no existing directory at "/home/brehan/work/gothired/got_hired/sto  
Step #1:   rage/logs" and its not buildable: Permission denied                          
Step #1:                                                                                
Step #1: 
Step #1: > @php artisan package:discover --ansi
Step #1: 
Step #1: In StreamHandler.php line 172:
Step #1:                                                                                
Step #1:   There is no existing directory at "/home/user/appname/sto  
Step #1:   rage/logs" and its not buildable: Permission denied                          
Step #1:                                                                                
Step #1: 
Step #1: > Illuminate\Foundation\ComposerScripts::postInstall
Step #1: > php artisan optimize
Step #1: 
Step #1: In StreamHandler.php line 172:
Step #1:                                                                                
Step #1:   There is no existing directory at "/home/brehan/work/gothired/got_hired/sto  
Step #1:   rage/logs" and its not buildable: Permission denied 
1
Brehan Mohamed 28 Дек 2019 в 17:35
2
chmod -R 775 storage и, возможно, chown stackoverflow.com/a/23412543/4705339
 – 
senty
28 Дек 2019 в 18:24
Убедитесь, что у пользователя, которого вы используете для выполнения сборки, есть необходимые разрешения для папки. Это проблема с разрешениями на вашем локальном компьютере, которую можно решить с помощью комментария выше.
 – 
rsalinas
30 Дек 2019 в 11:57

1 ответ

Пожалуйста, попробуйте следующие команды

php artisan route:clear

php artisan config:clear

php artisan cache:clear

Вам не нужно добавлять какие-либо разрешения для файла хранилища.

  • Основная проблема здесь в скомпилированном файле, из-за чего laravel пытается показать ошибку.
  • По умолчанию в laravel файл хранилища не имеет разрешения на отображение в консоли (ошибка отображается в файле error.log).
  • Итак, вам нужно исправить файл компиляции. что можно сделать с помощью этой единственной команды

Эта команда очистит весь ваш кеш

- Compiled views
- Application cache
- Route cache
- Configuration cache

Использовать это

php artisan optimize: очистить

0
Dilip Hirapara 28 Дек 2019 в 17:43