mkdir(): Permission denied Laravel












2














I'm running the following script for an image upload in a server and getting the following error while it works perfectly on the localhost.



Code



$user_id = Auth::id();
$logicpath = 'userdp/' . $user_id . '/';
$pubpath = 'userdp/' . $user_id . '/' . $dpFile;
$path = '/userdp/' . $user_id . '/' . $dpFile;

if (!file_exists($logicpath)) {
mkdir($logicpath, 0777, true);
}


Error




ErrorException in UploadController.php line 605: mkdir(): Permission
denied



at HandleExceptions->handleError('2', 'mkdir(): Permission denied',
'/var/www/html/laravel/app/Http/Controllers/UploadController.php',
'605', array('dp' => object(UploadedFile), 'ext' => 'jpg', 'img' =>
object(Image), 'mime' => 'image/jpeg', 'width' => '200', 'height' =>
'200', 'fileSize' => '17152', 'dpFile' =>
'f12f298ab18d58a59c4ed8a589cd1cdc.jpg', 'user_id' => '1', 'logicpath'
=> 'userdp/1/', 'pubpath' => 'userdp/1/f12f298ab18d58a59c4ed8a589cd1cdc.jpg', 'path' =>
'/userdp/1/f12f298ab18d58a59c4ed8a589cd1cdc.jpg'))




I tried chmod 777 public and restarted the server. But it didn't work.










share|improve this question


















  • 2




    You should use 755 not 777.
    – Chris Burton
    Sep 7 '15 at 17:38










  • Never ever give 777 permission to your root folder. Its security leak for profession hackers. Please try to bind tight security rules and assign only needed permissions / rights to the group / user.
    – Pratik Soni
    Jun 20 '17 at 12:32
















2














I'm running the following script for an image upload in a server and getting the following error while it works perfectly on the localhost.



Code



$user_id = Auth::id();
$logicpath = 'userdp/' . $user_id . '/';
$pubpath = 'userdp/' . $user_id . '/' . $dpFile;
$path = '/userdp/' . $user_id . '/' . $dpFile;

if (!file_exists($logicpath)) {
mkdir($logicpath, 0777, true);
}


Error




ErrorException in UploadController.php line 605: mkdir(): Permission
denied



at HandleExceptions->handleError('2', 'mkdir(): Permission denied',
'/var/www/html/laravel/app/Http/Controllers/UploadController.php',
'605', array('dp' => object(UploadedFile), 'ext' => 'jpg', 'img' =>
object(Image), 'mime' => 'image/jpeg', 'width' => '200', 'height' =>
'200', 'fileSize' => '17152', 'dpFile' =>
'f12f298ab18d58a59c4ed8a589cd1cdc.jpg', 'user_id' => '1', 'logicpath'
=> 'userdp/1/', 'pubpath' => 'userdp/1/f12f298ab18d58a59c4ed8a589cd1cdc.jpg', 'path' =>
'/userdp/1/f12f298ab18d58a59c4ed8a589cd1cdc.jpg'))




I tried chmod 777 public and restarted the server. But it didn't work.










share|improve this question


















  • 2




    You should use 755 not 777.
    – Chris Burton
    Sep 7 '15 at 17:38










  • Never ever give 777 permission to your root folder. Its security leak for profession hackers. Please try to bind tight security rules and assign only needed permissions / rights to the group / user.
    – Pratik Soni
    Jun 20 '17 at 12:32














2












2








2







I'm running the following script for an image upload in a server and getting the following error while it works perfectly on the localhost.



Code



$user_id = Auth::id();
$logicpath = 'userdp/' . $user_id . '/';
$pubpath = 'userdp/' . $user_id . '/' . $dpFile;
$path = '/userdp/' . $user_id . '/' . $dpFile;

if (!file_exists($logicpath)) {
mkdir($logicpath, 0777, true);
}


Error




ErrorException in UploadController.php line 605: mkdir(): Permission
denied



at HandleExceptions->handleError('2', 'mkdir(): Permission denied',
'/var/www/html/laravel/app/Http/Controllers/UploadController.php',
'605', array('dp' => object(UploadedFile), 'ext' => 'jpg', 'img' =>
object(Image), 'mime' => 'image/jpeg', 'width' => '200', 'height' =>
'200', 'fileSize' => '17152', 'dpFile' =>
'f12f298ab18d58a59c4ed8a589cd1cdc.jpg', 'user_id' => '1', 'logicpath'
=> 'userdp/1/', 'pubpath' => 'userdp/1/f12f298ab18d58a59c4ed8a589cd1cdc.jpg', 'path' =>
'/userdp/1/f12f298ab18d58a59c4ed8a589cd1cdc.jpg'))




