Код регистрации PHP не работает [дубликат]

<html>
    <head>
        <title>HTML Document</title>
        <script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/1.12.0/jquery.min.js"></script>
    </head>

    <body>
        <div id="hover-id">
            Hello World
        </div>

        <script>
            jQuery(document).ready(function($){
                $(document).on('mouseover', '#hover-id', function(){
                    $(this).css('color','yellowgreen');
                });

                $(document).on('mouseout', '#hover-id', function(){
                    $(this).css('color','black');
                });
            });
        </script>
    </body>
</html>
236
задан Taryn 22 March 2017 в 17:16
поделиться

23 ответа

Похоже, что что-то не так с вашей конфигурацией, вот несколько вещей, которые вы можете проверить:

  1. Убедитесь, что PHP установлен и работает правильно. Это может показаться глупым, но вы никогда не знаете. Простой способ проверить - запустить php -v из командной строки и посмотреть, возвращает ли информация о версии или какие-либо ошибки.
  2. Убедитесь, что модуль PHP указан и раскомментирован внутри вашего httpd.conf Apache. должно быть что-то вроде LoadModule php5_module "c:/php/php5apache2_2.dll" в файле. Найдите LoadModule php и убедитесь, что перед ним нет комментария (;).
  3. Убедитесь, что в файле httpd.conf Apache есть PHP MIME-тип. Это должно быть что-то вроде AddType application/x-httpd-php .php. Это говорит Apache, чтобы запустить .php файлы как PHP. Найдите AddType, а затем убедитесь, что есть запись для PHP, и что она раскоментирована.
  4. Убедитесь, что ваш файл имеет расширение .php на нем или любое расширение, указанное в определении MIME в point # 3, иначе он не будет выполняться как PHP.
  5. Убедитесь, что вы не используете короткие теги в файле PHP (<?), это не включен на всех серверах по умолчанию, и их использование не рекомендуется. Вместо этого используйте <?php (или включить короткие теги в вашем php.ini с short_open_tag=On, если у вас есть код, который их использует).
  6. Убедитесь, что вы обращаетесь к своему файлу через ваш веб-сервер, используя URL-адрес, такой как http://localhost/file.php, не через доступ к локальному файлу file://localhost/www/file.php

И, наконец, проверьте Руководство по PHP для дальнейших советов по настройке .

320
ответ дан Quentin 18 August 2018 в 21:59
поделиться
  • 1
    Не знаю, почему, но установщик PHP 5.3.15 не добавляет строку AddType application/x-httpd-php .php. Большое спасибо!! – MatuDuke 25 July 2012 в 03:03
  • 2
    @shmeeps: Где вы видели, что короткие теги устарели? Я сделал некоторые поиски и могу только найти рекомендации против них, ничего не сказать об устаревании. Предоставляемые для приложений, которые должны быть распространены, лучше использовать & lt; php в случае, если сервер хостинга не имеет их включен, но для приложений, где у вас есть полный контроль над сервером, на котором они будут работать, не вижу причин не использовать их. – ClarkeyBoy 28 October 2013 в 18:35
  • 3
    точка № 6 работала для меня .. локальный доступ не использует сервер Apache – KawaiKx 6 July 2014 в 16:24
  • 4
    пункт 2 работал для меня безопасным способом - apt-get purge apache2; apt-get install apache2 libapache-mod-php5 – ulkas 16 September 2014 в 21:41
  • 5
    @full_prog_full Попробуйте загрузить файл с расширением .php с содержимым <?php echo("Success"); ?> и посмотреть, приводит ли к нему доступ к файлу через веб-браузер в & quot; Success & quot; отображается без соответствующего кода PHP. – shmeeps 18 April 2016 в 03:29

Я столкнулся с этой проблемой на php 7.1, который поставляется с High Sierra (OS X 10.13.5), редактирование /etc/apache2/httpd.conf со следующими изменениями помогло:

  1. Раскомментировать эту строку
    LoadModule php7_module libexec/apache2/libphp7.so
    
  2. Вставить пасту в конце
    <IfModule php7_module>
        AddType application/x-httpd-php .php
        AddType application/x-httpd-php-source .phps
    
        <IfModule dir_module>
            DirectoryIndex index.html index.php
        </IfModule>
    </IfModule>
    
0
ответ дан AamirR 18 August 2018 в 21:59
поделиться

