Lớp mongodb\driver\manager không tìm thấy

Xin chào :)

Tôi có máy chủ sử dụng Plesk và Centos 7.
Tôi đã định cấu hình miền thành phiên bản PHP 7. 4 và muốn thêm phần mở rộng mongodb vào nó
Chà, cuối cùng tôi đã cài đặt tiện ích mở rộng mongodb cho máy chủ bằng cách thực thi. php -r "phpinfo();"
Hỗ trợ MongoDB => đã bật
Phiên bản tiện ích mở rộng MongoDB => 1. 12. 0
Tính ổn định của tiện ích mở rộng MongoDB => ổn định
Nhưng không phải khi tôi chạy phpinfo trên tệp php miền hoặc/opt/plesk/php/7. 4/bin/php -r "phpinfo();"
Tôi đã thực hiện các hành động sau và chúng không hoạt động
thứ nhất
yum cài đặt plesk-php74-dev tạo gcc
apt-get install plesk-php71-dev build-essential
lần 2
/opt/plesk/php/7. 4/bin/pecl cài đặt mongodb
lần thứ 3
echo "phần mở rộng = mongodb. vậy" > /opt/plesk/php/7. 4/etc/php. d/mongo. ban đầu
tôi cũng đã thử
echo "phần mở rộng = mongodb. vậy" > /opt/plesk/php/7. 4/etc/php. d/mongodb. ban đầu
tiếng vang "phần mở rộng = mongo. vậy" > /opt/plesk/php/7. 4/etc/php. d/mongo. ban đầu
lần thứ 4
plesk bin php_handler --reread
ngày 5
/opt/plesk/php/7. 4/bin/php -m. grep mongo
câu trả lời. mongodb
thứ 6
plesk bin php_settings -u
thứ 7
Bất cứ khi nào tôi hoàn thành một số bài kiểm tra, tôi thực hiện
/etc/init. d/nginx khởi động lại
khởi động lại dịch vụ httpd
Tôi thậm chí đã thử truy cập PHP từ Plesk và đặt phần mở rộng trong. ini, nó cũng không hoạt động
Khi thực thi tệp php của tôi, nó cho tôi biết
Lỗi nghiêm trọng. Lỗi chưa xử lý. Không tìm thấy lớp 'MongoDB\Driver\Manager'
Nhưng đó là vì tôi không thể thêm tiện ích mở rộng
Xin vui lòng tôi cần sự giúp đỡ của bạn, cảm ơn bạn

 

"php_mongodb. dll" gợi ý rằng bạn đang sử dụng Windows. Nếu đúng như vậy, lỗi "Không có bản phát hành nào" mà bạn đang thấy có thể là kết quả của việc cố chạy "pecl install" từ Windows. Người dùng Windows cần tải xuống một tệp DLL, vì PECL không thể biên dịch tiện ích mở rộng từ nguồn như trên Linux và macOS

lưu ý bên lề. điều này không rõ ràng từ bài viết gốc của bạn. Trong tương lai, tôi khuyên bạn nên đưa ra càng nhiều chi tiết càng tốt về môi trường của bạn (e. g. Hệ điều hành, phiên bản PHP, phiên bản máy chủ web và triển khai)

Ngoài ra, bản thân PHP sẽ ghi lỗi nếu lệnh "extension=" INI không tải được tiện ích mở rộng, có thể là do tệp bị thiếu hoặc cố gắng sử dụng DLL được tạo cho một nền tảng khác. Nếu bạn không thấy bất kỳ lỗi nào khi tải DLL và PHP không báo cáo rằng tiện ích mở rộng "mongodb" được tải khi khởi động, tôi khuyên bạn nên xem xét các chỉ thị INI khác có thể ngăn chặn báo cáo lỗi của bạn. Ngoài ra, nên bắt đầu với môi trường CLI (e. g. "php. exe -m") trước khi thử chẩn đoán sự cố từ SAPI web, vì bạn có thể dễ dàng nắm bắt thông tin lỗi hơn từ bảng điều khiển so với. tệp nhật ký. Lưu ý rằng mỗi môi trường PHP có khả năng có tệp nhị phân và tệp php riêng. ini, ngay cả khi chúng có thể trỏ đến một thư mục chung cho các tệp INI khác, chẳng hạn như các tệp INI dành riêng cho phần mở rộng

Tôi đã không giải quyết vấn đề cuối cùng. Nhưng tôi đã gỡ bỏ apache2PHP tích hợp sẵn, sau đó cài đặt lại chúng trước brew để thay thế. Lần này tôi chọn apache24

sudo launchctl unload -w /System/Library/LaunchDaemons/org.apache.httpd.plist 2>/dev/null
0, cũng chuyển sang
sudo launchctl unload -w /System/Library/LaunchDaemons/org.apache.httpd.plist 2>/dev/null
1 thay vì 5. 5 giây

Nhân tiện, tôi chắc chắn rằng đó là sự cố do gói không được cài đặt chính xác hoặc cài đặt sai. Nhưng tôi đã không giải quyết vấn đề theo cách đó. Tôi đã chọn một phiên bản khác (cài đặt các phiên bản khác) để thay thế