I tried chmod 777 public and restarted the server. But it didn't work.










share|improve this question













I'm running the following script for an image upload in a server and getting the following error while it works perfectly on the localhost.



Code



$user_id = Auth::id();
$logicpath = 'userdp/' . $user_id . '/';
$pubpath = 'userdp/' . $user_id . '/' . $dpFile;
$path = '/userdp/' . $user_id . '/' . $dpFile;

if (!file_exists($logicpath)) {
mkdir($logicpath, 0777, true);
}


Error




ErrorException in UploadController.php line 605: mkdir(): Permission
denied



at HandleExceptions->handleError('2', 'mkdir(): Permission denied',
'/var/www/html/laravel/app/Http/Controllers/UploadController.php',
'605', array('dp' => object(UploadedFile), 'ext' => 'jpg', 'img' =>
object(Image), 'mime' => 'image/jpeg', 'width' => '200', 'height' =>
'200', 'fileSize' => '17152', 'dpFile' =>
'f12f298ab18d58a59c4ed8a589cd1cdc.jpg', 'user_id' => '1', 'logicpath'
=> 'userdp/1/', 'pubpath' => 'userdp/1/f12f298ab18d58a59c4ed8a589cd1cdc.jpg', 'path' =>
'/userdp/1/f12f298ab18d58a59c4ed8a589cd1cdc.jpg'))




I tried chmod 777 public and restarted the server. But it didn't work.







php laravel






share|improve this question













share|improve this question











share|improve this question




share|improve this question










asked Sep 7 '15 at 16:54









user1012181

3,38064273




3,38064273








  • 2




    You should use 755 not 777.
    – Chris Burton
    Sep 7 '15 at 17:38










  • Never ever give 777 permission to your root folder. Its security leak for profession hackers. Please try to bind tight security rules and assign only needed permissions / rights to the group / user.
    – Pratik Soni
    Jun 20 '17 at 12:32














  • 2




    You should use 755 not 777.
    – Chris Burton
    Sep 7 '15 at 17:38










  • Never ever give 777 permission to your root folder. Its security leak for profession hackers. Please try to bind tight security rules and assign only needed permissions / rights to the group / user.
    – Pratik Soni
    Jun 20 '17 at 12:32








2




2




You should use 755 not 777.
– Chris Burton
Sep 7 '15 at 17:38




You should use 755 not 777.
– Chris Burton
Sep 7 '15 at 17:38












Never ever give 777 permission to your root folder. Its security leak for profession hackers. Please try to bind tight security rules and assign only needed permissions / rights to the group / user.
– Pratik Soni
Jun 20 '17 at 12:32




Never ever give 777 permission to your root folder. Its security leak for profession hackers. Please try to bind tight security rules and assign only needed permissions / rights to the group / user.
– Pratik Soni
Jun 20 '17 at 12:32












6 Answers
6






active

oldest

votes


















-5














You have to perform chmod recursively to make sure all subdirectories also carry the same permissions. Try running this instead:



chmod -R 777 


Now while this will fix your issue, you should definitely read up on the problems that arise with setting the above permissions as this link posted in comments below shows. Ill post here as well:



http://stackoverflow.com/a/11271632/2790481






share|improve this answer



















  • 2




    Careful with this command: How will a server become vulnerable with chmod 777
    – rdok
    Mar 7 '16 at 19:31





















2














You are trying to move the uploaded file a folder in the root of your server. Make sure you get the absolute path right.



$logicpath = public_path() . '/userdp/' . $user_id . '/';





share|improve this answer





















  • I tried this and not working.
    – user1012181
    Sep 7 '15 at 17:23






  • 2




    You also need to chmod the the userdp recursively: chmod -R 755 public/userdp
    – user2479930
    Sep 7 '15 at 17:25



















1














Try:



sudo chown -R www-data:www-data /var/www/yoursite/public





