2016-03-30 127 views
1

我有一个代码,它使用freetdsmssql连接。当我从命令行运行时,它完美地工作。当我通过浏览器使用nginxphp-fmp运行时,它失败。代码如下:nginx php-fpm不能与freetds一起工作但用php工作

<?php 
    $host = "myhost"; 
    $user = "username"; 
    $pass = "password"; 
    $db = "database"; 
    $table = "user"; 
    try { 
    $conn = mssql_connect($host, $user, $pass); 
    mssql_select_db($db, $conn); 
    $query = "SELECT COUNT(*) FROM [".$db."].[dbo].[".$table."]"; 
    $query_result = mssql_query($query , $conn); 
    echo "The count of ".$table." is: "; 
    $result = mssql_result ($query_result,0,0); 
    var_export($result); 
    mssql_close($conn); // close connection 

    } catch (Exception $e) { 
    throw new Exception("The script exited with an exception ===========================".PHP_EOL." ERROR TYPE ------------> ".$e); 
    } 

?> 

回答

0

好,对我来说,问题是SELinux的

确保这两个变量ON:

# getsebool -a | grep httpd_can_network_connect 
httpd_can_network_connect --> on 
httpd_can_network_connect_db --> on 

,使他们,如果他们不上:

setsebool -P httpd_can_network_connect 1 
setsebool -P httpd_can_network_connect_db 1 
相关问题