Tôi có một trang web sử dụng Apache đó chỉ là đoạn mã sau:PHP Fatal Error: Class 'MongoClient' không tìm thấy
<?php $m = new MongoClient(); ?>
và khi tôi cố gắng truy cập vào nó, tôi nhận được lỗi trong error.log
`PHP Fatal Error: Class 'MongoClient' not found`
Sau đây là các cài đặt có thể sai, nhưng tôi không nghĩ vậy.
php -i | grep 'Configuration'
=>Configuration File (php.ini) Path => /etc/php5/cli | Loaded Configuration File => /etc/php5/cli/php.ini
grep 'mongo' /etc/php5/cli/php.ini
=>extension=mongo.so
php -i | grep 'extension'
=> extension_dir => /usr/lib/php5/20121212 => /usr/lib/php5/20121212
ls /usr/lib/php5/20121212/ | grep 'mongo.so'
=>mongo.so
tôi đã không thể tìm thấy bất cứ điều gì cho thấy tôi đã cài đặt nó sai hoặc có cấu hình sai. Tôi đã cài đặt ứng dụng này trong vòng hai giờ qua sử dụng pecl
và pear
(sudo pear install -f pecl/mongo
và sudo pecl install mongo
)
Tôi đã khởi động lại Apache và thậm chí là máy tính của mình nhiều lần.
Vậy tại sao tôi gặp lỗi Class 'MongoClient' not found
?
Tôi đang sử dụng Ubuntu. PHP phiên bản 5.5.
Chỉnh sửa: Tôi vừa phát hiện ra rằng MongoClient là hợp lệ khi tôi chạy php ở chế độ tương tác. Có lẽ nó đã làm với một sự cho phép người dùng/vấn đề cài đặt người dùng?
Câu hỏi đó đang sử dụng XAMPP, mà tôi không, và các giải pháp kết thúc lên được một vấn đề với chỉ định một .dll, trong khi tôi đang trên Linux. Ngoài ra, tất cả mọi thứ câu trả lời duy nhất sẽ trả lời được giải quyết trong câu hỏi của tôi. –
Kiểm tra quyền của '/ usr/lib/php5/20121212/mongo.so' - chúng phải giống như quyền của các tệp khác trong thư mục. Ngoài ra, bạn có thể chạy 'strace' để xem chính xác những gì thất bại khi' php' cố mở 'mongo.so'. Ví dụ. 'strace -f php test.php 2> & 1 | grep 20121212' – VolenD
@ user3584460 Cảm ơn bạn đã trả lời. Các điều khoản về cơ bản giống nhau (664 thay vì 644) nhưng tôi đã thay đổi chúng chính xác như nhau và không có vấn đề gì. Đối với phần thứ hai, có vẻ như không có vấn đề bởi vì nó hoạt động khi tôi đang chạy nó như bản thân mình. Tôi nghĩ rằng tôi đã làm cho các câu hỏi loại khó hiểu, như tôi đã không chỉ định rằng đây là một vấn đề khi Apache (người dùng www-dữ liệu) đang chạy PHP, không phải khi tôi. –