APC 文件記憶體無法正常工作,出現內部伺服器錯誤 500
我在 APC 正常工作時遇到了一些問題。文件記憶體始終顯示 Hits = 1 並且未命中數不斷增加,但與此同時,記憶體的文件條目在一段時間內顯示了數百個數字。使用者記憶體條目似乎正常工作。但幾乎每天兩次我不斷收到內部伺服器錯誤,然後必須重新啟動 php-fpm。我分配了 1024M 記憶體和其他一些正常配置的東西。如果您有更多想法,我可以提供您的電子郵件 ID 來討論這個問題並向您發送有關它的更多詳細資訊。
APC 配置如下。我嘗試過非零 ttls 和其他選項。此外,在 FastCGI 配置中 - 我嘗試將 PHP_FCGI_CHILDREN 設置為 ‘0’ 和其他值。正如我在這篇文章http://httpd.apache.org/mod_fcgid/mod/mod_fcgid.html
但是內部伺服器錯誤幾乎每天都會出現兩次,我必須重新啟動 PHP-FPM
APC配置如下:
apc.cache_by_default 1 apc.canonicalize 1 apc.coredump_unmap 0 apc.enable_cli 0 apc.enabled 1 apc.file_md5 0 apc.file_update_protection 2 apc.filters apc.gc_ttl 3600 apc.include_once_override 1 apc.lazy_classes 00 apc.lazy_functions 0 apc.max_file_size 4M apc.mmap_file_mask /tmp/apc.mXJeFR apc.num_files_hint 10000 apc.preload_path apc.report_autofilter 0 apc.rfc1867 0 apc.rfc1867_freq 0 apc.rfc1867_name APC_UPLOAD_PROGRESS apc.rfc1867_prefix upload_ apc.rfc1867_ttl 3600 apc.serializer default apc.shm_segments 1 apc.shm_size 1024M apc.shm_strings_buffer 4M apc.slam_defense 1 apc.stat 1 apc.stat_ctime 0 apc.ttl 0 apc.use_request_time 1 apc.user_entries_hint 4096 apc.user_ttl 0 apc.write_lock 1
PHP.FastCGI 配置如下:
#!/bin/bash PHPRC="/etc/php.ini" PHP_FCGI_CHILDREN=16 PHP_FCGI_MAX_REQUESTS=12000 export PHPRC export PHP_FCGI_CHILDREN export PHP_FCGI_MAX_REQUESTS exec /usr/bin/php-cgi
只是為了社區的利益 - 這是對我造成嚴重破壞的獨特事物,在我對這個問題的廣泛搜尋中,我沒有找到任何關於這種情況的實例。
頻繁出現內部伺服器錯誤的問題是 - 在我遷移使用 APC 記憶體的新電子商務站點之前,我的伺服器上安裝了 PHP 5.4.27 和 Zend Opcache。這導致某處發生衝突並引發內部伺服器錯誤。
移除 Zend Opcache 後,另一個因素是 apc.include_once_override 設置為 ‘1’。它導致頁面失真,我在某處讀到過這個,所以能夠立即確定並設置為“0”。
現在它像魅力一樣工作正常!經過一個月的戰鬥,我如釋重負。
我認為清除記憶體是解決此問題的替代方法。重新啟動您的 apache 服務或添加類似 apc.php 文件並設置一個 cron 以根據您的需要在特定間隔後清除它。
或者 或者
如果您有有效的 open_dir 限製或者如果這是在使用者帳戶上,您必須設置 APC 的 tmp 目錄相對於具有適當權限的使用者主目錄。