Столкнулся с ошибкой «No input file specified«, при использовании php-fpm в связке с Apache. Довольно долго разбирался в проблеме, пока не нашел решение. О нем сейчас и расскажу..
Проблема возникала, в случае, когда запрашивался php файл которого не было на сервере.
- запрашиваем site.com/index.php все работает (есть файл index.php)
- запрашиваем site.com/abc все работает (показывает 404 файл не найден)
- запрашиваем site.com/abc.php показывает ошибку No input file specified
Проблема была в том, как передаются параметры из апача в php. В моем случае конфигурация выглядела так:
<FilesMatch .php$> SetHandler «proxy:unix:/php-fpm/sock/localhost.sock|fcgi://localhost» </FilesMatch> |
Т.е. все запросы с концовкой на .php передаются в php-fpm, а именно он и генерирует ошибку, когда не может найти нужного файла.
Соответственно, надо проверить в самом апаче, есть ли такой php файл и только в случае его наличия передавать управление дальше, внутрь php-fpm.
В сети, есть много решений с настройкой через mod_rewrite, когда в RewriteCond проверяется есть ли этот файл, а в случае его отсутствия делается RewriteUrl на точку входа (index.php). Но мне такой вариант не понравился, и я пошел читать справку по апачу.
Потратив еще немного времени, я нашел директиву If в которой и надо, на мой взгляд, делать проверку, тем самым не нагружая mod_rewrite. Код преобразился вот так:
<FilesMatch .php$> <If «-f %{REQUEST_FILENAME}»> SetHandler «proxy:unix:/php-fpm/sock/localhost.sock|fcgi://localhost» </If> </FilesMatch> |
Теперь, если файла не существует, то будет сгенерирована стандартная ошибка об отсутствии файла.
Похожие статьи
Автор:
| Рейтинг: 4/5 |
Теги: php-fpm
За последние 24 часа нас посетили 11406 программистов и 1127 роботов. Сейчас ищут 279 программистов …
Страница 1 из 2
-
- С нами с:
- 16 дек 2015
- Сообщения:
- 97
- Симпатии:
- 0
Делаю вроде обычное условие, если зайти на страницу home.php без сессии, то переадресация на index.php, в index.php ставится сессия и перенаправляется обратно на home.php, выходит либо ошибка зацикленной переадресации, либо «No input file specified.», как исправить?
-
Команда форума
Модератор- С нами с:
- 15 мар 2007
- Сообщения:
- 9.901
- Симпатии:
- 968
-
- С нами с:
- 16 дек 2015
- Сообщения:
- 97
- Симпатии:
- 0
апач, насчёт фпм не знаю, на бесплатном хостингере сайт
-
Команда форума
Модератор- С нами с:
- 15 мар 2007
- Сообщения:
- 9.901
- Симпатии:
- 968
мало инфы. как подключен как апачу — mod_php или cgi? что в .htaccess у тебя в файловой системе и что в настройках от глобальных до локальных?
-
- С нами с:
- 16 дек 2015
- Сообщения:
- 97
- Симпатии:
- 0
cgi
куки и сессии ставлю на 100 лет, больше ничего,
ничего интересного не нашёл, обычный хостинг с обычными настройками, ничем не примечателен
-
Команда форума
Модератор- С нами с:
- 15 мар 2007
- Сообщения:
- 9.901
- Симпатии:
- 968
ну не, на обычном хостинге apache обрабатывает php через mod_php и не возникает сложностей с выбором скрипта. а в случае использования cgi — нужно очень внимательно следить за тем окружением с которым стартует пхп-машина.
-
-
- С нами с:
- 16 дек 2015
- Сообщения:
- 97
- Симпатии:
- 0
там всё то же самое, ничего интересного
-
- С нами с:
- 16 дек 2015
- Сообщения:
- 97
- Симпатии:
- 0
index.php
-
if($agent==«название юзер агента») {
-
$_SESSION[‘agent’] = «is_ok»;
home.php
-
if(!isset($_SESSION[‘agent’]) || $_SESSION[‘agent’]!=«is_ok») {
-
header(«Location: index.php»);
-
- С нами с:
- 16 дек 2015
- Сообщения:
- 97
- Симпатии:
- 0
я конечно тупой, но не настолько же, я всегда всё проверяю
-
- С нами с:
- 3 янв 2012
- Сообщения:
- 3.167
- Симпатии:
- 65
Ну тогда делай что пишет Ганзал, или найди другой хостинг где будет работть корректно.
-
Команда форума
Модератор- С нами с:
- 15 мар 2007
- Сообщения:
- 9.901
- Симпатии:
- 968
проблема не в пхп коде а в том как при разрешении запроса апач выбирает какой путь указать пхп-машине в качестве скрипта. без подробностей настройки всей связки и без подробностей модификаций через аксцесы — помочь нечем. была бы инфа — я бы может и попробовал у себя на хостинге воспроизвести. а так я уже почти слился из темы. меняй хостинг на адекватный.
-
- С нами с:
- 16 дек 2015
- Сообщения:
- 97
- Симпатии:
- 0
может что то из этого полезно? хотя бред же, скажи что именно надо
- Поддержка Curl
Функция fopen() и сокеты
safe_mode = off, allow_url_fopen = on[/list:u].htaccess-
php_value session.gc_maxlifetime 3153600000
-
-
Команда форума
Модератор- С нами с:
- 15 мар 2007
- Сообщения:
- 9.901
- Симпатии:
- 968
а при чем тут поддержка курла? вот ты чисто логически мне скажи. я вроде сказал где смотреть надо.
-
- С нами с:
- 16 дек 2015
- Сообщения:
- 97
- Симпатии:
- 0
случайно вместе с остальным скопировалось
ну в phpinfo()? а точнее?
-
- С нами с:
- 3 янв 2012
- Сообщения:
- 3.167
- Симпатии:
- 65
Весь выкладывай, не жмись.
А ваще есть куча бесплатных хостингов где твоя поделка должна работать…
-
Команда форума
Модератор- С нами с:
- 15 мар 2007
- Сообщения:
- 9.901
- Симпатии:
- 968
нет, не в пхпинфо.
ты реально думаешь что поп пхп-инфо можно понять как настроен сервер?
-
- С нами с:
- 16 дек 2015
- Сообщения:
- 97
- Симпатии:
- 0
как не жаться если это самый лёгкий способ взлома
Добавлено спустя 47 секунд:
там весь php.ini и другие настройки
-
Команда форума
Модератор- С нами с:
- 15 мар 2007
- Сообщения:
- 9.901
- Симпатии:
- 968
сервер это не только пхп.
-
- С нами с:
- 16 дек 2015
- Сообщения:
- 97
- Симпатии:
- 0
а я думал любой сервер на си шарпе работает
-
Команда форума
Модератор- С нами с:
- 15 мар 2007
- Сообщения:
- 9.901
- Симпатии:
- 968
молодец, сострил. но как этот сарказм поможет в решении твоей проблемы? где конфиги апача? или у тебя уже нет проблемы раз ты сам переводишь разговор на оффтоп?
-
- С нами с:
- 16 дек 2015
- Сообщения:
- 97
- Симпатии:
- 0
это был не сарказм
хостингер не даёт вообще ни на что права, ни на php.ini, на на конфиг апача, это у них такая «супер-безопасность», а других дыр навалом
Страница 1 из 2
Well I had this error «No input file specified» when I tried to go to my site. I reported it back but I didn’t followed the bug report template. So I had make the steps again to provide the logs and the error is gone ! I don’t think I have changed anything. I will still open the issue because there is still some error in the log like that, that may be related since it seem to be a ngnix error whereas I use apache :
homestead-7: Job for nginx.service failed because the control process exited with error code.
homestead-7: See "systemctl status nginx.service" and "journalctl -xe" for details.
Versions
- Vagrant: 2.2.2
- Provider: Virtualbox
- Homestead: master // Box 6.4.0
Host operating system
Fedora 28
Homestead.yaml
--- ip: "192.168.10.10" memory: 1024 cpus: 1 provider: virtualbox authorize: ~/.ssh/id_rsa.pub keys: - ~/.ssh/id_rsa folders: - map: /media/Data/Development/Code to: /home/vagrant/Code type: "nfs" sites: - map: td.test to: /home/vagrant/Code/td type: "apache" php: "7.0" - map: lrdt.test to: /home/vagrant/Code/lrdt type: "apache" php: "7.0" - map: ft.test to: /home/vagrant/Code/ft type: "apache" php: "7.0" - map: phpmyadmin.test to: /usr/share/phpmyadmin type: "apache" php: "7.0" databases: - td - lrdt - ft # ports: # - send: 50000 # to: 5000 # - send: 7777 # to: 777 # protocol: udp # blackfire: # - id: foo # token: bar # client-id: foo # client-token: bar # zray: # If you've already freely registered Z-Ray, you can place the token here. # - email: foo@bar.com # token: foo # Don't forget to ensure that you have 'zray: "true"' for your site.
Vagrant destroy & up output
vagrant up fail due to #1009
https://gist.github.com/Paviluf/198637cd22c26bc2c2a290e5b7d6f965
after removing the blackfire repo, vagrant halt and vagrant up
https://gist.github.com/Paviluf/a5a323270a8c49799f95d7ea9b4401ec
Expected behavior
Sites should be working
Actual behavior
There is this error when you try to go to the site with your browser: No input file specified
Work well on v7.19.2
Steps to reproduce
- vagrant up
- go to your site with your browser
While opening the WordPress website, are you stuck with error ‘No input file specified’?
Sometimes the WordPress website entirely becomes non-functional and shows a plain PHP message as ‘No input file specified’.
At Bobcares, we often get requests from our customers to fix WordPress errors as part of our Server Management Services.
Today, let’s get into the details on how our Support Engineers fix this.
Why do we see No input file specified error in WordPress?
Mostly, the No input file specified error shows up while loading the website after a migration.
This problem can be easily resolved by tweaking the PHP version, correcting .htaccess file, disabling faulty plugins and so on.
For instance, the error appears as follows, while calling the website in the browser.
Let’s now check in detail how our Support Engineers fix this problem.
Different methods to fix this error
At Bobcares, where we have more than a decade of expertise in managing servers, we see many customers face problems with WordPress websites.
Now, let’s see how our Support Engineers fix this error by tweaking the PHP version to the latest, updating .htaccess and so on.
1. Tweaking PHP version
Recently one of the customers approached with the error ‘No input file specified‘ while accessing the website. According to the customer’s request, the site was restored from the contents of the backup file. After this restoration, the website started showing this error.
On further analysis, we could trace that the website was running on version PHP 5.6, an old version. We then tweaked the PHP version to a higher one, PHP7.3.
Once the version has been tweaked to a higher one, the site loaded its contents properly and the error was removed.
2. Update .htaccess
Also, while updating to latest WordPress version, we may face the error due to incorrect rewrite rules. It fails in updating the .htaccess file with correct mod_rewrite rules.
So, we take a look at the user’s .htaccess file to ensure the file has been named correctly and that it’s properly configured for mod_rewrite as following.
We add this code in the .htaccess file and save it.
We can also either try opening the wp-admin link and go to Settings > Permalink. Then without changing anything, we click the save button. Then WordPress will automatically create new .htaccess for the site.
That fixes the problem.
3. Disabling faulty plugins
In some cases, certain plugins cause the website to showcase the same error. Another customer who was having the error was rectified by renaming the plugin directory completely.
Thereafter we identified and found the faulty plugin which caused the error.
We then disabled the plugin, which in turn fixed the error and website loaded perfectly.
[Having trouble with ‘No input file specified’ error on the WordPress website? – Our Experts are available 24/7.]
Conclusion
In short, the fix for ‘No input file specified’ error on the WordPress website includes tweaking PHP version to the latest, updating rewrite rules, disabling faulty plugins, etc. Today, we saw how our Support Engineers fix the error for our customers.
PREVENT YOUR SERVER FROM CRASHING!
Never again lose customers to poor server speed! Let us help you.
Our server experts will monitor & maintain your server 24/7 so that it remains lightning fast and secure.
GET STARTED
var google_conversion_label = «owonCMyG5nEQ0aD71QM»;