Я, наконец, жму пулю и обновляю свои установки 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) может использовать свой собственный, поэтому проверить не повредит.
Если при просмотре phpMyAdmin у вас нет ошибки, проверьте журналы ошибок apache. Я думаю, что есть некоторые модули php, которые требуются phpMyAdmin и которые отсутствуют или не включены.