By vineeth604
Scenario: Migrating from Existing environment to new environment (Both are Linux environments) for PHP CodeIgnitor application. While accessing the application it is found that file_get_contents is not fetching values from the environment file. The application is running on an apache web server and application has to read the variables from the environment file using file_get_contents. But it is returning the blank value and not throwing any errors.
Php Version: 7.3.5
Framework used is CodeIgnitor and also using php-fpm
Code: try{$content = file_get_contents('/samplepath/myapplication/.env');echo " <br/> Content is $content <br/>"; catch (Exception $e) {echo 'Error Caught $e';}
Expected Result : This should return all the values from .env file
Actual Result: It is returning blank while accessing through application hosted in apache web server
Observations:
When executed the above code independently, this is fetching the values properly from the environment file.
i.e. if above code snippet pasted to a test.php and execute php test.php >> This is working as expected
The path provided in the above file is an absolute path. (above path is a sample path given)
Gave full permission to the user to access the file.
Checked with a different file (other than .env)also which is showing the same behavior.
Made the following changes in php.ini also. Not able to see any error in logs (checked in server logs and fpm logs).
display_errors=On
error_reporting= E_ALL & ~E_DEPRECATED & ~E_STRICT
allow_url_fopen = On7.Checked to read the file using readfile ,but still the same behavior as it is returning blank
This textbox defaults to using Markdown to format your answer.
You can type !ref in this text area to quickly search our full set of tutorials, documentation & marketplace offerings and insert the link!
Hi @vineeth604,
Reading from all of it, it does sound like wrong permissions or ownership. You mentioned you have the user full permissions to that file however, having said that, Permissions are inherited from the folder they are in as well. Did you change the permissions of your website’s folder?
One other thing while talking about permissions, is ownership. Did you check your files ownership? This is the most common problem for not being enable to execute,open,read a file. Most probably the ownership of the folders and files is set to root:root while it should be the one that Apache uses.
Regards, KFSys
Get paid to write technical tutorials and select a tech-focused charity to receive a matching donation.
Full documentation for every DigitalOcean product.
The Wave has everything you need to know about building a business, from raising funding to marketing your product.
Stay up to date by signing up for DigitalOcean’s Infrastructure as a Newsletter.
New accounts only. By submitting your email you agree to our Privacy Policy
Scale up as you grow — whether you're running one virtual machine or ten thousand.
Sign up and get $200 in credit for your first 60 days with DigitalOcean.*
*This promotional offer applies to new accounts only.