Làm cách nào để biết mysqli có được bật trong php không?

PHP chưa được cấu hình đúng với phần mở rộng MySQLi để giao tiếp với MySQL. Vui lòng kiểm tra php của bạn. ini hoặc biên dịch lại PHP

bởi Perry Way - Thứ Tư, ngày 3 tháng 11 năm 2021, 5. 16 giờ sáng

Số lượng trả lời. 14

Đây là một điều hoàn toàn tuyệt vời. Hai trong số các trang web lưu trữ của chúng tôi mới bắt đầu tạo ra lỗi này.

PHP chưa được định cấu hình đúng với tiện ích mở rộng MySQLi để giao tiếp với MySQL. Vui lòng kiểm tra php của bạn. ini hoặc biên dịch lại PHP.

Tôi đang sử dụng máy chủ Windows, chạy IIS với PHP 7. 4. 23 ban đầu, sau đó thử PHP 7. 3. 32 rồi thử PHP 7. 1. 33 [các trang web lưu trữ đang chạy các phiên bản Moodle cũ hơn].

Điều này xảy ra một cách bất ngờ. Nó vẫn hoạt động tốt cho đến thứ Năm hoặc thứ Sáu tuần trước. Điều buồn cười là nó không xảy ra trên các trang web khác, chỉ có hai. Và cho đến sớm hôm nay, tất cả các trang web đều sử dụng cùng một phiên bản/triển khai PHP. Tôi đã bật gỡ lỗi và tìm thấy vị trí mã đang gọi nếu [. extension_loaded['mysqli'] trong /lib/dml/mysqli_native_moodle_database. php trên dòng 111 trên trang Moodle này và thêm lệnh gọi tới print_r[get_loaded_extensions[]]; .

Mảng[[0] => Lõi[1] => bcmath[2] => lịch[3] => ctype[4] => ngày[5] => bộ lọc[6] .
If you notice, mysqli is not on this list. 

Tuy nhiên, trên các trang web khác, nó vẫn hoạt động. Đây là tình huống bất thường nhất mà tôi nghĩ rằng tôi đã phải hẹn hò.

Tôi đã cài đặt một số phiên bản PHP ngược thời gian. Một số 64 bit, một số 32 bit. Cả hai phiên bản an toàn luồng và không an toàn luồng. Đã thử tất cả. Kết quả tương tự như trên.

Có ai có chút manh mối nào về nguyên nhân có thể gây ra hành vi này không?

Các trang web lưu trữ của chúng tôi tồn tại vì nhiều lý do, một trong số đó là để . Và không cần phải nói tôi cần lấy lại cái này và chạy.

Xin lưu ý bạn, các trang web này vẫn hoạt động tốt cho đến vài ngày trước. Trang web Moodle chính của chúng tôi đang chạy bình thường. Thiết lập tương tự. Các trang Wordpress của chúng tôi cho trang trường chính của chúng tôi và trang cửa hàng của trường chúng tôi đang hoạt động tốt. Tất cả họ đều sử dụng cùng một PHP và tất cả đều sử dụng giao diện mysqli [chứ không phải pdo_mysql].


Trung bình của xếp hạng. -

Trả lời Perry Way

Lại. PHP chưa được cấu hình đúng với phần mở rộng MySQLi để giao tiếp với MySQL. Vui lòng kiểm tra php của bạn. ini hoặc biên dịch lại PHP

bởi Ken Task - Thứ Tư, ngày 3 tháng 11 năm 2021, 7. 01 giờ sáng

Tạo một phpinfo. trang php

https. //www. inmotionhosting. com/support/trang web/cách-tạo-trang-phpinfo/

và đặt nó ở thư mục gốc của mã

Sau đó truy cập phpinfo đó. trang php trực tiếp với trình duyệt

Trang đó không yêu cầu trình điều khiển DB và nó sẽ hiển thị nhiều thông tin để bạn sử dụng để tìm hiểu sâu hơn về vấn đề - như

cách biên dịch, đường dẫn đến thư mục nơi php tải tiện ích mở rộng, v.v. Và chắc chắn rằng bạn đã kiểm tra php. trang ini

Chỉ có một điều nhận thấy trong những gì bạn đã chia sẻ cho đến nay. có một mysqlnd đang tải

uhhh. tôi không phải là người của Windows. Chỉ cố gắng giúp đỡ.

'SoS', Ken

Trung bình của xếp hạng. Hữu ích [1]

Trả lời Ken Task

Lại. PHP chưa được cấu hình đúng với phần mở rộng MySQLi để giao tiếp với MySQL. Vui lòng kiểm tra php của bạn. ini hoặc biên dịch lại PHP

bởi Perry Way - Thứ Tư, ngày 3 tháng 11 năm 2021, 9. 57 giờ chiều

Tôi đã làm điều đó trước đây. Không có gì hữu ích hơn trong trường hợp này trong đầu ra phpinfo[]. Mysqlnd là một thứ bình thường xuất hiện trong tất cả các trang web khác của chúng tôi sử dụng Mysql trên PHP. Nó không phải là một lá cờ đỏ của một số loại.

Điều hấp dẫn nhất về trải nghiệm này là nó đang hoạt động tốt, rồi đột nhiên nó ngừng hoạt động.

Không thay đổi mã.

No php. ini thay đổi.

Mới ngừng hoạt động. Và bây giờ Mysqli không tải.

Trung bình của xếp hạng. -

Trả lời Perry Way

Lại. PHP chưa được cấu hình đúng với phần mở rộng MySQLi để giao tiếp với MySQL. Vui lòng kiểm tra php của bạn. ini hoặc biên dịch lại PHP

bởi Howard Miller - Thứ Tư, ngày 3 tháng 11 năm 2021, 10. 29 giờ tối

mysqlnd [theo như tôi hiểu] là một giải pháp thay thế thả xuống. Đó là "trình điều khiển riêng" cho MySQL.

Không có gì "ngừng hoạt động". Một cái gì đó đã thay đổi ngay cả khi bạn không nghĩ rằng nó có liên quan trực tiếp.

Trung bình của xếp hạng. -

Trả lời Howard Miller

Lại. PHP chưa được cấu hình đúng với phần mở rộng MySQLi để giao tiếp với MySQL. Vui lòng kiểm tra php của bạn. ini hoặc biên dịch lại PHP

bởi Perry Way - Thứ Tư, ngày 3 tháng 11 năm 2021, 11. 42 CH

Xin chào Howard, thật kỳ lạ vì dường như đối với người ngoài hoàn toàn không có gì thay đổi trên chính trang web.

PHP. ini đã được thay đổi cho phiên bản PHP mà chúng tôi đang sử dụng cho trang web đó để cho phép một tiện ích mở rộng khác chạy cho trang web chính của chúng tôi. Nhưng nếu thay đổi đó là nguyên nhân khiến nó không hoạt động đối với các trang web lưu trữ được đề cập, thì tại sao nó không ảnh hưởng đến TẤT CẢ các trang web sử dụng giao diện mysqli? . Không một chút khác biệt.

Sau khi vấn đề này được chú ý, tôi đã thiết lập các bản sao khác của PHP, trong các phiên bản khác nhau và thiết lập chúng với các yếu tố cần thiết mà Moodle yêu cầu và không có gì khác, và vấn đề tương tự vẫn xảy ra.

Bạn có biết điều gì sẽ gây ra hành vi khác nhau trong PHP bao gồm các thư viện/tiện ích mở rộng trên cơ sở trang web gọi nó là gì không? . Hai trang web khác nhau sử dụng cùng một PHP nhận được kết quả khác nhau.

Trung bình của xếp hạng. -

Trả lời Perry Way

Lại. PHP chưa được cấu hình đúng với phần mở rộng MySQLi để giao tiếp với MySQL. Vui lòng kiểm tra php của bạn. ini hoặc biên dịch lại PHP

của Howard Miller - Thứ Năm, ngày 4 tháng 11 năm 2021, 1. 27 giờ sáng

Cho nên

"PHP. ini đã được thay đổi cho phiên bản PHP mà chúng tôi đang sử dụng cho trang web đó để cho phép một tiện ích mở rộng khác chạy cho trang web chính của chúng tôi"

Bạn đã làm gì khác nữa không?

Nếu những gì bạn nói là đúng, điều đó có nghĩa là ai đó đã phạm sai lầm trong quá trình này.  

Trung bình của xếp hạng. -

Trả lời Howard Miller

Lại. PHP chưa được cấu hình đúng với phần mở rộng MySQLi để giao tiếp với MySQL. Vui lòng kiểm tra php của bạn. ini hoặc biên dịch lại PHP

bởi Perry Way - Thứ Năm, ngày 4 tháng 11 năm 2021, 3. 49 giờ sáng

Xin chào Howard, không có thay đổi nào khác được thực hiện ngoài php. ini để bao gồm phần mở rộng openssl cho một trang web khác. Khởi động lại thực sự không liên quan, nhưng không, tôi không khởi động lại máy chủ. Chúng tôi không có quyền làm điều đó trong giờ làm việc. Chúng tôi có Quản trị viên CNTT xử lý việc khởi động lại vào ngoài giờ làm việc, thường là vào đêm khuya.

Nhưng tôi có một tin tốt. Tôi đã có thể lấy phiên bản PHP cũ hơn [mà các trang web lưu trữ của chúng tôi thích hơn] để tải mysqli cuối cùng.

Tôi muốn chia sẻ điều này ở đây cho những người dùng Windows khác vì điều này cũng có thể phù hợp với họ. trong php. ini là một tham chiếu đến extension_dir và rõ ràng đó phải là một đường dẫn đầy đủ. Tôi đang hiển thị những gì php. ini tập tin bình luận trông giống như. Lưu ý rằng PHP có sẵn giá trị "ext" cho Windows. Chà, có lẽ ngày xửa ngày xưa nó có thể đã hoạt động và thực sự khi tôi nhìn lại quá khứ thì nó đã từng hoạt động. Nhưng chúng tôi đang chạy phiên bản mới nhất của hệ điều hành máy chủ nên có lẽ đó là lý do tại sao tôi phải sử dụng một đường dẫn đủ điều kiện.

______0

Sau khi thực hiện thay đổi nhỏ này, tiện ích mở rộng mysqli cuối cùng đã được tải. Và bây giờ các trang lưu trữ của chúng tôi đang hoạt động

Trung bình của xếp hạng. Hữu ích [2]

Trả lời Perry Way

Lại. PHP chưa được cấu hình đúng với phần mở rộng MySQLi để giao tiếp với MySQL. Vui lòng kiểm tra php của bạn. ini hoặc biên dịch lại PHP

bởi Ken Task - Thứ Năm, ngày 4 tháng 11 năm 2021, 12. 14 giờ chiều

chúc mừng. Nhưng bây giờ. thức ăn cho suy nghĩ. tất cả những thứ bạn liệt kê trước đây đều là tiện ích mở rộng. Vì vậy, không có đường dẫn đến thư mục tiện ích mở rộng, tất cả trừ mysqli đã được tải. ????? .

Nhưng một lần nữa. chúc mừng. giải quyết.

'SoS', Ken


Trung bình của xếp hạng. -

Trả lời Ken Task

Lại. PHP chưa được cấu hình đúng với phần mở rộng MySQLi để giao tiếp với MySQL. Vui lòng kiểm tra php của bạn. ini hoặc biên dịch lại PHP

của Howard Miller - Thứ Năm, ngày 4 tháng 11 năm 2021, 4. 36 giờ chiều

tôi đoán. tất cả các tiện ích mở rộng khác đã được sao chép sang một số vị trí khác nơi chúng được chọn. Ngoại trừ cái mysql. Một cái gì đó như thế

Trung bình của xếp hạng. -

Trả lời Ken Task

Lại. PHP chưa được cấu hình đúng với phần mở rộng MySQLi để giao tiếp với MySQL. Vui lòng kiểm tra php của bạn. ini hoặc biên dịch lại PHP

bởi Perry Way - Thứ Năm, ngày 4 tháng 11 năm 2021, 9. 52 giờ chiều

Hầu hết các tiện ích mở rộng được liệt kê đều được mặc định bằng PHP và không phải là tùy chọn. Đối mặt với MySqlND rõ ràng cũng được mặc định. Tôi nghĩ Leon Stringer đã đúng, đó là một sự phức tạp do cài đặt nhiều phiên bản PHP. Vì vậy, một số nhầm lẫn đã xảy ra về vị trí "ext" được giải quyết thành. Đường dẫn đầy đủ đã sửa nó

Trung bình của xếp hạng. -

Trả lời Perry Way

Lại. PHP chưa được cấu hình đúng với phần mở rộng MySQLi để giao tiếp với MySQL. Vui lòng kiểm tra php của bạn. ini hoặc biên dịch lại PHP

bởi Ken Task - Thứ Sáu, ngày 5 tháng 11 năm 2021, 12. 58 giờ sáng

Nếu phải giữ các phiên bản moodle đã lưu trữ [cũ] có sẵn cho bất kỳ mục đích nào thì điều đó cũng có nghĩa là các phiên bản PHP cũ [không được hỗ trợ]. Vì vậy, tôi nghĩ rằng 'đường dẫn đến' là điều bắt buộc đối với tất cả các phiên bản PHP

Tôi nghĩ rằng tôi cũng sẽ xem xét việc hạn chế quyền truy cập vào các phiên bản Moodle cũ đó - không giống như gì từ internet toàn cầu và chỉ có thể truy cập qua mạng nội bộ [IP riêng]

Thậm chí có thể xem xét chuyển các trang web đã lưu trữ đó sang một máy khác. chỉ nội bộ

Mặc dù bảo mật của tâm trạng thường tốt cho các phiên bản được hỗ trợ, nhưng bảo mật sẽ xuống cấp trong một khung thời gian thực sự ngắn với các phiên bản cũ của Moodle và các phiên bản cũ của PHP - sắp tới sẽ không có thêm bản sửa lỗi/bản vá nào cho những phiên bản đó

Trên đường chân trời. nhưng giống như mặt trời mọc. phiên bản 4. 0 của Moodle

2 'giác quan' của tôi.

'SoS', Ken

Trung bình của xếp hạng. -

Trả lời Ken Task

Lại. PHP chưa được cấu hình đúng với phần mở rộng MySQLi để giao tiếp với MySQL. Vui lòng kiểm tra php của bạn. ini hoặc biên dịch lại PHP

bởi Perry Way - Thứ Sáu, ngày 5 tháng 11 năm 2021, 2. 05 giờ sáng

Chào Ken,

Chà, trên Windows, Biến môi trường PATH là một biến toàn hệ thống và nó cho phép một người sử dụng dấu nhắc lệnh để nhập php. exe để chạy tập lệnh mà không cần sử dụng đường dẫn đầy đủ tới tập lệnh. Mục đích của nó là cung cấp một danh sách các đường dẫn mà Windows xem qua để tìm. exe hoặc. bat mà bạn đang cố thực thi. Vì vậy, nó thực sự không liên quan gì đến việc kích hoạt hỗ trợ cho các PHP khác. Nó chỉ có nghĩa là một phím tắt có thể được thực hiện trong một. bat hoặc dấu nhắc lệnh để thực thi php. exe mà không cung cấp đường dẫn. Vì vậy, theo mặc định, tôi thiết lập đường dẫn tệp của phiên bản mới nhất được cài đặt tới biến PATH trong trường hợp tôi muốn sử dụng phương pháp phím tắt.

Và cách tôi thiết lập trình xử lý tệp IIS [*. php chẳng hạn] là tôi sử dụng đường dẫn đầy đủ đến tệp thực thi. Vì vậy, việc chỉ định các phiên bản PHP khác nhau cho các trang web khác nhau không phải là vấn đề đáng lo ngại vì bạn có thể thiết lập trình xử lý trên từng trang web.

Đối với các lo ngại về bảo mật, vâng, tôi chắc chắn đó là mối quan tâm của tôi, nhưng tôi đã giải quyết hầu hết vấn đề đó bằng cách vô hiệu hóa tất cả các tài khoản ngoại trừ những nhân viên quản trị cần quyền truy cập. Và chúng không thể được thiết lập chỉ trong nội bộ vì mọi thứ đều là ảo. Ngay cả những người kiểm định trường học của chúng tôi cũng hoạt động từ xa. Vì vậy, nó phải là internet công cộng có khả năng.

Trung bình của xếp hạng. -

Trả lời Perry Way

Lại. PHP chưa được cấu hình đúng với phần mở rộng MySQLi để giao tiếp với MySQL. Vui lòng kiểm tra php của bạn. ini hoặc biên dịch lại PHP

bởi Ken Task - Thứ Sáu, ngày 5 tháng 11 năm 2021, 2. 57 giờ sáng

Ok, có một bài học về Windows.

PATHS trong môi trường, BTW, tồn tại trong boxen có hương vị Linux và có thể thay đổi ở cấp độ người dùng - không cần phải có toàn hệ thống

Giới thiệu về nhân viên quản trị cần truy cập vào các trang web cũ. xem xét việc xem xét lớp mạng thay vì chỉ dựa vào lớp ứng dụng [moodle code]. Bất kể nền tảng nào, mạng đi trước ứng dụng

'SoS', Ken


Trung bình của xếp hạng. -

Trả lời Perry Way

Lại. PHP chưa được cấu hình đúng với phần mở rộng MySQLi để giao tiếp với MySQL. Vui lòng kiểm tra php của bạn. ini hoặc biên dịch lại PHP

bởi Leon Stringer - Thứ Năm, ngày 4 tháng 11 năm 2021, 6. 32 giờ chiều

Tôi đã thực hiện khá nhiều hỗ trợ cho Moodle trên Windows Server và luôn sử dụng extension_dir = "ext". Tiện ích mở rộng OpenSSL có phần phụ thuộc DLL [libcrypto-1_1-x64. dll]. Khi bật OpenSSL, có lẽ đường dẫn đã bị thay đổi để bao gồm vị trí của tệp DLL này và điều đó gây ra sự cố khi tìm tệp DLL cho các tiện ích mở rộng?

Trung bình của xếp hạng. Hữu ích [3]

Trả lời Leon Stringer

Lại. PHP chưa được cấu hình đúng với phần mở rộng MySQLi để giao tiếp với MySQL. Vui lòng kiểm tra php của bạn. ini hoặc biên dịch lại PHP

bởi Perry Way - Thứ Năm, ngày 4 tháng 11 năm 2021, 9. 50 giờ chiều

Chào Leon,

Về nhận xét của bạn "Nếu có một phiên bản PHP khác trên đường dẫn thì có thể tìm sai thư mục ext. " thực sự, hiện tại tôi đã cài đặt 4 phiên bản PHP trên máy chủ này. Chỉ có một được liệt kê trong biến Windows PATH là 7. 4. 23 được thiết lập làm trình xử lý PHP mặc định trong IIS và được sử dụng trên tất cả các trang web trực tiếp của chúng tôi, Wordpress và Moodle. Rõ ràng khi nhiều PHP được cài đặt, có một yếu tố gây nhầm lẫn đối với những cái không được liệt kê trong biến hệ thống PATH.


Đối với các nhận xét về OpenSSL của bạn, tôi đã cài đặt OpenSSL độc lập với tiện ích mở rộng PHP. Tôi tin rằng tiện ích mở rộng PHP không phải là triển khai đầy đủ của OpenSSL và nó cần phải có mặt để tiện ích mở rộng giao tiếp đúng cách với nó. Đó là cách nó kết thúc trên máy chủ trước đây của chúng tôi, hiện "dưới 6 feet". Đối với một số tích hợp Wordpress với các nhà cung cấp bên ngoài, nó cần OpenSSL và nó chỉ hoạt động khi tôi không có cả tiện ích mở rộng trong php. ini và cũng đã cài đặt OpenSSL. Ngoài ra, một tham chiếu đến tệp thực thi của OpenSSL cũng cần được nhập vào biến hệ thống PATH

Làm cách nào để bật mysqli trong PHP?

Mở php của bạn. ini file [file cấu hình php] bên trong thư mục PHP của bạn [hoặc thư mục windows]. Tìm kiếm mysqli và bật dll bằng cách xóa ; . Bạn có thể phải khởi động lại hệ thống của mình. . You may have to re-boot your system.

Mysqli có được bao gồm trong PHP không?

Tiện ích mở rộng MySQLi được giới thiệu với PHP phiên bản 5. 0. 0 . Trình điều khiển bản địa MySQL đã được bao gồm trong phiên bản PHP 5. 3.

Làm cách nào để cài đặt tiện ích mở rộng Mysqli?

Đang tải xuống MySQL. Tiện ích mở rộng MySQLi được thiết kế để hoạt động với MySQL phiên bản 4. 1. .
Cài đặt MySQL trên Linux/UNIX. .
Cài đặt MySQL trên Windows. .
Xác minh cài đặt MySQL. .
Sử dụng tiện ích mysqladmin để lấy trạng thái máy chủ. .
Thực thi các lệnh SQL đơn giản bằng MySQL Client. .
Các bước sau cài đặt. .
Chạy MySQL khi khởi động

Làm cách nào để bật tiện ích mở rộng MySQL trong PHP 7?

Đối với tất cả người dùng docker, chỉ cần chạy docker-php-ext-install mysqli từ bên trong bộ chứa php của bạn . Cập nhật. Thông tin thêm về https. // trung tâm. người đóng tàu. com/_/php trong phần "Cách cài đặt thêm các tiện ích mở rộng PHP".

Chủ Đề