Назад | Перейти на главную страницу

PHP 5 не запускает скрипты без явного `<? Php`

Я, наконец, жму пулю и обновляю свои установки PHP / MySQL до версии 5 (у меня было слишком много зависимостей от Apache 1.3, сайтов, использующих MySQL 4.x и PHP 4.x, и множество других проблем). Это вроде работает, но только если я явно укажу <?php xxx ?> но не, если они этого не делают, т.е. <? xxx ?>.

Например, типичный сценарий для проверки совместной работы ваших установок PHP и Apache:

  <? phpinfo(); ?>

Это не работает. Но если я изменю его на это:

  <?php phpinfo(); ?>

... тогда он работает нормально, что показывает, что и Apache, и PHP установлены правильно. MySQL тоже работает, но я хочу управлять им с помощью phpMyAdmin, но все скрипты PHP в нем используют <? вместо того <?php, поэтому он ничего не сделает.

Как бы то ни было, в моем Apache httpd.conf есть следующие строки:

  AddType application/x-httpd-php .php
  AddType application/x-httpd-php-source .phps

... который, как я ожидал, решит проблему (т.е. запуск всех файлов с расширением php через процессор модуля PHP).

Любые идеи?

Или мне действительно нужно искать и заменять все, чтобы явно указать php в этих скриптах (включая те, которые я не писал)? Я работаю в Windows (WinXP SP3), если это имеет значение для ответа.

РЕДАКТИРОВАТЬ:

Хорошо, я ошибался, говоря, что phpMyAdmin использовал короткий тег. Установка short_open_tag = On не решает проблему. Однако внесение этого изменения вызывает загрузку других страниц, которых раньше не было. Я перепишу код, чтобы использовать длинный тег, поскольку короткий тег устарел, но я все еще пытаюсь выяснить, почему phpMyAdmin не работает.

Проверить, есть ли short_open_tag установлен на 1 в вашем php.ini. Так должно быть.

phpinfo должен сообщить вам путь к файлу. Apache (на самом деле mod_php) может использовать свой собственный, поэтому проверить не повредит.

http://php.net/manual/en/ini.core.php

Если при просмотре phpMyAdmin у вас нет ошибки, проверьте журналы ошибок apache. Я думаю, что есть некоторые модули php, которые требуются phpMyAdmin и которые отсутствуют или не включены.