Cảnh báo: bao gồm (File.php) không thành công trong Autoload.php trên dòng 93


7

Tôi đã theo dõi một số bài viết về điều này, nhưng không có bài viết nào giải quyết vấn đề của tôi. Mỗi yêu cầu trên trang web ghi các mục sau vào nhật ký hệ thống.

var/log/system.log:

2013-10-09T12:53:50+00:00 ERR (3): Warning: include(File.php): failed to open stream: No such file or directory  in /var/public_html/domain.com/live/lib/Varien/Autoload.php on line 93
2013-10-09T12:53:50+00:00 ERR (3): Warning: include(): Failed opening 'File.php' for inclusion (include_path='/var/public_html/domain.com/live/app/code/local:/var/public_html/domain.com/live/app/code/community:/var/public_html/domain.com/live/app/code/core:/var/public_html/domain.com/live/lib:.:/usr/share/pear:/usr/share/php')  in /var/public_html/domain.com/live/lib/Varien/Autoload.php on line 93

Tôi đã thấy và theo dõi các bài viết chỉ ra điều này có liên quan đến trình biên dịch.

Những gì tôi đã làm cho đến nay

Tôi đã nhận xét hai dòng ra includes/config.php.

Xóa trình biên dịch từ thiết bị đầu cuối sau bài viết của Mr Storm: Trình biên dịch Magento .

Đảm bảo rằng bộ nhớ cache được làm trống và lập chỉ mục đã được chạy nhiều lần.

So sánh một bản sao vanilla 1.7.0.2 CE và tìm kiếm bất kỳ tệp nào mà cơ sở mã của riêng tôi có thể bị thiếu (sử dụng WinMerge).

Vô hiệu hóa liên kết trong quản trị viên.

Thay đổi quyền truy cập tệp thành một số khuyến nghị khác nhau và trở lại.


Tôi cũng nhận thấy rằng trang profiler trong quản trị viên được đặt Admin > System > Tools > Compilationhoàn toàn trống, ngoài phần điều hướng và chân trang.

Bất kỳ trợ giúp về nơi để bây giờ sẽ được đánh giá rất cao. Xin hỏi nếu có gì không rõ ràng. Cảm ơn!


2
Truy cập /lib/Varien/Autoload.php on line 93và sử dụng Mage's mageDebugBacktrace()(đó là một chức năng, vì vậy hãy gọi trực tiếp). Xem nơi mà File.php đến từ đâu. Sử dụng if ($class === 'File') { mageDebugBacktrace(); }để nó sẽ không in trên mỗi lớp tự động tải. Tôi gặp vấn đề tương tự với mô-đun PHPUnit của Ecomdev.
nevvermind

Rất hữu ích (cho nhiều ứng dụng), cảm ơn rất nhiều!
Jongosi

Nếu bạn chỉ thấy một trang trống - đáng để xem mã nguồn
Stefan

Hãy thử biên dịch lại mã <br> Hệ thống -> Công cụ -> Biên dịch -> Chạy quy trình biên dịch <br> và Làm mới bộ đệm.
Nmirach

@nevvermind tôi đã bao gồm mã này if ($class === 'File') { mageDebugBacktrace(); }vào lib/varien/autoload.phpđây: pastebin.com/yiZ0cjVy , nhưng nó vẫn cho tôi vấn đề tương tự ....
Em bé ở Magento

Câu trả lời:


6

Autoload cố gắng yêu cầu tệp cho một lớp chưa được tìm thấy trong cơ sở mã. Vì nó đòi hỏi phải File.phpcó lý do rằng một nơi nào đó trong mã File()được gọi là lớp chưa tồn tại trong cơ sở mã của bạn.

Nếu bạn theo dõi vị trí mà lớp đó được khởi tạo, bạn sẽ khắc phục được sự cố.


5

Để theo dõi, mageDebugBacktrace()kết quả được cung cấp sau đây:

[1] :
[2] :
[3] /var/public_html/domain.com/live/app/code/core/Mage/Core/Model/Cache.php:199
[4] /var/public_html/domain.com/live/app/code/core/Mage/Core/Model/Cache.php:119
[5] /var/public_html/domain.com/live/app/code/core/Mage/Core/Model/Config.php:1348
[6] /var/public_html/domain.com/live/app/Mage.php:462
[7] /var/public_html/domain.com/live/app/code/core/Mage/Core/Model/App.php:401
[8] /var/public_html/domain.com/live/app/code/core/Mage/Core/Model/App.php:295
[9] /var/public_html/domain.com/live/app/code/core/Mage/Core/Model/App.php:337
[10] /var/public_html/domain.com/live/app/Mage.php:683
[11] /var/public_html/domain.com/live/index.php:71

Nhìn vào Cache.phptệp, tôi có thể thấy rằng phần 'Tệp' là loại bộ đệm phụ trợ mặc định được Magento sử dụng, nếu không được chỉ định. Tôi đã thay đổi app/etc/local.xmltệp của mình để sử dụng 'Tệp', lưu ý chữ hoa 'F':

Tập tin app/etc/local.xml:

<cache>
    <backend><![CDATA[File]]></backend>
    ...
</cache>

Hy vọng rằng sẽ giúp được ai đó.


Tôi không biết tại sao tài liệu Magento lại sai như vậy, nhưng chữ hoa 'F' đã làm điều đó cho tôi.
func0der

@Jongosi, giải pháp của bạn là làm việc cho tôi. Cảm ơn rât nhiều. Cảm ơn
abu abu

2

Chỉ gặp phải một Cảnh báo kỳ lạ : bao gồm (somefile.php) không thành công trong Autoload.php trên dòng 93 sau khi thực hiện công việc trên môi trường thử nghiệm được chia sẻ và người khác đã bật bộ đệm.

Không phải trường hợp chính xác này, bởi vì nó được đề cập:

Đảm bảo rằng bộ nhớ cache được làm trống và lập chỉ mục đã được chạy nhiều lần.

Vì vậy, hãy luôn nhớ kiểm tra và vô hiệu hóa / xóa bộ nhớ cache nếu làm việc trên môi trường dùng chung, trước khi lãng phí hàng giờ để gỡ lỗi!


1

Lỗi này trong khi tạo một đối tượng từ lớp như $obj = new GoogleClient();trong Magento, nó cố gắng tìm ra tệp lớp bằng cách sử dụngAutoload.php


1

Nó cũng có thể là vấn đề với bộ nhớ cache apc. Khởi động lại apache2 hoặc thực thi apc_clear_cache();từ php


Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.