У меня был случай, когда я случайно начал разворачивать каталог файлов в корне. Он добавил файл .htaccess из моей папки с файлами, который блокирует все php

# If we know how to do it safely, disable the PHP engine entirely.
<IfModule mod_php5.c>
  php_flag engine off
</IfModule>

. Нижняя строка проверяет файл .htaccess на root.

0
ответ дан albertski 18 August 2018 в 21:59
поделиться

Я нашел еще одну проблему, вызвавшую эту проблему, и уже решил ее. Я случайно сохранил свой скрипт в кодировке UTF-16. Похоже, что PHP5 не может распознать тег <?php в 16-битной кодировке по умолчанию.

19
ответ дан Arrvi 18 August 2018 в 21:59
поделиться

Добавить AddType application/x-httpd-php .php в файл httpd.conf, если вы используете Apache 2.4

0
ответ дан Ashahmali 18 August 2018 в 21:59
поделиться

Для меня работала переустановка модуля mcrypt.

$sudo apt-get install php5-mcrypt
$sudo php5enmod mcrypt
0
ответ дан b.g 18 August 2018 в 21:59
поделиться
  • 1
    Это честно, может быть, потому, что я не правильно настроил PHP на моей системе. Но поскольку вопрос, который я задал по той же проблеме, был отмечен как дубликат этого вопроса, я мог бы ответить на него здесь. Интересно, почему голос? – b.g 17 October 2016 в 13:06
  • 2
    Этот ответ связан с linux, в котором тема, очевидно, использует окна – Raymond Nijland 24 April 2017 в 11:55

Убедитесь, что сценарий содержит

<?php

перед кодом, который должен быть выполнен. Между <? и php в этом не должно быть пробелов.

-1
ответ дан Barmar 18 August 2018 в 21:59
поделиться

Я решил это, удалив XAMPP и установив WAMP. Спасибо за помощь.

3
ответ дан Dummy00001 18 August 2018 в 21:59
поделиться

note для пользователей php 7, добавьте это в свой файл httpd.conf:

# PHP 7 specific configuration
<IfModule php7_module>
    AddType application/x-httpd-php .php
    AddType application/x-httpd-php-source .phps
    <IfModule dir_module>
        DirectoryIndex index.html index.php
    </IfModule>
</IfModule>
19
ответ дан EdC 18 August 2018 в 21:59
поделиться
  • 1
    Ты спас мой день. Спасибо, 3 – theRana 13 May 2018 в 18:52
  • 2
    Просто чтобы помочь другим людям с этой проблемой. Файл httpd.conf находится в /etc/apache2/httpd.conf. Если вы используете Ubuntu, это будет apache2.conf в том же каталоге, который необходимо изменить для PHP7. – Ahmed Sagarwala 14 August 2018 в 19:07

Для новой настройки LAMP running php 7 отредактируйте файл /etc/httpd/conf/httpd.conf. Примечание. Обязательно сделайте резервную копию для него перед тем, как что-либо изменить.

Вставьте это в самое нижнее файла:

<IfModule php7_module>
AddType application/x-httpd-php .php
AddType application/x-httpd-php-source .phps
<IfModule dir_module>
    DirectoryIndex index.html index.php
</IfModule>

Затем найдите LoadModule и вставьте следующую строку:

LoadModule php7_module modules/libphp7.so

Эта строка просто попросит httpd загрузить модуль php 7

Затем перезапустите httpd

1
ответ дан Eric Libay 18 August 2018 в 21:59
поделиться

Я запускаю Apache на Ubuntu, и моя проблема в том, что файл /etc/apache2/mods-available/php5.conf отсутствовал:

<FilesMatch ".+\.ph(p[345]?|t|tml)$">
    SetHandler application/x-httpd-php
</FilesMatch>

Я добавил его обратно, а php правильно обрабатывал файлы php.

27
ответ дан Flow 18 August 2018 в 21:59
поделиться

О Боже! Я только что видел ваше опубликованное изображение снова, вы просто открываете свой php-файл в браузере. у вас есть open, использующий localhost url. если вы открываете файл непосредственно из своего каталога, он не будет выполнять php-код в любом случае.

use: http://locahost/index.php или http:127.0.0.1/index.php

включить php-код в вашем случае , вы используете <?, который является коротким кодом php для <?php

, по умолчанию короткие короткие коды php отключены.

также используют: sudo apt-get install php5 libapache2-mod-php5 php5-mcrypt, если вы являетесь пользователем ubuntu .

