У меня есть машина Debian под управлением Apache и PHP 5. У меня есть веб-сайт, который работает очень хорошо, нет базы данных, просто PHP.

Я пытаюсь переместить этот сайт PHP на компьютер на базе CentOS. Но я получаю все виды странных ошибок.

В чем разница кроме apache2 и httpd . Как я могу заставить его работать без изменений кода?

1 ответ1

1

Не зная конкретных ошибок, с которыми вы сталкиваетесь, это нелегко диагностировать. Но я уверен, что это на 100% никак не связано с тем, что одна система - CentOS, а другая - Debian; PHP-код работает в любой системе, которая может выполнять PHP-код.

Все, что сказал, вы утверждаете это:

В чем разница кроме apache2 и httpd . Как я могу заставить его работать без изменений кода?

Нет никакой разницы между apache2 и httpd именам между Debian (apache2) и CentOS (httpd). Это просто системные двоичные имена, и команда разработчиков ядра CentOS/RedHat/Fedora, похоже, предпочитает более общий httpd прозвище для Apache, а не специфичный для бренда apache2 .

Зная это, я довольно уверен, что если это проблема с кодом PHP, это не имеет никакого отношения к Apache. Скорее, могут быть проблемы с установленными версиями PHP 5, работающими на каждой машине.

Например, код, который хорошо работает в PHP 5.1, не обязательно будет хорошо работать в PHP 5.2, 5.3, 5.4 и т.д. Каждый выпуск PHP для младшего и большого числа номеров обратно совместим с более ранними версиями PHP, но могут быть очень незначительные изменения в функциональности кода, который заставил бы код PHP 5.3 подавиться на PHP 5.4.

Фактически, по моему личному опыту, многие из сайтов, которыми я управляю, остаются на PHP 5.3 прямо сейчас, пока не будут сделаны обновления ядра PHP, чтобы заставить код «играть хорошо» с PHP 5.4. Эти изменения включают в себя просто настройку нескольких основных функций, чтобы приспособить изменения интерфейса / основной функции между PHP 5.3 и 5.4, но это все; пока что спешить с этим не стоит, поскольку на основной операционной системе этих систем изначально установлен PHP 5.3, и он работает нормально.

Я бы порекомендовал вам сравнить номера версий плагина PHP Apache, проверив вывод phpinfo() на обоих серверах и посмотрев, какие версии установлены и используются на каждом из них. Чтобы сделать это, просто создайте файл в webroot каждого сервера с именем phpinfo.php следующим образом; Я использую nano в качестве текстового редактора, но не стесняйтесь использовать любой текстовый редактор, который вы предпочитаете:

nano /var/www/phpinfo.php

Также обратите внимание, что я использую /var/www/ качестве пути к веб- корню; убедитесь, что изменили это, чтобы соответствовать вашей реальной системе webroot.

Теперь просто поместите следующий код в этот файл phpinfo.php :

<?php

// Show all information, defaults to INFO_ALL
phpinfo();

?>

Теперь загрузите этот phpinfo.php через веб- браузер через URL-адрес, подобный этому; измените имя хоста, чтобы оно соответствовало фактическому имени хоста вашей системы:

http://localhost/phpinfo.php

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

"phpinfo ()" пример баннера PHP версии 5.4.10.

Обратите внимание, что хотя большинство установленных версий PHP потенциально имеют интерпретатор командной строки, этот интерпретатор командной строки PHP не имеет никакого отношения к версии плагина Apache PHP. Таким образом, вывод php -v даст вам информацию только об установленном интерпретаторе командной строки PHP; phpinfo() - это то, что вы всегда должны использовать для подтверждения / проверки версии вашего фактического веб-сервера.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .