Painful troubleshooting 'No input file specified.'
Error "No input file specified." Troubleshooting
Background
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
Troubleshooting
-
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);
Copy after loginExplain 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"
Copy after login -
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=***********
Copy after login -
Okay, the problem is solved.
Reflection
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.
.user.ini Knowledge Points
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!

Hot AI Tools

Undresser.AI Undress
AI-powered app for creating realistic nude photos

AI Clothes Remover
Online AI tool for removing clothes from photos.

Undress AI Tool
Undress images for free

Clothoff.io
AI clothes remover

Video Face Swap
Swap faces in any video effortlessly with our completely free AI face swap tool!

Hot Article

Hot Tools

Notepad++7.3.1
Easy-to-use and free code editor

SublimeText3 Chinese version
Chinese version, very easy to use

Zend Studio 13.0.1
Powerful PHP integrated development environment

Dreamweaver CS6
Visual web development tools

SublimeText3 Mac version
God-level code editing software (SublimeText3)

Hot Topics

Both Django and Laravel are full-stack frameworks. Django is suitable for Python developers and complex business logic, while Laravel is suitable for PHP developers and elegant syntax. 1.Django is based on Python and follows the "battery-complete" philosophy, suitable for rapid development and high concurrency. 2.Laravel is based on PHP, emphasizing the developer experience, and is suitable for small to medium-sized projects.

Laravel is a PHP framework for easy building of web applications. It provides a range of powerful features including: Installation: Install the Laravel CLI globally with Composer and create applications in the project directory. Routing: Define the relationship between the URL and the handler in routes/web.php. View: Create a view in resources/views to render the application's interface. Database Integration: Provides out-of-the-box integration with databases such as MySQL and uses migration to create and modify tables. Model and Controller: The model represents the database entity and the controller processes HTTP requests.

How does Laravel play a role in backend logic? It simplifies and enhances backend development through routing systems, EloquentORM, authentication and authorization, event and listeners, and performance optimization. 1. The routing system allows the definition of URL structure and request processing logic. 2.EloquentORM simplifies database interaction. 3. The authentication and authorization system is convenient for user management. 4. The event and listener implement loosely coupled code structure. 5. Performance optimization improves application efficiency through caching and queueing.

PHP and Laravel are not directly comparable, because Laravel is a PHP-based framework. 1.PHP is suitable for small projects or rapid prototyping because it is simple and direct. 2. Laravel is suitable for large projects or efficient development because it provides rich functions and tools, but has a steep learning curve and may not be as good as pure PHP.

LaravelisabackendframeworkbuiltonPHP,designedforwebapplicationdevelopment.Itfocusesonserver-sidelogic,databasemanagement,andapplicationstructure,andcanbeintegratedwithfrontendtechnologieslikeVue.jsorReactforfull-stackdevelopment.

Laravel provides a comprehensive Auth framework for implementing user login functions, including: Defining user models (Eloquent model), creating login forms (Blade template engine), writing login controllers (inheriting Auth\LoginController), verifying login requests (Auth::attempt) Redirecting after login is successful (redirect) considering security factors: hash passwords, anti-CSRF protection, rate limiting and security headers. In addition, the Auth framework also provides functions such as resetting passwords, registering and verifying emails. For details, please refer to the Laravel documentation: https://laravel.com/doc

Want to learn the Laravel framework, but suffer from no resources or economic pressure? This article provides you with free learning of Laravel, teaching you how to use resources such as online platforms, documents and community forums to lay a solid foundation for your PHP development journey from getting started to master.

In this era of continuous technological advancement, mastering advanced frameworks is crucial for modern programmers. This article will help you improve your development skills by sharing little-known techniques in the Laravel framework. Known for its elegant syntax and a wide range of features, this article will dig into its powerful features and provide practical tips and tricks to help you create efficient and maintainable web applications.