11
ответ дан Hasan Baig 18 August 2018 в 21:59
поделиться
  • 1
    Почему mcrypt требуется, когда я просто включаю файл? Вы должны заметить, что этот вопрос старый, а проблема с короткими тегами упоминалась 16 раз, также в верхнем комментарии моего вопроса. – Gui 6 December 2016 в 17:20
  • 2
    Я просто делюсь своим решением, у меня также была такая же ошибка, и после выполнения этой команды mcrypt моя проблема решена. вы также можете попробовать. – Hasan Baig 7 December 2016 в 08:43
  • 3
    по умолчанию включены короткие короткие коды php. short_open_tag = On (Значение по умолчанию = ON) в php 5.6 – zond 26 January 2017 в 14:38

Я отправляю этот ответ, потому что мой интерфейс администратора Virtualmin / Webmin решил, что было бы неплохо отключить мой PHP-движок. Я нашел время, чтобы найти решение, поэтому я решил поделиться с ним вы, ребята:

Также не забудьте проверить, что ни один из ваших конфигурационных файлов вашего сайта, связанных с этим конкретным хостом или виртуальным хостом, не имеет в них php_admin_value, которые отключают PHP, например:

php_admin_value engine Off

В случае сомнений прокомментируйте это ...

# php_admin_value engine Off

И перезагрузите свой веб-сервер.

