尝试在Fedora 28上安装php_sqlsrv扩展时出现错误500

时间:2019-12-13 09:43:35

标签: php sql-server sql-server-2012 windows-server-2008 fedora

我有2台服务器连接到同一网络。其中之一是 Fedora Web服务器,其中包含网页和表单。另一个是 Windows Server 2008 R2 ,其中包含一个 SQL Server 2012

我一直试图将sqlsrv扩展名安装到Web服务器中,以将表单连接到 Windows Server 上的数据库。

我遵循了this tutorial in spanishthis other one,但仍然无法使用。当我尝试输入表格时,发生500错误。

  

无法加载资源:服务器响应状态为500   (内部服务器错误)

这是我必须尝试连接到数据表的代码。

<?php
    function FormatErrors( $errors )
    {

     /* Display errors. */

     echo "Error information: <br/>";


      if(!$errors || is_array($errors) ) {
           return ;
      }

     foreach ( $errors as $error );

     {

     echo "SQLSTATE: ".$error['SQLSTATE']."<br/>";

     echo "Code: ".$error['code']."<br/>";

     echo "Message: ".$error['message']."<br/>";

     }

    }

$q = isset($_GET['q'])? intval($_GET['q']) : 0;
$serverName = "192.168.9.10:1433";
$conInfo = array ( "Database"=>"logytel", "UID"=>"sa", "PWD"=>"password");
$con = sqlsrv_connect($serverName, $conInfo);
if ($con) {
    echo "Conexión establecida.<br>";
}else{
    echo "La conexión no se pudo establecer.<br>";
    die( print_r(sqlsrv_errors(), true));
}

    sqlsrv_select_db($con,"ajax_demo");
    $sql="SELECT * FROM prueba1 WHERE codigo = '".$q."'";

    $getResults= sqlsrv_query($con, $sql);

    if ($getResults == FALSE) {

      die(FormatErrors(sqlsrv_errors()));
    }


    $cantidad_encontrado = sqlsrv_num_rows($getResults);

    if ($cantidad_encontrado > 0) {

            echo "<table>
                  <tr>
                  <th>Código</th>
                  <th>Nombre</th>
                  <th>Apellidos</th>
                  <th>Proyecto</th>
                  </tr>";  

            while($row = sqlsrv_fetch_array($getResults)) {
                echo "<tr>";                                
                echo "<td>" . $row['codigo'] . "</td>";    
                echo "<td>" . $row['nombre'] . "</td>";    
                echo "<td>" . $row['apellidos'] . "</td>";  
                echo "<td>" . $row['proyecto'] . "</td>";
                echo "</tr>";
            }

            echo "</table>";


    sqlsrv_free_stmt($getResults);
    sqlsrv_close($con);


    }else{
        echo "<h1>NO ENCONTRE DATOS </h1>";
    }

    ?>

    <!DOCTYPE html>
    <html>
    <head>
    <script>
        function showUser(str) {
        if (str == "") {
            document.getElementById("txtHint").innerHTML = "";
            return;
        } else {
            if (window.XMLHttpRequest) {
                // code for IE7+, Firefox, Chrome, Opera, Safari
                xmlhttp = new XMLHttpRequest();
            } else {
                // code for IE6, IE5
                xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");
            }
            xmlhttp.onreadystatechange = function() {
                if (this.readyState == 4 && this.status == 200) {
                    document.getElementById("txtHint").innerHTML = this.responseText;
                }
            };
            xmlhttp.open("GET","getuser.php?q="+str,true);
            xmlhttp.send();
        }
        }
    </script>
    </head>

    <body>
      <form>
        <select name="users" onchange="showUser(this.value)">
          <option value="">Select a person:</option>
          <option value="1">Luis</option>
          <option value="2">Nora</option>
          <option value="3">Aron</option>
        </select>
      </form>
      <br>
      <div id="txtHint"><b>Selecciona tu nombre</b></div>
    </body>
    </html>

我尝试通过命令行安装所有内容,但是命令yum install php-sqlsrv无效,因此我尝试手动下载 .so文件,然后添加它们到相应的目录( / usr / lib64 / php / modules / )。添加它们后,我将修改 php.ini 文件并添加以下行:

[SQL Server]

extension=php_pdo_sqlsrv_72_nts.so
extension=php_sqlsrv_72_nts.so

然后,我转到 .so文件所在的目录( /etc/php.d /

/etc/php.d/

查看 30-pdo_sqlsrv.ini (创建的文件),我插入:

extension=php_pdo_sqlsrv_72_nts.so

查看 pdo_sqlsrv.so (重复3次):

extension=pdp_sqlsrv.so

并查看出现的最后一个文件 sqlsrv.ini (重复3次):

extension=sqlsrv.so

然后,我重新启动httpd服务(service httpd restart)检查了文件 phpinfo.php ,但仍然没有出现sqlsrv部分。

我不知道该怎么办,我需要连接两个服务器。我卸载了所有内容,然后重新安装了所有内容,例如3次,但没有解决问题。我在寻找其他方法来做,但是没有其他结果。除了我之前提到的安装以外,它没有给我安装任何错误。

我没有创建或编辑任何文件吗?我在做什么错了?

0 个答案:

没有答案