No input file specified apache как исправить

Столкнулся с ошибкой "No input file specified", при использовании php-fpm в связке с Apache. Довольно долго разбирался в проблеме, пока не нашел решение. О нем сейчас и расскажу.. Проблема возникала, в случае, когда запрашивался php файл которого не было на сервере. запрашиваем site.com/index.php все работает (есть файл index.php) запрашиваем site.com/abc все работает (показывает 404 файл

Apache logo

Столкнулся с ошибкой «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


  1. DemoN1810

    С нами с:
    16 дек 2015
    Сообщения:
    97
    Симпатии:
    0

    Делаю вроде обычное условие, если зайти на страницу home.php без сессии, то переадресация на index.php, в index.php ставится сессия и перенаправляется обратно на home.php, выходит либо ошибка зацикленной переадресации, либо «No input file specified.», как исправить?


  2. Ganzal

    Команда форума
    Модератор

    С нами с:
    15 мар 2007
    Сообщения:
    9.901
    Симпатии:
    968


  3. DemoN1810

    С нами с:
    16 дек 2015
    Сообщения:
    97
    Симпатии:
    0

    апач, насчёт фпм не знаю, на бесплатном хостингере сайт


  4. Ganzal

    Команда форума
    Модератор

    С нами с:
    15 мар 2007
    Сообщения:
    9.901
    Симпатии:
    968

    мало инфы. как подключен как апачу — mod_php или cgi? что в .htaccess у тебя в файловой системе и что в настройках от глобальных до локальных?


  5. DemoN1810

    С нами с:
    16 дек 2015
    Сообщения:
    97
    Симпатии:
    0

    cgi

    куки и сессии ставлю на 100 лет, больше ничего,

    ничего интересного не нашёл, обычный хостинг с обычными настройками, ничем не примечателен


  6. Ganzal

    Команда форума
    Модератор

    С нами с:
    15 мар 2007
    Сообщения:
    9.901
    Симпатии:
    968

    ну не, на обычном хостинге apache обрабатывает php через mod_php и не возникает сложностей с выбором скрипта. а в случае использования cgi — нужно очень внимательно следить за тем окружением с которым стартует пхп-машина.


  7. Abyss


  8. DemoN1810

    С нами с:
    16 дек 2015
    Сообщения:
    97
    Симпатии:
    0

    там всё то же самое, ничего интересного


  9. DemoN1810

    С нами с:
    16 дек 2015
    Сообщения:
    97
    Симпатии:
    0

    index.php

    1. if($agent==«название юзер агента») {
    2. $_SESSION[‘agent’] = «is_ok»;

    home.php

    1. if(!isset($_SESSION[‘agent’]) || $_SESSION[‘agent’]!=«is_ok») {
    2. header(«Location: index.php»);


  10. DemoN1810

    С нами с:
    16 дек 2015
    Сообщения:
    97
    Симпатии:
    0

    я конечно тупой, но не настолько же, я всегда всё проверяю


  11. smitt

    С нами с:
    3 янв 2012
    Сообщения:
    3.167
    Симпатии:
    65

    Ну тогда делай что пишет Ганзал, или найди другой хостинг где будет работть корректно.


  12. Ganzal

    Команда форума
    Модератор

    С нами с:
    15 мар 2007
    Сообщения:
    9.901
    Симпатии:
    968

    проблема не в пхп коде а в том как при разрешении запроса апач выбирает какой путь указать пхп-машине в качестве скрипта. без подробностей настройки всей связки и без подробностей модификаций через аксцесы — помочь нечем. была бы инфа — я бы может и попробовал у себя на хостинге воспроизвести. а так я уже почти слился из темы. меняй хостинг на адекватный.


  13. DemoN1810

    С нами с:
    16 дек 2015
    Сообщения:
    97
    Симпатии:
    0

    может что то из этого полезно? хотя бред же, скажи что именно надо

    • Поддержка Curl
      Функция fopen() и сокеты
      safe_mode = off, allow_url_fopen = on[/list:u].htaccess

      1. php_value session.gc_maxlifetime 3153600000


  14. Ganzal

    Команда форума
    Модератор

    С нами с:
    15 мар 2007
    Сообщения:
    9.901
    Симпатии:
    968

    а при чем тут поддержка курла? вот ты чисто логически мне скажи. я вроде сказал где смотреть надо.


  15. DemoN1810

    С нами с:
    16 дек 2015
    Сообщения:
    97
    Симпатии:
    0

    случайно вместе с остальным скопировалось

    ну в phpinfo()? а точнее?


  16. smitt

    С нами с:
    3 янв 2012
    Сообщения:
    3.167
    Симпатии:
    65

    Весь выкладывай, не жмись.

    А ваще есть куча бесплатных хостингов где твоя поделка должна работать…


  17. Ganzal

    Команда форума
    Модератор

    С нами с:
    15 мар 2007
    Сообщения:
    9.901
    Симпатии:
    968

    нет, не в пхпинфо.

    ты реально думаешь что поп пхп-инфо можно понять как настроен сервер?


  18. DemoN1810

    С нами с:
    16 дек 2015
    Сообщения:
    97
    Симпатии:
    0

    как не жаться если это самый лёгкий способ взлома

    Добавлено спустя 47 секунд:

    там весь php.ini и другие настройки


  19. Ganzal

    Команда форума
    Модератор

    С нами с:
    15 мар 2007
    Сообщения:
    9.901
    Симпатии:
    968

    сервер это не только пхп.


  20. DemoN1810

    С нами с:
    16 дек 2015
    Сообщения:
    97
    Симпатии:
    0

    а я думал любой сервер на си шарпе работает


  21. Ganzal

    Команда форума
    Модератор

    С нами с:
    15 мар 2007
    Сообщения:
    9.901
    Симпатии:
    968

    молодец, сострил. но как этот сарказм поможет в решении твоей проблемы? где конфиги апача? или у тебя уже нет проблемы раз ты сам переводишь разговор на оффтоп?


  22. DemoN1810

    С нами с:
    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

  1. vagrant up
  2. 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.

No input file specified WordPress error

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.

No input file specified WordPress error

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»;

Понравилась статья? Поделить с друзьями:
  • No incoming connections deluge как исправить
  • No image file detected asrock как исправить
  • No ide master hdd detected press f1 to resume как исправить
  • No healthy upstream ошибка как исправить
  • No healthy upstream ошибка авито