Làm cách nào để kết nối ODBC với PHP?
Tài liệu này chứa các hướng dẫn về cách hỗ trợ ODBC trong PHP hoạt động trong Apache và cụ thể là với trình điều khiển Easysoft ODBC Show
Easysoft đã thử nghiệm trình điều khiển ODBC của chúng tôi với Apache 1. 3. n - 2. 0. 50 và PHP3. 0. 0 - 5. 0. 0 và chúng tôi hy vọng chúng sẽ tương thích với các bản phát hành này Do lịch sử lâu đời của các bản phát hành Apache và PHP, có nhiều cách khác nhau để xây dựng/cài đặt chúng với sự hỗ trợ của ODBC. Chúng tôi đã cố gắng ghi lại các phương pháp này bằng phương pháp thông thường/phổ biến nhất trước tiên. Nếu bạn đang sử dụng bản sao Apache hoặc PHP cũ hơn, vui lòng xem " Tài liệu này đề cập đến phần mở rộng Unified ODBC PHP. Để biết thông tin về cách sử dụng trình điều khiển Easysoft ODBC với Đối tượng dữ liệu PHP (PDO)/PDO_ODBC, hãy xem hướng dẫn Easysoft này Đối với Apache 2. 0. x và PHP5. x, phương pháp được đề xuất được trình bày chi tiết tại đây. Nếu bạn đang xây dựng Apache 1. n và PHP4. n xem các phần bên dưới Apache hỗ trợ DSO (Đối tượng chia sẻ động) trên hầu hết các nền tảng hiện nay. PHP hỗ trợ tải các mô-đun PHP (dưới PHP) thông qua các mục mở rộng trong tệp php. tập tin ini 2. 1 Tòa nhà PHP 5. n và Apache 2. 0. n chính bạnPhần này mô tả cách xây dựng PHP 5. n và Apache 2. 0. n chính bạn. Bạn có thể cần phải làm điều này vì các bản phân phối nhị phân cho nền tảng của bạn không có sẵn hoặc không được xây dựng với các tùy chọn mà bạn yêu cầu Nhận các bản phân phối mã nguồn Apache và PHP từ các trang được liệt kê trong Phụ lục A, Các Liên kết Hữu ích Untar Apache, cd vào thư mục apache Luôn chạy /dir_where_you_want_apache/bin/apachectl restart9 với Apache để xem bạn có thể muốn đưa vào những tùy chọn nào khác. Ví dụ này sử dụng tất cả các giá trị mặc định Xây dựng Apache với rpm -i unixODBC-2.2.3-6.i386.rpm0. Điều này cho phép mô-đun DSO cho phép Apache tải động các mô-đun (như PHP) trong thời gian chạy Chạy ./configure --prefix=/dir_where_you_want_apache --enable-so Chạy rpm -i unixODBC-2.2.3-6.i386.rpm1 Chạy rpm -i unixODBC-2.2.3-6.i386.rpm2 Bây giờ bạn đã cài đặt Apache trong /dir_where_you_want_apache Đọc Cài đặt và cấu hình PHP Về cơ bản, bạn cần đảm bảo
Untar PHP, cd vào thư mục PHP Đối với PHP, hãy luôn chạy rpm -i unixODBC-2.2.3-6.i386.rpm3 với PHP để xem bạn có thể muốn đưa vào những tùy chọn nào khác Đọc php-5. x. x/INSTALL đề cập đến Cài đặt và cấu hình PHP chạy ./configure --with-apxs2=/dir_where_you_want_apache/bin/apxs --with-unixODBC=shared,/usr/local/easysoft/unixODBC rpm -i unixODBC-2.2.3-6.i386.rpm4 nói rằng unixODBC nên được xây dựng dưới dạng tiện ích mở rộng dùng chung và đường dẫn thư mục trỏ cấu hình của PHP đến nơi tìm unixODBC Đường dẫn bạn đặt trong rpm -i unixODBC-2.2.3-6.i386.rpm5 phụ thuộc vào việc bạn đang sử dụng unixODBC đi kèm với sản phẩm Easysoft hay bạn đã tự xây dựng/cài đặt unixODBC. Khi cài đặt các sản phẩm của Easysoft, unixODBC được cài đặt trong /usr/local/easysoft/unixODBC nhưng nếu bạn tự xây dựng unixODBC với tiền tố cấu hình mặc định thì nó sẽ nằm trong /usr/local. Ngoài ra, nếu bạn đã tải xuống RPM, v.v. thì unixODBC có thể nằm trong /usr. Bạn phải sửa đổi rpm -i unixODBC-2.2.3-6.i386.rpm6 một cách thích hợp Xây dựng php với rpm -i unixODBC-2.2.3-6.i386.rpm1 sau đó chạy rpm -i unixODBC-2.2.3-6.i386.rpm2 Bây giờ bạn sẽ có libphp. xx trong /dir_where_you_want_apache/modules và các phần mở rộng PHP (như odbc) trong /usr/local/lib/php/extensions/no-debug-non-zts-2004041 (trong đó thư mục cuối cùng có thể khác nhau tùy thuộc vào phần mở rộng PHP của bạn) sao chép php. ini-dist vào /usr/local/lib/php. ban đầu Bây giờ chỉnh sửa /usr/local/lib/php. ini và đảm bảo
Bây giờ hãy khởi động lại Apache. e. g /dir_where_you_want_apache/bin/apachectl restart Bây giờ bạn có thể viết một. phtml và đặt nó vào /dir_where_you_want_apache/htdocs có thể chạy. Thấy 2. 1. 1 LƯU Ý. Apache 2Apache 2 chạy ở chế độ xử lý/luồng kết hợp trên bất kỳ nền tảng nào hỗ trợ cả luồng và quy trình. Khi chạy đa luồng, bạn cần sử dụng bản phân phối OOB an toàn cho luồng và bạn nên xây dựng PHP với trình quản lý trình điều khiển unixODBC đi kèm với OOB. Các bản phân phối OOB an toàn cho luồng là những bản có chứa "-mt" trong tên tệp phân phối Nếu bạn đang xây dựng PHP cho Apache 2, hãy đảm bảo rằng bạn sửa đổi các hướng dẫn bên dưới chỉ định --with-apxs thành --with-apxs2 Bạn không cần sử dụng mô hình luồng trong Apache 2 - xem httpd. conf Phần này mô tả cách cài đặt Apache và PHP trên bản cài đặt RedHat 9 sạch. Hầu hết điều này cũng sẽ phù hợp với bất kỳ ai cài đặt từ RPM nhưng chi tiết ở đây là RedHat 9 cụ thể Cài đặt gói từ Shell PromptĐọc phần này nếu bạn thường thêm các gói RedHat từ dấu nhắc trình bao RedHat 9 chứa bản phân phối riêng của trình quản lý trình điều khiển unixODBC mà ví dụ này sử dụng. Tuy nhiên, các chi tiết đều có thể áp dụng như nhau cho mọi cài đặt unixODBC, cả từ gói nguồn và gói nhị phân Bạn có thể lấy RPM unixODBC từ RedHat (xem tài liệu) Cài đặt unixODBC RPM với rpm -i unixODBC-2.2.3-6.i386.rpm Sau khi cài đặt, bạn sẽ có quyền truy cập vào lệnh odbcinst có thể được sử dụng để xác minh phiên bản đã cài đặt odbcinst --version unixODBC 2.2.3 Bạn cũng có thể sử dụng odbcinst để tìm ra nơi nên xác định trình điều khiển và nguồn dữ liệu ODBC odbcinst -j unixODBC 2.2.3 DRIVERS............: /etc/odbcinst.ini SYSTEM DATA SOURCES: /etc/odbc.ini USER DATA SOURCES..: /home/person/.odbc.ini Cài đặt trình điều khiển ODBC mà bạn muốn sử dụng, tạo nguồn dữ liệu cho nó và kiểm tra nó với isql của unixODBC - xem Bạn có thể lấy PHP RPM từ RedHat (xem Phụ lục A. Liên kết hữu ích) Bây giờ hãy cài đặt PHP RPM chính rpm -i php-4.2.2-17.i386.rpm rpm -i php-odbc-4.2.2-17.i386.rpm và khởi động lại máy chủ web /etc/rc.d/init.d/httpd restart Bây giờ nhìn thấy Cài đặt Gói từ Máy tính để bàn KDEHãy đọc phần này nếu bạn thường thêm các gói RedHat từ K Desktop Môi trường Để cài đặt các gói Apache, PHP và unixODBC
Để hiển thị thông tin cấu hình unixODBC
Để khởi động Máy chủ web Apache
Bước tiếp theoCài đặt trình điều khiển ODBC mà bạn muốn sử dụng, sau đó tạo và kiểm tra nguồn dữ liệu ODBC. Để biết thông tin về cách thực hiện việc này, hãy xem Có bốn cách để xây dựng PHP 3. 4 để sử dụng với Apache 1
3. 1 LƯU Ý. tùy chọn cấu hình cụ thể trong PHPTừ PHP4b3, bạn có thể định cấu hình PHP cho OOB bằng tùy chọn rpm -i unixODBC-2.2.3-6.i386.rpm9 thay vì sử dụng tùy chọn odbcinst --version unixODBC 2.2.30. Tuy nhiên, nếu bạn đã cài đặt một bản phân phối OOB tiêu chuẩn (hoặc riêng unixODBC, chúng tôi thực sự khuyên bạn nên xây dựng PHP với trình quản lý trình điều khiển unixODBC và sau đó thêm trình điều khiển ODBC vào odbcinst của unixODBC. ini) 3. 2 LƯU Ý. Xây dựng nhiều trình điều khiển vào PHPXin lưu ý rằng bạn không thể xây dựng PHP với nhiều trình điều khiển ODBC hoặc trình quản lý trình điều khiển e. g. sử dụng bất kỳ hai từ ./configure --with-apxs2=/dir_where_you_want_apache/bin/apxs --with-unixODBC=shared,/usr/local/easysoft/unixODBC3 Nếu bạn muốn truy cập nhiều trình điều khiển ODBC từ PHP, phương pháp tốt nhất là cài đặt trình quản lý trình điều khiển unixODBC và sau đó thông báo cho trình quản lý trình điều khiển unixODBC về trình điều khiển ODBC của bạn. Trình quản lý trình điều khiển unixODBC có trong tất cả các bản phân phối sản phẩm Easysoft, có sẵn dưới dạng nguồn từ trang web unixODBC và thường có sẵn dưới dạng RPM, v.v. (gói) cho bản phân phối của bạn. Bạn cần sử dụng tùy chọn cấu hình --with-unixODBC cho PHP để xây dựng với trình quản lý trình điều khiển unixODBC Bạn có thể xây dựng PHP bằng trình điều khiển ODBC và trình điều khiển cơ sở dữ liệu không phải ODBC như Oracle® hoặc MySQL 3. 3 Tòa nhà PHP (3. n. 4. n) với sự hỗ trợ ODBC cho Apache (1. n) DSONếu bạn đã xây dựng Apache hoặc nó đi kèm với bản phân phối UNIX của bạn thì bạn có thể thêm hỗ trợ PHP mà không cần xây dựng lại Apache. Để làm được điều này, Apache phải được xây dựng với sự hỗ trợ của DSO. Để kiểm tra xem Apache của bạn có được xây dựng với hỗ trợ DSO hay không, bạn chạy httpd -l để liệt kê tĩnh các mô-đun được bao gồm - bạn cần tìm kiếm mod_so. c. Nếu bạn có mod_so thì bạn có thể xây dựng PHP dưới dạng mô-đun động Để xây dựng Apache từ đầu với sự hỗ trợ cho DSO, bạn cần chỉ định odbcinst --version unixODBC 2.2.31 để định cấu hình cho Apache Để xây dựng PHP động cho Apache, bạn sử dụng dòng cấu hình PHP tương tự như ./configure --with-apxs2=/dir_where_you_want_apache/bin/apxs --with-unixODBC=shared,/usr/local/easysoft/unixODBC4 Lưu ý, chúng tôi khuyên bạn không nên sử dụng các phiên bản unixODBC có dạng RPM trong RedHat 7. x, v.v. vì những thứ này dường như được xây dựng với sự hỗ trợ của luồng và điều này hiện không hoạt động với Apache DSO. Thay vào đó, hãy sử dụng bản phân phối unixODBC đi kèm với sản phẩm Easysoft 3. 4 Xây dựng tĩnh hậu PHP4b3 và Apache (1. n) với OOBVui lòng đọc các tệp CÀI ĐẶT trong các bản phân phối PHP và Apache trước khi làm theo các hướng dẫn này vì chúng có thể cung cấp thêm thông tin cập nhật về các chi tiết cụ thể của Apache và PHP Ví dụ bên dưới giả định rằng bạn đã cung cấp /usr/local làm đường dẫn cài đặt cho Easysoft ODBC-ODBC Bridge. Nếu đây không phải là trường hợp thì vui lòng thay đổi /usr/local thành đường dẫn cài đặt được chỉ định khi cài đặt Lưu ý, đây không phải là cách được đề xuất để xây dựng PHP vì nó hạn chế bạn chỉ sử dụng Easysoft ODBC-ODBC Bridge làm trình điều khiển ODBC trong khi việc xây dựng PHP bằng trình quản lý trình điều khiển cho phép bạn truy cập vào tất cả các trình điều khiển ODBC mà bạn cài đặt trong trình quản lý trình điều khiển Để xây dựng PHP với Apache và OOB, bạn nên làm theo công thức này
3. 5 Xây dựng tĩnh trước PHP4b3 và Apache (1. n) với OOBVui lòng đọc các tệp CÀI ĐẶT trong các bản phân phối PHP và Apache trước khi làm theo các hướng dẫn này vì chúng có thể cung cấp thêm thông tin cập nhật về các chi tiết cụ thể của Apache và PHP Ví dụ bên dưới giả định rằng bạn đã cung cấp /usr/local làm đường dẫn cài đặt cho Easysoft ODBC-ODBC Bridge. Nếu đây không phải là trường hợp thì vui lòng thay đổi /usr/local thành đường dẫn cài đặt được chỉ định khi Easysoft ODBC-ODBC Bridge được cài đặt Lưu ý, đây không phải là cách được khuyến nghị để xây dựng PHP vì nó hạn chế bạn chỉ sử dụng Easysoft ODBC-ODBC Bridge làm trình điều khiển ODBC trong khi việc xây dựng PHP bằng trình quản lý trình điều khiển cho phép bạn truy cập vào tất cả các trình điều khiển ODBC mà bạn cài đặt trong trình quản lý trình điều khiển. Nếu bạn muốn build bằng unixODBC Driver Manager bạn cần thay đường dẫn trong các ví dụ sau và thư viện. Tuy nhiên, bạn sẽ thấy hỗ trợ ODBC tốt hơn trong các phiên bản PHP sau này và chúng tôi khuyên bạn nên nâng cấp Để xây dựng PHP với Apache và OOB, bạn nên làm theo công thức này
Đây là nhật ký của một quy trình xây dựng điển hình extension_dir = "/usr/local/lib/php/extensions/no-debug-non-zts-20040412"2 Nếu bạn cần chạy đồng thời PHP3 và PHP4, điều này có thể đạt được trên một vài nền tảng. Vui lòng đọc kỹ hướng dẫn ở cuối file INSTALL của PHP trước Easysoft khuyên bạn nên xây dựng PHP bằng trình quản lý trình điều khiển unixODBC và không trực tiếp với bất kỳ sản phẩm Easysoft nào khi bạn muốn PHP3 và PHP4 Chúng tôi đã thử điều này thành công trên cấu hình sau
PHP3 đã được cấu hình với extension_dir = "/usr/local/lib/php/extensions/no-debug-non-zts-20040412"3 PHP4 đã được cấu hình với extension_dir = "/usr/local/lib/php/extensions/no-debug-non-zts-20040412"4 Rõ ràng là đối số của odbcinst --version unixODBC 2.2.32 phụ thuộc vào nơi bạn đã cài đặt Apache Chúng tôi cũng đã thêm phần sau vào httpd. tập tin conf extension_dir = "/usr/local/lib/php/extensions/no-debug-non-zts-20040412"5 extension_dir = "/usr/local/lib/php/extensions/no-debug-non-zts-20040412"6 Phần này sẽ chỉ cho bạn cách kiểm tra ODBC trong PHP dưới Apache. Nó giả sử bạn có
Bước đầu tiên và quan trọng nhất là xác minh trình điều khiển ODBC đã được cài đặt chính xác và bạn đã tạo/kiểm tra nguồn dữ liệu ODBC (DSN)
Bước quan trọng thứ hai là đảm bảo PHP của bạn đang hoạt động trong Apache (bất kể hỗ trợ ODBC trong PHP)
Bây giờ hãy thử hỗ trợ ODBC dưới Apache/PHP
B. 1 Khả năng rò rỉ kết nối ODBC trong PHPVào ngày 3 tháng 4 năm 2001, chúng tôi đã đăng nội dung sau lên nhóm tin tức OOB /dir_where_you_want_apache/bin/apachectl restart6 B. 2 treo code khi dùng nhiều câu lệnh active vào MS SQL ServerPhần tiếp theo là tập lệnh PHP giải thích sự cố và cách giải quyết /dir_where_you_want_apache/bin/apachectl restart7 Câu hỏi thường gặp về Easysoft trên trang web Easysoft là một tài nguyên rất hữu ích để tìm câu trả lời cho các sự cố thường gặp
|