2010-05-14 10 views
8

Tôi đã được giao nhiệm vụ tạo ứng dụng PHP truy cập cơ sở dữ liệu PostgreSQL hiện có. Đây là lần đầu tiên tôi làm việc với Postgre, chưa kể đến PHP đã được cài đặt trong hộp Linux mà trên đó ứng dụng được cho là chạy. Tôi không có kinh nghiệm thiết lập công cụ này, tôi chỉ cần viết mã.pgsql.so không được tải trong PHP

Câu hỏi của tôi là dường như tôi không thể làm cho tiện ích mở rộng Postgre hoạt động trong PHP. Tôi đã kiểm tra tệp php.ini, không có dòng "extension = ...". Vì vậy, tôi đã thêm "extension = pgsql.so". Sau đó tôi đã kiểm tra "extension_dir" và thấy rằng chỉ có 2 tệp trong đó (ldap.so, phpcups.so), tôi đã thêm tệp pgsql.so được lấy từ một hộp Linux khác. Tôi đã khởi động lại httpd. Và nó không hoạt động. Tôi không thể tìm thấy bất kỳ "pgsql" hoặc "postgre" trong phpinfo().

Tha thứ cho sự noobness của tôi. Tôi biết quá ít Linux. Tôi thực sự sẽ đánh giá cao nếu bạn có thể chỉ cho tôi đúng hướng.


tôi đã sử dụng đề nghị được đưa ra bởi number5:

Dude, tôi đang trên RedHat. Tôi đã sử dụng "yum" phiên bản của lệnh mà bạn đã đưa ra, và tôi nhận điều này:

[root @ Perseus ~] # yum install php-pgsql Loading "installonlyn" plugin Thiết lập cài đặt Process Thiết lập kho không thể truy mirrorlist http://mirrorlist.centos.org/?release=5&arch=x86_64&repo=extras lỗi là [Errno 4] IOError: lỗi: không thể tìm thấy một baseurl hợp lệ cho repo: extras


Thật không may, máy chủ Linux tôi đang sử dụng là không kết nối với Internet. Có cách nào khác để cài đặt không?

+1

Trông giống như một câu hỏi cho ServerFault. –

+0

hy vọng bạn đã giải quyết được vấn đề của mình. Nếu không, bạn có thể tải về các rpms cần thiết và cài đặt bằng lệnh rpm. wget http://mirrors.gigenet.com/centos/5.4/os/x86_64/CentOS/php-pdo-5.1.6-23.2.el5_3.x86_64.rpm wget http://mirrors.gigenet.com/ centos/5.4/os/x86_64/CentOS/php-pgsql-5.1.6-23.2.el5_3.x86_64.rpm rpm -ivh * .rpm nếu nó cho bạn biết rằng một số chi tiết bị thiếu, bạn có thể tìm thấy ở đây http : //mirrors.gigenet.com/centos/5.4/os/x86_64/CentOS/ liên kết tải xuống giả định rằng CentOS của bạn là 5.4 x86_64 – number5

+0

cảm ơn số5, siêu! – Obay

Trả lời

9

Tùy thuộc vào bản phân phối Linux bạn đang sử dụng.

Nếu bạn đang sử dụng Ubuntu/Debian, bạn cần phải:

sudo apt-get install php5-pgsql 

Fedora/CentOS

yum install php-pgsql 

thường bạn có thể tìm ra các distro bạn đang ở trên theo:

ls /etc/*-release 
+0

Dude Tôi đã thêm một số nhận xét ở trên – Obay

1
  • Xóa tệp .so bạn đã sao chép từ máy khác e (mặc dù nó có thể hoạt động, không cần phải chịu rủi ro)
  • Sử dụng trình quản lý gói của bản phân phối để cài đặt mô-đun php_pgsql/php5_pqsql
  • Khởi động lại apache và thử lại. Có lẽ các module đã được thêm vào một file .ini Automagically
  • Nếu không, hãy chạy <?php echo 'ini: ', get_cfg_var('cfg_file_path'); để xem php.ini bạn phải chỉnh sửa
  • chỉnh sửa tập tin ini này
  • restart apache
3

On Tiện ích mở rộng CentOS tạo tệp * .ini riêng biệt cho mỗi phần mở rộng php trong /etc/php.d

Vì vậy, đừng thay đổi tệp * .ini chính, nhưng tạo /etc/php.d/pgsql.ini và thêm có một dòng

extension=pgsql.so 

Sau đó, bạn sẽ cần phải khởi động lại Apache bằng

service httpd restart 

Nhưng cách tự động tốt nhất là chỉ cần gõ

yum install php-pgsql 

Trong trường hợp của bạn mà didn' t làm việc vì một số vấn đề trong cấu hình yum. Tới /etc/yum-repos.d Loại

nano /etc/yum.repos.d/CentOS-Base.repo 

Cuộn xuống [extras] phần và đảm bảo nó là như thế này:

#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 

Đúng nó nếu cần thiết, tiết kiệm file (Ctrl- X) và thực hiện như sau:

yum clean all 
yum upgrade 

sau đó cố gắng lặp lại

yum install php-pgsql 
+0

nó nói: Lỗi cấu hình: Tệp chứa lỗi phân tích cú pháp: tệp: /////etc/yum.repos.d/CentOS-Base.repo [dòng 41]: '= extras \ n ' – Obay

+0

Ai nói? Phiên bản CentOS của bạn là gì? Có thể, bạn nên loại bỏ chuỗi "ưu tiên"? –

-1

My hệ thống vận hành Linux bạc hà kde và có cùng một vấn đề

pg_connect()

Bạn phải cài đặt nếu bạn đang sử dụng php5.6

sudo apt-get install php5.6-pgsql 

Sau khi bạn phải thay đổi tên gia hạn trong "php.ini" tập tin.

;extension=php_pgsql.dll 

'dll' thành 'quá'

Ví dụ

extension=php_pgsql.so 
+1

Điều này có vẻ như là một vấn đề khác. Để bắt đầu, OP đã có dòng cấu hình chính xác như được viết. –