Я пытаюсь настроить промежуточный сервер на виртуальной машине на моем локальном ПК. Установлен 64-битный сервер Ubuntu 10.4.2 LTS. У меня есть еще одна виртуальная машина на том же компьютере, работающая в качестве постоянного сервера, поэтому я настроил переадресацию портов на маршрутизаторе для отправки ssh на 3060 и http на 3050 на внутренний IP-адрес этой виртуальной машины (192.68.1.13). Я работаю над приложением rails 3, и я использую deprec и capistrano для автоматизации установки и развертывания.
В качестве первого шага я заставил процесс работать над prt 3060 для ssh, но я оставил apache на 80-м порту. Это отлично сработало, когда я указал браузеру на 192.168.1.13. Затем я добавил строку «Listen 3050» в свой файл /etc/apache2/ports.conf:
Listen 80
Listen 3050
<IfModule mod_ssl.c>
Listen 443
</IfModule>
После перезапуска виртуальной машины веб-страница просто выдала сообщение об ошибке rails после попытки переподключиться к браузеру. Проверка production.log показала следующую ошибку:
Mysql2 :: Error (Не удается подключиться к локальному серверу MySQL через сокет '/var/run/mysqld/mysqld.sock' (2)):
Несколько полезных советов [здесь] [1] помогли мне понять, что сервер mysql не работает.
Затем я побежал:
sudo mysqld -verbose
который показал мне, что существует неизвестная опция «skip-bdb», вызывающая сбой mysql.
Проверка my.conf показала, что эта опция была установлена там. Я закомментировал это и смог успешно запустить mysqld. Приложение rails снова заработало.
Может ли кто-нибудь помочь мне узнать, почему добавление одной строки в /etc/apache2/ports.conf привело к тому, что mysql отключил эту опцию? Кроме того, с помощью deprec у вас есть возможность настроить файл apache-vhost локально и загрузить его при развертывании. Если я добавил туда *: 3050, это также предотвратило запуск mysql во время автоматического развертывания, что привело к сбою всей установки. Думаю, проблемы связаны.
Спасибо, Джон
Проблема Apache и проблема MySQL напрямую не связаны. В skip-bdb
в вашем файле, вероятно, была опечатка, попытка ввести skip-ndb
, что является допустимым параметром конфигурации.
Где-то по пути my.cnf
файл был изменен с неправильной конфигурацией (ваше автоматическое развертывание перезаписывает этот файл недопустимой настройкой? Это также объясняет, почему ваше развертывание также не выполняется), но проблема не возникала до тех пор, пока служба не была перезапущена, когда вы перезагружались для изменения Apache , заставляя проблемы казаться связанными.
Найдите причину плохой настройки и исправьте ее.