Я действительно чувствую, что провел исчерпывающий поиск по этому вопросу, нашел похожие проблемы и безуспешно пробовал ряд вещей, поэтому я впервые задаю вопрос здесь:
Я делаю много веб-страниц/веб-программирования (в основном PHP/jQuery) и размещаю эти страницы на сервере Drupal/Ubuntu моего отдела цифровой библиотеки. Я просто кодирую их и публикую через Dreamweaver, так как интерфейс Drupal мне не особо нужен. Мне просто нужен сервер для моих страниц.
В любом случае, я хочу создать несколько страниц PHP, которые могут подключаться к каталогу нашей библиотеки, поэтому я работал из командной строки сервера Drupal/Ubuntu. Установил unixODBC, повозился, установил FreeTDS, настроил драйвера и DSN.
Окончательно...
Мне удалось подключиться к нашему каталогу через tsql и выполнить запрос.
Я сделал базовый PHP-скрипт для проверки соединения:
Он работает из командной строки сервера Ubuntu (соединение успешно).
Он не работает, когда я загружаю его в браузере. Я получаю ужас:
Предупреждение: odbc_pconnect(): ошибка SQL: [unixODBC][Диспетчер драйверов]Имя источника данных не найдено, и драйвер по умолчанию не указан, состояние SQL IM002 в SQLConnect в /var/www/mydirectory/mytestpage.php в строке 15
ОБНОВЛЕНИЕ: я установил тестовый сервер Ubuntu в раздел на моем ноутбуке, где я начал с чистого листа, установил Apache2/PHP5 (с модулями mssql и odbc и т. д.)/FreeTDS и т. д. Я получил соединение tsql . Я сделал базовый PHP-скрипт и успешно запустил его из командной строки. Затем я перешел на страницу php из браузера, и это сработало! Мне все еще нужно, чтобы это произошло в версии сервера Drupal, но теперь я, по крайней мере, сузил проблему до чего-то на Drupal. сервер.
Я искал и нашел такие возможные причины, как:
Права доступа к файлам, которые, я думаю, были исправлены, но не идут
Возможно, я настроил пользовательский DNS, а не системный DNS, который я изо всех сил пытался исправить с помощью правильных параметров команды «odbcinst».
Возможно, php должен работать в режиме CGI, а не как модуль. Но это казалось маловероятным из того, что я читал. И я не уверен, как это повлияет на Drupal. (Существуют ограничения на общесистемные изменения, которые я должен внести здесь.)
Несколько человек сказали, что SElinux блокирует Apache от отображения страницы в браузере, но временное отключение SElinux не сработало.
Спасибо за любую помощь!