Set user permissions | Artisan command will not run in code but works fine on command line

后端 未结 2 1945
既然无缘
既然无缘 2020-12-04 01:04

I have a route that is essentially a \"hook\" to run an Artisan command, it accepts some get parameters as arguments:

Route::get(\'hook\', funct         


        
相关标签:
2条回答
  • 2020-12-04 01:44

    You need to set up directory permissions correctly.

    sudo chown -R <YOUR_USERNAME>:www-data <THE_DIRECTORY>

    0 讨论(0)
  • 2020-12-04 01:50

    You can either set permissions to the folder by

    chmod 777 -R /path/to/folder
    

    what you absolutely shouldn't do, as everybody can write and execute everything in this directory afterwards

    or, what I would prefer, you create a new group, let's call it usergroup:

    sudo groupadd usergroup
    

    Now that the group exists, add the two users to it:

    sudo usermod -a -G usergroup <your username>
    sudo usermod -a -G usergroup www-data
    

    Now all that's left is to set the permissions on the directory:

    sudo chgrp -R usergroup /path/to/the/directory
    sudo chmod -R 770 /path/to/the/directory     // <<<<<< change this to 775
    

    Now only members of the usergroup group can read, write, or execute files and folders within the directory. Note the -R argument to the chmod and chgrp commands: this tells them to recurse into every sub directory of the target directory and modify every file and directory available.

    You may also want to change 770 to something like 774 if you want others to be able to read the files, 775 if you want others to read and execute the files, etc. Group assignment changes won't take effect until the users log out and back in.

    In your case, you should definately change it to 775 afterwards...

    0 讨论(0)
提交回复
热议问题