I will develop a Laravel project with my friends this afternoon , this project has been developed by my partner, so I cloned a copy to my computer, but after I configured it, when I opened the URL, it prompted "No input file specified." 404 error
First of all, I suspected that it was a problem with the project source code, and then I directly added the following sentence at the front of the entry file; I still got the same error when I accessed the website.
<?php exit(1);
Explain that it is not a problem with the source code of my project, and rule out code problems;
I began to suspect that it was a problem with my own environment, so I The tossing began. I deleted the project and started a new one, but it still didn't work. I found that this is the only problem with this project. So I'm sure it's not an environmental problem.
It means that it is not an environment problem, and it excludes environmental problems
I searched on Baidu, and some people said it might be a problem with Homestead.yaml, but I checked it carefully and found nothing wrong. So I Googled it and couldn't find a good reason.
Troubleshooting virtual machine configuration problems
So I thought it was not an environment problem, not a program problem~~~; finally I thought I should check inside the virtual machine. Finally, I saw this error in the ngnix log.
2019/05/23 12:31:44 [error] 5085#5085: *1 FastCGI sent in stderr: "PHP message: PHP Warning: Unknown: open_basedir restriction in effect. File(/home/vagrant/Code/haopai-git/public/index.php) is not within the allowed path(s): (/www/wwwroot/dev.guooo.top/:/tmp/:/proc/) in Unknown on line 0 PHP message: PHP Warning: Unknown: failed to open stream: Operation not permitted in Unknown on line 0 Unable to open primary script: /home/vagrant/Code/haopai-git/public/index.php (Operation not permitted)" while reading response header from upstream, client: 192.168.10.1, server: hp.hopa.cc, request: "GET / HTTP/1.1", upstream: "fastcgi://unix:/var/run/php/php7.2-fpm.sock:", host: "hp.hopa.cc"
When I saw the above error, I also went online to look for it. The Internet mainly talked about the problem of configuring fastcgi_param in ngnix, but I didn’t think it was right, because other projects had no problems. There is a problem with this project alone. For some reason, I noticed "/www/wwwroot/". This folder should not exist in my computer, so I went to the project to search for this string, and finally found it in the .user.ini file. When I saw this file, I realized it was his problem, so I deleted the configuration in this file. The content of the file is as follows:
open_basedir=***********
Okay, the problem is solved.
Looking back and thinking about it, in fact, I should have thought of looking at ngnix logs from the beginning. I have come into contact with the .user.ini file before. At that time, I only remembered that it was used to prevent cross-site attacks.
Since PHP 5.3.0, PHP supports .htaccess style INI files on a per-directory basis. Such files are only processed by the CGI/FastCGI SAPI. This feature makes PECL's htscanner extension obsolete. If using Apache, using an .htaccess file has the same effect.
In addition to the main php.ini, PHP will also scan INI files in each directory, starting from the directory where the executed PHP file is located and going up to the web root directory ($_SERVER['DOCUMENT_ROOT'] Specified). If the PHP file being executed is outside the web root directory, only that directory will be scanned.
Only INI settings with PHP_INI_PERDIR and PHP_INI_USER modes are recognized in .user.ini style INI files.
For more Laravel related technical articles, please visit the Laravel Tutorial column to learn!
The above is the detailed content of Painful troubleshooting 'No input file specified.'. For more information, please follow other related articles on the PHP Chinese website!