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