Вызывает ошибку подключения к SQL Server из PHP: разрешения? - PullRequest
0 голосов
/ 07 сентября 2011

У меня есть PHP-скрипт, который устанавливает соединение с удаленным SQL Server.Из командной строки от имени root я могу вызвать команду freetds: tsql –H hostname –U username, и он просто отлично соединяется, и я могу выполнять запросы.

У меня есть PHP-скрипт в / var / www / html /axis / public / test.php Когда я: sudo –u apache –s (меняю пользователя с root на apache), а затем запускаю мой PHP-скрипт из командной строки, он просто замечательно подключается и выполняет запросы.Но при выполнении того же сценария из веб-браузера происходит сбой - браузер возвращает ошибку подключения к БД.Веб-браузер может подключаться везде, где он должен, и отображает все веб-страницы, которым не требуется соединение SQL.

apache - это пользователь, который запускает httpd.Я подтвердил это через: ps aux |grep apache

Любые идеи о том, почему apache может нормально выполнять скрипт PHP из командной строки, но когда браузер пытается подключиться к тому же самому сценарию, он терпит неудачу?

Спасибо, Деррик

Ответы [ 2 ]

0 голосов
/ 07 сентября 2011

Так что проблема была с SELinux. Веб-серверу было запрещено подключаться вне сети (к SQL-серверу). Я должен был выполнить эту команду:

/ usr / sbin / setsebool -P httpd_can_network_connect_db 1

Как только это было сделано, все было хорошо. Этот ответ был предоставлен с помощью Даниэля Фазекаса. Спасибо всем за внимание к этой проблеме со мной.

0 голосов
/ 07 сентября 2011

Согласно FAQ по FreeTDS:

http://www.freetds.org/faq.html#php

Также вы можете опубликовать свой код подключения и какую именно ошибку вы получаете?

...