2016-05-04 31 views
0

CentOS LinuxシステムでPHP経由でMSSQlサーバーに接続したいと思います。しかし、エラー以下になる、CentOS 7にMSSQLがインストールされていないPHP

Fatal error: Call to undefined function mssql_connect() in /var/www/h..... 

私はいくつかのサイトを参照して解決策を見つけました。しかしそれも働かない。 ここで私は、この問題を解決する方法

yum install php5-sybase 
Loaded plugins: fastestmirror, langpacks 
apt.sw.be_redhat_el2.1_en_mirrors-rpmforge| 1.9 kB 00:00:00 
remi-safe         | 2.9 kB 00:00:00 


One of the configured repositories failed (Unknown), 
and yum doesn't have enough cached data to continue. At this point the only 
safe thing yum can do is fail. There are a few ways to work "fix" this: 

    1. Contact the upstream for the repository and get them to fix the problem. 

    2. Reconfigure the baseurl/etc. for the repository, to point to a working 
     upstream. This is most often useful if you are using a newer 
     distribution release than is supported by the repository (and the 
     packages for the previous distribution release still work). 

    3. Disable the repository, so yum won't use it by default. Yum will then 
     just ignore the repository until you permanently enable it again or use 
     --enablerepo for temporary usage: 

      yum-config-manager --disable <repoid> 

    4. Configure the failing repository to be skipped, if it is unavailable. 
     Note that yum will try to contact the repo. when it runs most commands, 
     so will have to try and fail each time (and thus. yum will be be much 
     slower). If it is a very temporary problem though, this is often a nice 
     compromise: 

      yum-config-manager --save --setopt=<repoid>.skip_if_unavailable=true 

Cannot find a valid baseurl for repo: rpmforge 

、のphp5-sybaseをインストールしようとしますが、いくつかのエラーを取得しています。

答えて

1

PHP-MSSQLmssqlpdo_dblib拡張機能を提供EPELリポジトリに入手可能です。

そして、yumのエラー出力で説明したように、あなたはrpmforgeを無効にする必要があります(おそらくapt.sw.be_redhat_el2.1_en_mirrors-rpmforge)

注意:この拡張機能は廃止されたとのために、だから、PHP 7で削除されますより良い保守性、私はPDOドライバを使用することをお勧めします。

yum install https://dl.fedoraproject.org/pub/epel/epel-release-latest-7.noarch.rpm 
yum install php-mssql 
+0

EPELからリポジトリURLを取得してインストールしました。しかし、私はエラーが発生しました。 [root @ localhost tmp]#yum install php5-sybase ロードされたプラグイン:fastestmirror、langpacks キャッシュされたホストファイルからのミラー速度の読み込み パッケージphp5-sybaseは利用できません。 エラー:何もしない [root @ localhost tmp]# – selvan

+0

私の答えを読む、パッケージはphp5-sybase –

+0

ではないphp-mssqlです。yum install php-mssql ....同じ問題が発生しました – selvan

0

私はEPELからリポジトリURLを取得してインストールしました。しかし、私は得た

[[email protected] tmp]# yum install php5-sybase 
Loaded plugins: fastestmirror, langpacks 
Loading mirror speeds from cached hostfile 
No package php5-sybase available. 
Error: Nothing to do 
[[email protected] tmp]# 

何が問題なのですか?

0

誰もここに来るのかどうか分かりませんが、私の問題はオプションのRPMが有効になっていないことでした。私は一日中このアンインストールと再インストールに費やしました。しかし、私はこの脚注をどこかで見つけました。

RHNユーザーの方 EPELパッケージを使用するには、オプションのリポジトリも有効にする必要があります。これは、RHEL-ClassicのRHELオプションサブチャネルを有効にすることで実行できます。証明書ベースのサブスクリプションについては、「Red Hatサブスクリプション管理ガイド」を参照してください。 EPEL 7では、オプションのリポジトリ(rhel-7-server-optional-rpms)に加えて、 'extras'リポジトリ(rhel-7-server-extras-rpms)も有効にする必要があります。

3

CentOSの上のSQL Server用のPHPドライバをインストールするには、ここで私が推薦するものです。

sudo su 
curl https://packages.microsoft.com/config/rhel/7/prod.repo > /etc/yum.repos.d/mssql-release.repo 
exit 
sudo ACCEPT_EULA=Y yum install msodbcsql 
sudo yum install unixODBC-devel 
yum groupinstall "Development Tools" 
sudo pecl install sqlsrv pdo_sqlsrv 
sudo echo "extension= pdo_sqlsrv.so" >> `php --ini | grep "Loaded Configuration" | sed -e "s|.*:\s*||"` 
sudo echo "extension= sqlsrv.so" >> `php --ini | grep "Loaded Configuration" | sed -e "s|.*:\s*||"` 

は今、あなたはこのような単純なPHPスクリプトを使用してSQL Serverに接続することができるはずです。

<?php 
$serverName = "localhost"; 
$connectionOptions = array(
    "Database" => "SampleDB", 
    "Uid" => "sa", 
    "PWD" => "your_password" 
); 
//Establishes the connection 
$conn = sqlsrv_connect($serverName, $connectionOptions); 
if($conn) 
    echo "Connected!" 
?> 
+0

Life Saver、これはCentos 7で動作しました...多くのありがとう – m453h

関連する問題