Tôi đang tạo REST APIi với khung Lumen. Tôi sử dụng Mongolab cho mongoDB của mình và tôi muốn lưu trữ ứng dụng của mình trên Google App Enginge. Tôi đang sử dụng Jessenger lib để giao tiếp với DB của mình trên MongoLab. Mọi thứ đều ổn khi tôi chạy ứng dụng cục bộ nhưng khi tôi triển khai trên GAE, tôi nhận được

Lỗi nghiêm trọng. Không tìm thấy lớp 'MongoDB\Driver\Manager' trong /base/data/home/apps/s~lumentestapi/v1. 3910532224987814328/nhà cung cấp/mongodb/mongodb/src/Khách hàng. php trên dòng 56

tôi đã kích hoạt

tiện ích mở rộng = mongo. vì thế

trong php.ini nằm trong thư mục gốc

Bất kỳ trợ giúp làm thế nào tôi có thể khắc phục điều này?

Xin chào, tôi đang cố gắng kết nối qua trình điều khiển PHP. Tôi đã làm theo quy trình cài đặt từ tài liệu Trình điều khiển PHP của MongoDB về cài đặt pecl cho tiện ích mở rộng và cài đặt trình soạn thảo của mongodb vào thư mục gốc

Tôi đã sử dụng mã bên dưới để khởi chạy trình điều khiển php và thiết lập kết nối với cơ sở dữ liệu (lưu ý rằng tôi đã thay đổi đầu vào cho db, pass và cluster trong mã thực tế)

:@.lkffbtl.mongodb.net/?retryWrites=true&w=majority');

var_dump( $client );

Tuy nhiên, khi tôi chạy cái này, tôi nhận được lỗi nghiêm trọng sau

Lỗi nghiêm trọng. Lỗi chưa xử lý. Không tìm thấy lớp 'MongoDB\Driver\Manager' trong /home3/coradase/public_html/cora-staging/wp-content/plugins/MongoDB/vendor/mongodb/mongodb/src/Client. php. 124 Dấu vết ngăn xếp. #0 /home3/coradase/public_html/cora-staging/wp-content/plugins/MongoDB/conf. php(6). MongoDB\Client->__construct('mongodb+srv. //c…') #1 /home3/coradase/public_html/cora-staging/wp-content/plugins/MongoDB/mongodb. php(28). require_once(’/home3/coradase…’) #2 /home3/coradase/public_html/cora-staging/wp-includes/class-wp-hook. php(307). cora_mongodb_admin_page(’’) #3 /home3/coradase/public_html/cora-staging/wp-includes/class-wp-hook. php(331). WP_Hook->apply_filters(’’, Array) #4 /home3/coradase/public_html/cora-staging/wp-includes/plugin. php(476). WP_Hook->do_action(Array) #5 /home3/coradase/public_html/cora-staging/wp-admin/admin. php(259). do_action('toplevel_page_c…') #6 {main} được đưa vào /home3/coradase/public_html/cora-staging/wp-content/plugins/MongoDB . php trên dòng 124

Khách hàng. php (tệp được tham chiếu trong mã lỗi) là tệp mặc định đi kèm với cài đặt Composer. Tôi chưa chỉnh sửa tập tin. Chức năng trong Client. php chứa dòng 124 (được tham chiếu trong lỗi) được hiển thị bên dưới

    public function __construct($uri = 'mongodb://127.0.0.1/', array $uriOptions = [], array $driverOptions = [])
    {
        $driverOptions += ['typeMap' => self::$defaultTypeMap];

        if (! is_array($driverOptions['typeMap'])) {
            throw InvalidArgumentException::invalidType('"typeMap" driver option', $driverOptions['typeMap'], 'array');
        }

        if (isset($driverOptions['autoEncryption']['keyVaultClient'])) {
            if ($driverOptions['autoEncryption']['keyVaultClient'] instanceof self) {
                $driverOptions['autoEncryption']['keyVaultClient'] = $driverOptions['autoEncryption']['keyVaultClient']->manager;
            } elseif (! $driverOptions['autoEncryption']['keyVaultClient'] instanceof Manager) {
                throw InvalidArgumentException::invalidType('"keyVaultClient" autoEncryption option', $driverOptions['autoEncryption']['keyVaultClient'], [self::class, Manager::class]);
            }
        }

        $driverOptions['driver'] = $this->mergeDriverInfo($driverOptions['driver'] ?? []);

        $this->uri = (string) $uri;
        $this->typeMap = $driverOptions['typeMap'] ?? null;

        unset($driverOptions['typeMap']);

        $this->manager = new Manager($uri, $uriOptions, $driverOptions);
        $this->readConcern = $this->manager->getReadConcern();
        $this->readPreference = $this->manager->getReadPreference();
        $this->writeConcern = $this->manager->getWriteConcern();
    }

Để tham khảo, dòng 124 là
$this->manager = new Manager($uri, $uriOptions, $driverOptions);

Một lần nữa, mã này đến trực tiếp từ bản cài đặt trình soạn thảo của mongodb và hoàn toàn không được chỉnh sửa

Tôi đánh giá cao bất kỳ thông tin chi tiết nào từ nhóm hoặc bất kỳ ai gặp phải vấn đề tương tự khi cố gắng gỡ lỗi để mã sẽ thiết lập đúng kết nối với cơ sở dữ liệu