Интересно, как можно улучшить этот bash скрипт для настройки laravel директорий и прав доступа к файлам? - PullRequest
1 голос
/ 28 января 2020

Создано это для прав доступа к файлам для laravel, надоело это делать в терминале.
Группа пользователей для httpd - apache в Fedora.
Написала это bash - поместите в папку моего проекта и кажется, что он работает просто отлично.
Интересно, как я могу сделать это более полезным или меньшим?
Или какие-нибудь идеи для этого.

#! /bin/bash
if [ -f artisan ]; then
    sudo chown -R $USER:apache $PWD
    sudo find $PWD -type f -exec chmod 644 {} \;
    sudo find $PWD -type d -exec chmod 755 {} \;
    sudo chgrp -R apache storage bootstrap/cache
    sudo chmod -R ug+rwx storage bootstrap/cache
    echo "file permissions all set"
else
    echo 'Artisan command does not exist are you in the laravel installation base directory';
fi

1 Ответ

1 голос
/ 28 января 2020

Почему бы не использовать Laravel s Envoy для запуска определенных c подобных задач? Сначала установите Envoy глобально.

composer global require laravel/envoy

Затем создайте файл с именем Envoy.blade. php в каталоге root.

Envoy.blade. php

@setup
    $chmods = [
        'storage',
        'bootstrap/cache',
    ];
@endsetup

@servers(['local' => '127.0.0.1'])

@story('deploy')
    permissions
    finishDeploy
@endstory

@task('permissions')
    @foreach($chmods as $file)
        chmod -R 755 {{ $file }}
        chmod -R g+s {{ $file }}
        chown -R apache:apache {{ $file }};
        echo "Permissions have been set for {{ $file }}."
    @endforeach
    echo "File permissions complete."
@endtask

@task('finishDeploy')
    echo 'Deployment finished successfully!'
@endtask

В Терминале вы можете запустить его с помощью следующей команды.

envoy run deploy
...