14
ответ дан Henry van Megen 18 August 2018 в 21:59
поделиться
  • 1
    Где эти настройки конфигурации точно? – cronoklee 27 July 2016 в 14:43
  • 2
    @cronoklee В настройках vHost httpd.conf. Для существующих хостов вам необходимо изменить конфигурацию apache в webmin. Для будущих хостов перейдите в virtualmin & gt; шаблон сервера & gt; веб-сайт apache. В то же время это не так безопасно, как fastcgi - defaultmin по умолчанию. Поэтому правильный подход должен заключаться в устранении неполадок, почему fcgi не работает, например, это может быть вызвано правами доступа к файлам. – Sheepy 9 September 2016 в 03:43
  • 3
    Если вы используете версию Apache, которая не имеет httpd.conf, посмотрите в /etc/apache2/mods-enabled/php7.conf или php5.conf – LXXIII 20 October 2016 в 22:53
  • 4
    Когда вы сомневаетесь в местоположении определенного параметра конфигурации, вы всегда можете использовать grep, чтобы найти то, что вы ищете (например, в этом случае): sudo grep php_admin_value /etc/* -R – Henry van Megen 23 May 2018 в 11:05

Это было в моем .htaccess

DirectoryIndex index.html index.htm

index.html, содержащем PHP-код. По умолчанию PHP не будет обрабатывать файлы с такими расширениями, как htm *, как PHP-код.

Вы можете переопределить это, добавив следующее в .htaccess:

<FilesMatch ".+\.html$">
    SetHandler application/x-httpd-php
</FilesMatch>
1
ответ дан Jahmic 18 August 2018 в 21:59
поделиться

Проверьте все пакеты, которые вы установили для php, используя:

yum list installed | grep remi

Установите все соответствующие пакеты php, особенно php-devel на вашем компьютере.

2
ответ дан Jai Kumar Rajput 18 August 2018 в 21:59
поделиться

Я думаю, что проблема в том, что он показывает код вместо результата, так это то, что он не будет на локальном хосте. перепроверьте, какой адрес ур собирается. И отправляемся в локальный каталог файлов или на локальный хост.

из скриншота u отправил его на ур компьютер не на localhost.

"file: ///" это должен быть "localhost /"

0
ответ дан Nav 18 August 2018 в 21:59
поделиться

Это произошло со мной снова, вместе с сервером, загружающим html-файлы, а не обработкой. Я не использовал веб-сервер Apache некоторое время на компьютере, а между тем Ubuntu обновлялся как еще две версии изначально установленных LTS. Теперь это

$ cat /etc/issue
Ubuntu 16.04 LTS

Итак, php работал так:

$ sudo apt-get install lamp-server^
$ sudo a2enmod php7.0
$ sudo service apache2 restart 

Теперь веб-сервер разбирал php. Возможно, теперь вам нужно обновить некоторые веб-страницы, так как теперь php7.0 работает там, где это было до запуска php5. О, хорошо.

3
ответ дан ndasusers 18 August 2018 в 21:59
поделиться
  • 1
    вы просто переустановили весь сервер. – RozzA 10 May 2017 в 21:38

У меня была аналогичная проблема, но в моем случае решение было другим. мой файл, который содержал php-код, назывался «somename.html», изменил его на «somename.php», работал отлично

3
ответ дан Netrus 18 August 2018 в 21:59
поделиться
  • 1
    Это также решило это для меня. Кто-нибудь знает, будет ли сервер выполнять php в .html-файле или окончание файла всегда нужно изменить на .php, когда есть строка php для выполнения? – full_prog_full 10 November 2016 в 15:42
  • 2
    зависит от настроек сервера, для большинства случаев выполняется PHP-код, существующий в файле anyfile.html. и если это не так, его можно изменить, хотя idk как: P – Netrus 4 December 2016 в 17:49

на моем ubuntu 14.04, apache 2.4, php 5.5.9 install, я попробовал с sample.php on / var / www / html (root по умолчанию), и он работал нормально. Таким образом, проблема была в моей конфигурации виртуальных серверов. Решение заключалось в том, чтобы включить в директорию def, содержащую .php, следующую строку:

    php_admin_flag engine on
2
ответ дан Rogelio 18 August 2018 в 21:59
поделиться
  • 1
    и где я должен добавить эту строку в файл Apache в httpd.conf моего виртуального сервера? и я использую Webmin – suresh pareek 21 August 2017 в 12:45

php7:

sudo a2enmod proxy_fcgi setenvif
sudo a2enconf php7.0-fpm
sudo service apache2 restart
28
ответ дан sj59 18 August 2018 в 21:59
поделиться
  • 1
    Хотя этот фрагмент кода может решить вопрос, в том числе объяснение how и why , это решает проблему , действительно поможет улучшить качество вашей после. Помните, что вы отвечаете на вопрос читателей в будущем, а не только на человека, который спрашивает сейчас! Пожалуйста, отредактируйте свой ответ, чтобы добавить объяснение, и укажите, какие ограничения и допущения применяются. – Toby Speight 6 February 2017 в 19:31
  • 2
    Этот ответ связан с linux, в котором тема-сервер явно использует окна. – Raymond Nijland 24 April 2017 в 11:53
  • 3
    @RaymondNijland правда, но это канонически, и я нашел этот вопрос, и он спас меня после часа устранения неполадок. – Goose 5 May 2017 в 20:57
  • 4
    Как и почему: Это происходит, когда PHP7 не настраивает службу fast-CGI по умолчанию в сценарии make. sudo a2enmod proxy_fcgi setenvif создает три новые моды /mods-available/proxy.conf proxy_fcgi.load proxy.load Аналогично, sudo a2enconf php7.0-fpm создает файл конфигурации /conf-available/php7.0-fpm.conf. Как только это будет сделано, и Apache2 сможет затем запустить модуль PHP7 в качестве службы быстрого CGI. – Talvi Watia 21 November 2017 в 13:49
  • 5
    работал на linux mint – zzapper 21 January 2018 в 00:41

Я знаю, что это должно звучать глупо ... но редко бывает.

Проверьте, пытаетесь ли вы выполнить php из

**http://localhost/info.php**

, а не из

file:///var/www/info.php

ps> вы можете заметить, что если вы пишете из shell

php info.php 

, то ответьте на код (это означает php-функции) ..

5
ответ дан user3257072 18 August 2018 в 21:59
поделиться
  • 1
    PHP работает нормально (проверено с помощью командной строки). но, когда я получаю доступ к файлу с помощью URL-адреса, он показывает PHP-код. – muaaz 17 June 2015 в 08:08

Если у вас есть такая конфигурация:

<VirtualHost *:80>
    ServerName example.com
    DocumentRoot "/var/www/example.com"

    <FilesMatch "\.php$">
        SetHandler "proxy:fcgi://127.0.0.1:9000"
    </FilesMatch>
</VirtualHost>

Раскомментируйте следующие строки в вашем httpd.conf

LoadModule proxy_module lib/httpd/modules/mod_proxy.so
LoadModule proxy_fcgi_module lib/httpd/modules/mod_proxy_fcgi.so

Это работает для меня

0
ответ дан user3890355 18 August 2018 в 21:59
поделиться
0
ответ дан bobble bubble 7 September 2018 в 05:42
поделиться
Другие вопросы по тегам:

Похожие вопросы: