Search code examples
phpapacheserverincluderequire

PHP include not loading file


Im runninng lamp stack locally on my ubuntu 16.04 OS and Im getting problems when including files. My code in index.php:
<?php include('steamauth/steamauth.php'); ?> <?php include('steamauth/userinfo.php');?> my structure is:
index.php steamauth steamauth.php userinfo.php
Im getting the following error:
include(steamauth/userinfo.php): failed to open stream: No such file or directory in /var/www/html/index.php
include(): Failed opening 'steamauth/userinfo.php' for inclusion (include_path='.:/usr/share/php') in /var/www/html/index.php
I tried using the full path , adding webroot before the path , changing include_path in php.ini , but nothing seemed to work . what do i do ?


Solution

  • Check folder pemission

    Check that the Apache user has access to the include folder.

    Check file permissions

    Check that the permissions on the files that you are including can be read and executed by the Apache user.

    Check PHP settings

    It could be caused by one of the following PHP settings:

    open_basedir: If this is set PHP won't be able to access any file outside of the specified directory (not even through a symbolic link).

    safe mode: If this is turned on restrictions might apply.

    Make path absolute

    Check that $_SERVER["DOCUMENT_ROOT"] is correctly set for your domain by using:

    print $_SERVER["DOCUMENT_ROOT"]; // Add to top of you index.php file. 
    

    Then change your includes to:

    $_SERVER["DOCUMENT_ROOT"] . '/sub_folder/file_to_include';
    

    Check for typos and spelling mistakes

    Carefully check that what you think you have called the folder and what you are using to include it are spelt the same.

    BTW: You can just use the following in your index.php file:

    <?php
    include('steamauth/steamauth.php');
    include('steamauth/userinfo.php');
    

    You also don't need to add the closing ?> at the end of the file - it's actually good practice not to.