В настоящее время у меня есть сайт под управлением MySQL и PHP, в котором все это работает. Я попытался установить WAMPServer, чтобы иметь возможность работать на сайте на моем собственном компьютере, но у меня были проблемы с попыткой заставить сайт работать правильно.mysql_connect() приводит к тому, что страница не отображается (WAMP)
Файлы HTML и PHP работают правильно (перейдя на http://localhost/index.php и т. Д.). Но на некоторых страницах отображается «Эта веб-страница недоступна» (в Chrome) или «Internet Explorer не может отображать эту веб-страницу», что заставляет меня думать, что ошибка - это сервер, так как, когда страница не существует, обычно dispays «Ой! Эта ссылка, кажется, сломана» или стандартная страница 404 IE.
Каждая страница моего сайта имеет вызов include() для установки экземпляра класса для обработки всех транзакций базы данных. Этот класс открывает подключение к базе данных в своем конструкторе. Я обнаружил, что комментирование содержимого конструктора позволит загружать страницу, хотя это, по понятным причинам, вызывает ошибки позже на странице.
Это содержимое включаемого файла:
class dbAccess {
private $db;
function __construct() {
$this->db = mysql_connect("localhost","root","") or die ("Connection for database not found.");
mysql_select_db("dbName", $this->db) or die ("Database not selected");
}
...
}
Как примечание для того, что здесь происходит. Я пытаюсь использовать базу данных на своем сайте, а не локальную машину. Фактические значения dbName, user и password работают, когда я подключаю их к своему программному обеспечению базы данных (Navicat Lite) и правильно работаю над окончательной версией сайта, поэтому я не думаю, что проблема связана с этими значениями, а скорее некоторые настройки с Apache или Wamp.
Это отрывок из моего журнала ошибок Apache для одной попытки входа на сайт:
[Wed Apr 14 15:32:54 2010] [notice] Parent: child process exited with status 255 -- Restarting.
[Wed Apr 14 15:32:54 2010] [notice] Apache/2.2.11 (Win32) PHP/5.3.0 configured -- resuming normal operations
[Wed Apr 14 15:32:54 2010] [notice] Server built: Dec 10 2008 00:10:06
[Wed Apr 14 15:32:54 2010] [notice] Parent: Created child process 1756
[Wed Apr 14 15:32:55 2010] [notice] Child 1756: Child process is running
[Wed Apr 14 15:32:55 2010] [notice] Child 1756: Acquired the start mutex.
[Wed Apr 14 15:32:55 2010] [notice] Child 1756: Starting 64 worker threads.
[Wed Apr 14 15:32:55 2010] [notice] Child 1756: Starting thread to listen on port 80.
Я пытался искать решения в Интернете, но не смогли найти ничего, чтобы помочь. Если вам нужна дополнительная информация, чтобы помочь решить эту проблему, не стесняйтесь ее просить.
(Еще одно замечание, я даже не Skype на этом компьютере, так что я не могу видеть, что это является проблемой, так как этот конфликт, как представляется, ответ по умолчанию для любого вопроса WAMP.)
[Редактировать: Удалена запись из журнала ошибок, поскольку она была решена как проблема, связанная с ошибкой] [Изменить: просмотрев документацию моих хостов, я обнаружил, что все порты, кроме 80 и 443 (для HTTP и HTTPS), заблокированы, t позволяют внешние соединения, как то, что я пытался сделать здесь. Я изменил его на локальную базу данных, но по-прежнему получаю ту же ошибку. Проблема все еще открыта.]
Вы проверили, что PHP использует плагин MySQL? Является ли порт MySQL на целевом удаленном компьютере портом по умолчанию, и если да, правильно ли он пересылается через любой брандмауэр, который может присутствовать в удаленной системе? – Dereleased
Спасибо за супер быстрый ответ! Я использую Navicat Lite для доступа к базе данных. Установки для используемого мной соединения используют порт 3306 (я предполагаю, что это значение по умолчанию), и соединение работает. Я предполагаю, что это будет означать, что брандмауэр тоже должен быть хорош здесь? Для расширений PHP я вижу, что включены как php_mysql, так и php_mysqli. (Я проверил это, щелкнув левой кнопкой мыши на Wampserver> PHP> Расширения PHP и проверил, что расширение установлено. Я проверяю настройки брандмауэра, чтобы узнать, нужно ли мне делать исключение для Wamp Server или Apache. – VOIDHand
это «только» среда разработки/тестирования, вы установили 'error_reporting = E_ALL | E_STRICT',' display_errors = On' и 'display_startup_errors = On' в php.ini (и проверили эти значения через' phpinfo() ')? (Опция 'display_' определенно не обязательна, пока вы следите за журналом ошибок) – VolkerK