У меня был PHP 5.3, работающий на старом сервере, который использует моя компания. У меня на сервере AWS работает PHP 5.5. Оба сервера - Ubuntu. Мое приложение отлично работает на моем сервере AWS. Но когда я переношу его на этот старый сервер, он перестает работать и продолжает говорить мне, что возникла проблема с подключением к базе данных. Сейчас я несколько раз перепроверил, что логин не проблема. Журнал ошибок говорит PHP Warning: mysqli::mysqli(): [2002] Connection refused
. Я проверил конфигурацию. Похоже, проблема в версии, так как я пишу приложение с mysqli
.
Следуя шагу этот вопрос и эта страница, Я попытался обновить свою версию PHP до 5.5. Но это не сработало, поскольку info.php
страница по-прежнему остается прежней. Поэтому я подумал, может быть, я просто удалю сервер apache2 и начну все сначала, введя эту команду: apt-get remove apache2
.
Но после того, как я это сделал, PHP просто перестает работать. Каждый раз, когда я пытаюсь открыть файл php в браузере, он автоматически загружает его. Теперь я не совсем понимаю, куда мне идти дальше. Стоит ли мне попытаться полностью удалить apache2, а затем заново установить его с самого начала? Вначале я установил сервер apache2. Сервер был довольно старым.
Кстати, я проверил настройку apache2 conf и убедился, что следующее правильно: Параметры Индексы FollowSymLinks AllowOverride Все Требовать все разрешено
Первый шаг: переустановите Apache.
Второй шаг: взгляните на настройки Apache и убедитесь, что строка
LoadModule php5_module /usr/lib/apache2/modules/libphp5.so
указывает на правильный путь (/usr/lib/apache2/modules/libphp5.so
в моем случае).
Использовать find
чтобы найти, где находится модуль PHP:
find /usr -name libphp5.so
Обычно не рекомендуется устанавливать что-либо из PPA на серверах, потому что обычно они предоставляют непроверенный (или не тщательно протестированный) код. Возможно, ваш новый PHP установил свои библиотеки по другому пути, ваш старый PHP все еще использовался и сбил вас с толку.
В качестве побочного примечания: попробуйте решить правильную проблему. Если ваш PHP работал нормально до обновления и перестал нормально работать после обновления, Apache не будет виновником. Сосредоточение внимания только на PHP упростило бы решение проблемы без потери всей конфигурации Apache (надеюсь, вы не использовали чистка при снятии).
Мое решение проблемы в конце: я удаляю стек LAMP с помощью этой команды:
sudo apt-get remove apache2 apache2-mpm-prefork apache2-utils apache2.2-common libapache2-mod-php5 libapr1 libaprutil1 libdbd-mysql-perl libdbi-perl libmysqlclient15off libnet-daemon-perl libplrpc-perl libpq5 mysql-client-5.0 mysql-common mysql-server mysql-server-5.0 php5-common php5-mysql
Затем я удаляю PPA с помощью этой команды:
sudo add-apt-repository --remove ppa:ondrej/php5
Затем я переустанавливаю стек LAMP. После этого я изменил php-файл для входа в базу данных на localhost вместо 127.0.0.1. Вола! Решено!