我的任务是创建一个访问现有PostgreSQL数据库的PHP应用程序。这是我第一次使用Postgre,更不用说PHP已经安装在应该运行应用程序的Linux机器中。我没有设置这些东西的经验,我只是编码。
我的问题是我似乎无法使用PHP进行Postgre扩展。我检查了php.ini文件,没有“extension = ...”行。所以我添加了“extension = pgsql.so”。然后我检查了“extension_dir”,发现那里只有2个文件(ldap.so,phpcups.so),我添加了一个从另一个Linux盒子中取出的pgsql.so文件。我重启了httpd。它不起作用。我在phpinfo()中找不到任何“pgsql”或“postgre”。
原谅我的无知。我知道Linux太少了。如果你能指出我正确的方向,我将非常感激。
我使用了number5给出的建议:
伙计,我在RedHat上。我使用了你给出的命令的“yum”版本,我得到了这个:
[root @ perseus~] #yum install php-pgsql 正在加载“installonlyn”插件 设置安装过程 设置存储库 无法检索mirrorlist http://mirrorlist.centos.org/?release=5&arch=x86_64&repo=extras错误 [Errno 4] IOError: 错误:无法为repo找到有效的baseur:extras
UNFORTUNATELY,我正在使用的Linux服务器未连接到Internet。还有其他安装方法吗?
答案 0 :(得分:9)
这取决于您使用的是哪个Linux发行版。
如果您使用的是Ubuntu / Debian,则需要:
sudo apt-get install php5-pgsql
的Fedora / CentOS的
yum install php-pgsql
通常你可以找到你所在的发行版:
ls /etc/*-release
答案 1 :(得分:3)
在CentOS扩展上,在/etc/php.d中为每个php扩展创建一个单独的* .ini文件
所以,不要改变main * .ini文件,而是创建/etc/php.d/pgsql.ini并添加一行
extension=pgsql.so
然后您需要使用
重启Apacheservice httpd restart
但最好的自动化方式是输入
yum install php-pgsql
在你的情况下由于yum配置中的一些问题而无效。转到/etc/yum-repos.d 型
nano /etc/yum.repos.d/CentOS-Base.repo
向下滚动到[extras]部分并确保它是这样的:
#additional packages that may be useful
[extras]
priority=1
name=CentOS-$releasever - Extras
=extras
#baseurl=http://mirror.centos.org/centos/$releasever/extras/$basearch/
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-5
如果需要,请更正它,保存文件(Ctrl-X)并执行以下操作:
yum clean all
yum upgrade
然后尝试重复
yum install php-pgsql
答案 2 :(得分:1)
<?php echo 'ini: ', get_cfg_var('cfg_file_path');
以查看您必须编辑哪个php.ini 答案 3 :(得分:-1)
我的操作系统Linux mint kde和同样的问题
pg_connect()
如果您使用的是php5.6
,则必须安装sudo apt-get install php5.6-pgsql
必须在“php.ini”文件中更改扩展名后。
;extension=php_pgsql.dll
'dll'到'so'
例如
extension=php_pgsql.so