изменить laravel пользователя createDirectory с root пользователя другим пользователем - PullRequest
0 голосов
/ 18 января 2020

на моем сервере Ubuntu у меня есть пользователь web3, а на моем сайте с laravel у меня есть код ниже для создания каталога

Storage::disk('products')->makeDirectory($media_dist, 0755, true);

и владелец каталога web3, но когда он создает каталог, у него есть root пользователь

Я хочу знать, как это могло произойти, и у него есть root пользователь.

как я могу изменить чтобы создать каталог с владельцем web3?

Ответы [ 2 ]

0 голосов
/ 18 января 2020

Если вы хотите создать каталог в папке хранилища, вы можете использовать фасад «Файл» вместо «Хранение». Сделайте что-то вроде этого:

$storage_path = storage_path('app') . DIRECTORY_SEPARATOR .
    'public' . DIRECTORY_SEPARATOR . 'images';
if(!File::exists($storage_path)) {
    File::makeDirectory($storage_path, 0755, true, true);
}

Этот фрагмент кода работает для меня также для Linux и Windows. Лучше всего сделать пользователя «web3» владельцем «storage / ...» всего один раз и быть уверенным в последующих каталогах внутри него.

sudo chown -R web3: хранилище web3 /

Это позволит пользователю web3 работать с журналами и laravel кешами, без ошибок разрешения. Таким образом, для каждой новой директории вы можете работать с ними.

ПРИМЕЧАНИЕ Не меняйте режим разрешений для любой папки в laravel и не используйте команду "chmod" (особенно 775 или даже 777). Это небезопасно.

Дополнительно: Используйте эту команду, чтобы создать ярлык как "public / storage / ...", связанный с "storage / public / app /..."

php Ремесленник: ссылка

0 голосов
/ 18 января 2020

Перейдите в каталог Larvel

sudo chown web3:web3 /location_to_your_project/storage/

sudo chgrp -R web3 storage bootstrap/cache

sudo chmod -R ug+rwx storage bootstrap/cache
...