share|improve this answer































    0















    I tried chmod 777 public and restarted the server. But it didn't work.




    Be sure you use the CHMOD recursively and with administrator permissions (if you can)



    SUDO CHMOD -R 777 /var/www/html/laravel/


    Regards






    share|improve this answer





























      0














      I have found a very interesting solution to this problem. Just put "." sign like this example. It works for me.



      $destinationPath = "./public/uploads"; // upload path
      if (!file_exists($destinationPath)) {
      mkdir($destinationPath, 0755, true);
      }
      $request->sub_category_attr_value->move($destinationPath, $picName);





      share|improve this answer





























        -1














        Same error for the command



        composer create-project --prefer-dist laravel/laravel MyProject


        But it worked after the following commands



        sudo mkdir MyProject

        sudo chmod -R 777 MyProject


        Or better run composer create-project command to some different path than htdocs






        share|improve this answer























          Your Answer






          StackExchange.ifUsing("editor", function () {
          StackExchange.using("externalEditor", function () {
          StackExchange.using("snippets", function () {
          StackExchange.snippets.init();
          });
          });
          }, "code-snippets");

          StackExchange.ready(function() {
          var channelOptions = {
          tags: "".split(" "),
          id: "1"
          };
          initTagRenderer("".split(" "), "".split(" "), channelOptions);

          StackExchange.using("externalEditor", function() {
          // Have to fire editor after snippets, if snippets enabled
          if (StackExchange.settings.snippets.snippetsEnabled) {
          StackExchange.using("snippets", function() {
          createEditor();
          });
          }
          else {
          createEditor();
          }
          });

          function createEditor() {
          StackExchange.prepareEditor({
          heartbeatType: 'answer',
          autoActivateHeartbeat: false,
          convertImagesToLinks: true,
          noModals: true,
          showLowRepImageUploadWarning: true,
          reputationToPostImages: 10,
          bindNavPrevention: true,
          postfix: "",
          imageUploader: {
          brandingHtml: "Powered by u003ca class="icon-imgur-white" href="https://imgur.com/"u003eu003c/au003e",
          contentPolicyHtml: "User contributions licensed under u003ca href="https://creativecommons.org/licenses/by-sa/3.0/"u003ecc by-sa 3.0 with attribution requiredu003c/au003e u003ca href="https://stackoverflow.com/legal/content-policy"u003e(content policy)u003c/au003e",
          allowUrls: true
          },
          onDemand: true,
          discardSelector: ".discard-answer"
          ,immediatelyShowMarkdownHelp:true
          });


          }
          });














          draft saved

          draft discarded


















          StackExchange.ready(
          function () {
          StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fstackoverflow.com%2fquestions%2f32443175%2fmkdir-permission-denied-laravel%23new-answer', 'question_page');
          }
          );

          Post as a guest















          Required, but never shown

























          6 Answers
          6






          active

          oldest

          votes








          6 Answers
          6






          active

          oldest

          votes









          active

          oldest

          votes






          active

          oldest

          votes









          -5














          You have to perform chmod recursively to make sure all subdirectories also carry the same permissions. Try running this instead:



          chmod -R 777 


          Now while this will fix your issue, you should definitely read up on the problems that arise with setting the above permissions as this link posted in comments below shows. Ill post here as well:



          http://stackoverflow.com/a/11271632/2790481






          share|improve this answer



















          • 2




            Careful with this command: How will a server become vulnerable with chmod 777
            – rdok
            Mar 7 '16 at 19:31


















          -5














          You have to perform chmod recursively to make sure all subdirectories also carry the same permissions. Try running this instead:



          chmod -R 777 


          Now while this will fix your issue, you should definitely read up on the problems that arise with setting the above permissions as this link posted in comments below shows. Ill post here as well:



          http://stackoverflow.com/a/11271632/2790481






          share|improve this answer



















          • 2




            Careful with this command: How will a server become vulnerable with chmod 777
            – rdok
            Mar 7 '16 at 19:31
















          -5












          -5








          -5






          You have to perform chmod recursively to make sure all subdirectories also carry the same permissions. Try running this instead:



          chmod -R 777 


          Now while this will fix your issue, you should definitely read up on the problems that arise with setting the above permissions as this link posted in comments below shows. Ill post here as well:



          http://stackoverflow.com/a/11271632/2790481






          share|improve this answer














          You have to perform chmod recursively to make sure all subdirectories also carry the same permissions. Try running this instead:



          chmod -R 777 


          Now while this will fix your issue, you should definitely read up on the problems that arise with setting the above permissions as this link posted in comments below shows. Ill post here as well:



          http://stackoverflow.com/a/11271632/2790481







          share|improve this answer














          share|improve this answer



          share|improve this answer








          edited Apr 16 at 17:25

























          answered Sep 7 '15 at 16:59









          Geoherna

          1,86511328




          1,86511328








          • 2




            Careful with this command: How will a server become vulnerable with chmod 777
            – rdok
            Mar 7 '16 at 19:31
















          • 2




            Careful with this command: How will a server become vulnerable with chmod 777
            – rdok
            Mar 7 '16 at 19:31










          2




          2




          Careful with this command: How will a server become vulnerable with chmod 777
          – rdok
          Mar 7 '16 at 19:31






          Careful with this command: How will a server become vulnerable with chmod 777
          – rdok
          Mar 7 '16 at 19:31















          2














          You are trying to move the uploaded file a folder in the root of your server. Make sure you get the absolute path right.



          $logicpath = public_path() . '/userdp/' . $user_id . '/';





          share|improve this answer





















          • I tried this and not working.
            – user1012181
            Sep 7 '15 at 17:23






          • 2




            You also need to chmod the the userdp recursively: chmod -R 755 public/userdp
            – user2479930
            Sep 7 '15 at 17:25
















          2














          You are trying to move the uploaded file a folder in the root of your server. Make sure you get the absolute path right.



          $logicpath = public_path() . '/userdp/' . $user_id . '/';





          share|improve this answer





















          • I tried this and not working.
            – user1012181
            Sep 7 '15 at 17:23






          • 2




            You also need to chmod the the userdp recursively: chmod -R 755 public/userdp
            – user2479930
            Sep 7 '15 at 17:25














          2












          2








          2






          You are trying to move the uploaded file a folder in the root of your server. Make sure you get the absolute path right.



          $logicpath = public_path() . '/userdp/' . $user_id . '/';





          share|improve this answer












          You are trying to move the uploaded file a folder in the root of your server. Make sure you get the absolute path right.



          $logicpath = public_path() . '/userdp/' . $user_id . '/';






          share|improve this answer












          share|improve this answer



          share|improve this answer










          answered Sep 7 '15 at 17:01









          user2479930

          2,2811317




          2,2811317












          • I tried this and not working.
            – user1012181
            Sep 7 '15 at 17:23






          • 2




            You also need to chmod the the userdp recursively: chmod -R 755 public/userdp
            – user2479930
            Sep 7 '15 at 17:25


















          • I tried this and not working.
            – user1012181
            Sep 7 '15 at 17:23






          • 2




            You also need to chmod the the userdp recursively: chmod -R 755 public/userdp
            – user2479930
            Sep 7 '15 at 17:25
















          I tried this and not working.
          – user1012181
          Sep 7 '15 at 17:23




          I tried this and not working.
          – user1012181
          Sep 7 '15 at 17:23




          2




          2




          You also need to chmod the the userdp recursively: chmod -R 755 public/userdp
          – user2479930
          Sep 7 '15 at 17:25




          You also need to chmod the the userdp recursively: chmod -R 755 public/userdp
          – user2479930
          Sep 7 '15 at 17:25











          1














          Try:



          sudo chown -R www-data:www-data /var/www/yoursite/public





          share|improve this answer




























            1














            Try:



            sudo chown -R www-data:www-data /var/www/yoursite/public





            share|improve this answer


























              1












              1








              1






              Try:



              sudo chown -R www-data:www-data /var/www/yoursite/public





              share|improve this answer














              Try:



              sudo chown -R www-data:www-data /var/www/yoursite/public






              share|improve this answer














              share|improve this answer



              share|improve this answer








              edited Sep 29 at 7:00









              Unheilig

              11.9k165283




              11.9k165283










              answered Sep 29 at 6:44









              bokino12

              266




              266























                  0















                  I tried chmod 777 public and restarted the server. But it didn't work.




                  Be sure you use the CHMOD recursively and with administrator permissions (if you can)



                  SUDO CHMOD -R 777 /var/www/html/laravel/


                  Regards






                  share|improve this answer


























                    0















                    I tried chmod 777 public and restarted the server. But it didn't work.




                    Be sure you use the CHMOD recursively and with administrator permissions (if you can)



                    SUDO CHMOD -R 777 /var/www/html/laravel/


                    Regards






                    share|improve this answer
























                      0












                      0








                      0







                      I tried chmod 777 public and restarted the server. But it didn't work.




                      Be sure you use the CHMOD recursively and with administrator permissions (if you can)



                      SUDO CHMOD -R 777 /var/www/html/laravel/


                      Regards






                      share|improve this answer













                      I tried chmod 777 public and restarted the server. But it didn't work.




                      Be sure you use the CHMOD recursively and with administrator permissions (if you can)



                      SUDO CHMOD -R 777 /var/www/html/laravel/


                      Regards







                      share|improve this answer












                      share|improve this answer



                      share|improve this answer










                      answered Sep 7 '15 at 17:00









                      Jhonny Montoya

                      101119




                      101119























                          0














                          I have found a very interesting solution to this problem. Just put "." sign like this example. It works for me.



                          $destinationPath = "./public/uploads"; // upload path
                          if (!file_exists($destinationPath)) {
                          mkdir($destinationPath, 0755, true);
                          }
                          $request->sub_category_attr_value->move($destinationPath, $picName);





                          share|improve this answer


























                            0














                            I have found a very interesting solution to this problem. Just put "." sign like this example. It works for me.



                            $destinationPath = "./public/uploads"; // upload path
                            if (!file_exists($destinationPath)) {
                            mkdir($destinationPath, 0755, true);
                            }
                            $request->sub_category_attr_value->move($destinationPath, $picName);





                            share|improve this answer
























                              0












                              0








                              0






                              I have found a very interesting solution to this problem. Just put "." sign like this example. It works for me.



                              $destinationPath = "./public/uploads"; // upload path
                              if (!file_exists($destinationPath)) {
                              mkdir($destinationPath, 0755, true);
                              }
                              $request->sub_category_attr_value->move($destinationPath, $picName);





                              share|improve this answer












                              I have found a very interesting solution to this problem. Just put "." sign like this example. It works for me.



                              $destinationPath = "./public/uploads"; // upload path
                              if (!file_exists($destinationPath)) {
                              mkdir($destinationPath, 0755, true);
                              }
                              $request->sub_category_attr_value->move($destinationPath, $picName);






                              share|improve this answer












                              share|improve this answer



                              share|improve this answer










                              answered Nov 20 at 12:07









                              Binoy Sarker

                              11




                              11























                                  -1














                                  Same error for the command



                                  composer create-project --prefer-dist laravel/laravel MyProject


                                  But it worked after the following commands



                                  sudo mkdir MyProject

                                  sudo chmod -R 777 MyProject


                                  Or better run composer create-project command to some different path than htdocs






                                  share|improve this answer




























                                    -1














                                    Same error for the command



                                    composer create-project --prefer-dist laravel/laravel MyProject


                                    But it worked after the following commands



                                    sudo mkdir MyProject

                                    sudo chmod -R 777 MyProject


                                    Or better run composer create-project command to some different path than htdocs






                                    share|improve this answer


























                                      -1












                                      -1








                                      -1






                                      Same error for the command



                                      composer create-project --prefer-dist laravel/laravel MyProject


                                      But it worked after the following commands



                                      sudo mkdir MyProject

                                      sudo chmod -R 777 MyProject


                                      Or better run composer create-project command to some different path than htdocs






                                      share|improve this answer














                                      Same error for the command



                                      composer create-project --prefer-dist laravel/laravel MyProject


                                      But it worked after the following commands



                                      sudo mkdir MyProject

                                      sudo chmod -R 777 MyProject


                                      Or better run composer create-project command to some different path than htdocs







                                      share|improve this answer














                                      share|improve this answer



                                      share|improve this answer








                                      edited Feb 7 '17 at 14:03

























                                      answered Feb 3 '17 at 14:26









                                      zeeawan

                                      3,89813538




                                      3,89813538






























                                          draft saved

                                          draft discarded




















































                                          Thanks for contributing an answer to Stack Overflow!


                                          • Please be sure to answer the question. Provide details and share your research!

                                          But avoid



                                          • Asking for help, clarification, or responding to other answers.

                                          • Making statements based on opinion; back them up with references or personal experience.


                                          To learn more, see our tips on writing great answers.





                                          Some of your past answers have not been well-received, and you're in danger of being blocked from answering.


                                          Please pay close attention to the following guidance:


                                          • Please be sure to answer the question. Provide details and share your research!

                                          But avoid



                                          • Asking for help, clarification, or responding to other answers.

                                          • Making statements based on opinion; back them up with references or personal experience.


                                          To learn more, see our tips on writing great answers.




                                          draft saved


                                          draft discarded














                                          StackExchange.ready(
                                          function () {
                                          StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fstackoverflow.com%2fquestions%2f32443175%2fmkdir-permission-denied-laravel%23new-answer', 'question_page');
                                          }
                                          );

                                          Post as a guest















                                          Required, but never shown





















































                                          Required, but never shown














                                          Required, but never shown












                                          Required, but never shown







                                          Required, but never shown

































                                          Required, but never shown














                                          Required, but never shown












                                          Required, but never shown







                                          Required, but never shown







                                          Popular posts from this blog

                                          Costa Masnaga

                                          Fotorealismo

                                          Sidney Franklin