open_basedir restriction in effect. File(/) is not within the allowed path(s):

后端 未结 13 2204
醉话见心
醉话见心 2020-11-22 01:45

I\'m getting this error on an avatar upload on my site. I\'ve never gotten it before and nothing was changed recently for me to begin getting this error...

         


        
相关标签:
13条回答
  • 2020-11-22 02:24

    If you are running a PHP IIS stack and have this error, it is usually a quick permission fix.

    If you administer the windows server yourself and have access, try this FIRST:

    Navigate to the folder that is giving you grief on writing to and right click it > open properties > security.

    See what users have access to the folder, which ones have read only and which have full. Do you have a group that is blocking write?

    The fix will be specific to your IIS setup, are you using Anonymous Authentication with specific user IUSR or with the Application Pool identity?

    At any rate, you are going to end up adding a new full write permission for one of IUSR, IIS_IUSRS, or your application pool identity - like I said, this is going to vary depending on your setup and how you want to do it, you can go down the google rabbit hole on this one (one such post - IIS_IUSRS and IUSR permissions in IIS8) For me, i use anon with my app pool identity so i can get away with MACHINE_NAME\IIS_IUSRS with full read/write on any temp or upload folders.

    I do not need to add anything extra to my open_basedir = in the php.ini.

    0 讨论(0)
  • 2020-11-22 02:31

    I am using an Apache vhost-File to run PHP with application-specific ini-options on my windows-server. Therefore I use the -d option of the php-command.

    I am setting the open_basedir for every application as one of these options.

    I needed to set multiple urls as open_basedir, including an UNC-Path, and the syntax for this case was a bit hard to find. You have to seperate the paths with semicolons and if your first path starts with a driveletter you might have to start the list with a semicolon too. At least that's what works for me.

    Example:

    php.exe -d open_basedir=;d:/www/applicationRoot;//internal.unc.path/ressource/
    
    0 讨论(0)
  • 2020-11-22 02:32

    if you have this kind of problem with ispconfig3 and got an error like this

    open_basedir restriction in effect. File(/var/www/clients/client7/web15) is not within the allowed path(s):.........

    To solve it (in my case) , just set PHP to SuPHP in the Website's panel of ispconfig3

    Hope it helps someone :)

    0 讨论(0)
  • 2020-11-22 02:32

    In addition to @yogihosting's answer, if you are using DirectAdmin, then follow these steps:

    1. Go to the DirectAdmin's login page. Usually, its port is 2222.
    2. Login as administrator. Its username is admin by default.
    3. From the "Access Level" on the right panel, make sure you are on "Admin Level". If not, change to it.
    4. From the "Extra Features" section, click on "Custom HTTPD Configurations".
    5. Choose the domain you want to change.
    6. Enter the configurations you want to change in the textarea at the top of the page. You should consider the existing configuration file and modify values based on it. For example, if you see that open_basedir is set inside a <Directory>, maybe you should surround your change in the related <Directory> tag:

      <Directory "/path/to/directory">
          php_admin_value open_basedir none
      </Directory>
      
    7. After making necessary changes, click on the "Save" button.

    8. You should now see your changes saved to the configuration file if they were valid.

    There is another way of editing the configuration file, however:

    Caution: Be careful, and use the following steps at your own risk, as you may run into errors, or it may lead to downtime. The recommended way is the previous one, as it prevents you from modifying configuration file improperly and show you the error.

    1. Login to your server as root.
    2. Go to /usr/local/directadmin/data/users. From the listed users, go to one related to the domain you want to change.
    3. Here, there is an httpd.conf file. Make a backup from it:

      cp httpd.conf httpd.conf.back
      
    4. Now edit the configuration file with your editor of choice. For example, edit existing open_basedir to none. Do not try to remove things, or you may experience downtime. Save the file after editing.

    5. Restart the Apache web server using one of the following ways (use sudo if needed):

      httpd -k graceful
      apachectl -k graceful
      apache2 -k graceful
      
    6. If your encounter any errors, then replace the main configuration file with the backed-up file, and restart the web server.

    Again, the first solution is the preferred one, and you should not try the second method at the first time. As it is noted in the caution, the advantage of the first way is that it prevents saving your bad-configured stuff.

    Hope it helps!

    0 讨论(0)
  • 2020-11-22 02:35

    Just search

    open_basedir =

    in php.ini and disable it. That's the simplest solution to solve this issue.

    Before Changes open_basedir =

    After Changes ;open_basedir =

    P.s - After changes don't forget to restart your server.

    Enjoy ;)

    0 讨论(0)
  • 2020-11-22 02:37

    Modify the open_basedir settings in your hosting account and set them to none. Find the open_basedir setting given under 'PHP Settings' area of your Plesk/cPanel. Set it to 'none' from the dropdown given there. I have shown them in the Plesk panel picture.

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