㈠ php-cgi.exe應用程序錯誤 "0x00000000"指令引用的"0x00000000"內存.該內存不能為"read";
電腦出現:【該內存不能為read】,這是你安裝的「軟體」和電腦中的「內存」有沖突!
1。電腦里有【木馬或病毒】干擾,下載「360安全衛士」和「360殺毒雙引擎版」或「金山衛士」和「金山毒霸」,建議「全盤掃描」病毒和木馬,修補電腦上的「高危」和「重要」的【系統漏洞】!【系統修復】,一鍵修復!【插件清理】,立即清理【惡評插件】!
2。【可疑啟動項】,下載「360系統急救箱」,或打開360安全衛士,【功能大全】里的「360系統急救箱」,開始急救,完畢後,重啟電腦!開機後,【文件恢復區】,點開:可疑啟動項和木馬,徹底刪除文件!
再:【系統修復】,全選,立即修復!【網路修復】,開始修復。重啟電腦!
【金山急救箱】,勾選【擴展掃描】,立即掃描,完畢後,立即處理,重啟電腦!
3。你下載的「播放器」,或「聊天軟體」,或「IE瀏覽器」,或「游戲」的【程序不穩定】,或者「版本太舊」!建議卸掉,下載新的,或將其升級為【最新版本】!IE瀏覽器,和測試版軟體不推薦升級!
4。就是你安裝了兩款或兩款以上的同類軟體(如:兩款播放器,兩款qq,或多款瀏覽器,多款殺毒軟體,多款網游等等)!它們在一起【互不兼容】,卸掉「多餘」的那一款!
5。你在電腦左下角「開始」菜單里找到【強力卸載電腦上的軟體】,找到多餘的那款卸掉! 卸完了再「強力清掃」(看準了再卸,別把有用的卸了)!完畢後,重啟電腦!
6。再不行,開始菜單,運行 ,輸入cmd, 回車,在命令提示符下輸入【復制即可】 :
for %1 in (%windir%\system32\*.ocx) do regsvr32 /s %1
粘貼,回車,完畢後,再輸入:
for %1 in (%windir%\system32\*.dll) do regsvr32.exe /s %1
回車!直到屏幕滾動停止為止,重啟電腦!
7。再不行,去網上下載一個【read修復工具】,修復一下試試!注意查殺一下病毒和木馬!
8。重啟電腦,開機出完電腦品牌後,按「F8」,進到「安全模式」,游標選定:【最後一次正確設置】,回車,回車,看看效果如何!
實在不行就:【一鍵還原系統或重裝系統】!
㈡ 502 bad gateway nginx怎麼解決
發生原因
1、PHP FastCGI進程數不夠用
當網站並發訪問巨大時,php fastcgi的進程數不有一定的保障,因為cgi是單線程多進程工作的,也就是說cgi需要處理完一個頁面後再繼續下一個頁面。如果進程數不夠,當訪問巨大的時候,cgi按排隊處理之前的請求,之後的請求只有被放棄。這個時候nginx就會不時的出現502錯誤。
2、PHP FastCGI的內存不夠用
當nginx返回靜態頁面時,這個問題一般不會出現,因為nginx不需要php cgi的處理而直接返回靜態頁面。但是當網頁需要處理大量的php復雜操作的時候,例如執行api採集,或者採集頁面的時候,那對php的要求是相當高的,如果配置給他的內存太少,那很容易就會導致php崩潰。
1、首先判斷是不是php fastcgi進程數是否夠用。
netstat -anpo | grep "php-cgi" | wc -l
如果實際使用的「FastCGI進程數」接近預設的「FastCGI進程數」,那麼,說明「FastCGI進程數」不夠用,需要增大。 但是要注意計算你的內存是否足夠支撐更多的進程數,如果物理機內存並不足夠大,加大這個進程數是沒有用處的。
2、部分PHP程序的執行時間超過了Nginx的等待時間,可以適當增加nginx.conf配置文件中FastCGI的timeout時間,如下:
http
{
......
fastcgi_connect_timeout 300;
fastcgi_send_timeout 300;
fastcgi_read_timeout 300;
......
}
......
php.ini中memory_limit設低了會出錯,修改了php.ini的memory_limit為64M,重啟nginx,發現好了,原來是PHP的內存不足了。
如果以上方法依然不能解決問題,請嘗試優化你的php程序,盡量的減少採集和資料庫操作,加快其反應速度,有時候往往是因為自己的php程序反應速度太慢造成的。
3:目前lnmp一鍵安裝包比較多的問題就是502 Bad Gateway,大部分情況下原因是在安裝php前,腳本中某些lib包可能沒有安裝上,造成php沒有編譯安裝成功。
解決方法:
可以嘗試根據lnmp一鍵安裝包中的腳本手動安裝一下,看看是什麼錯誤導致的,在網上搜索一下,或者把錯誤信息發上來。我們給你分析一下錯誤原因。
4:
在php.ini里,eaccelerator配置項一定要放在Zend Optimizer配置之前,否則也可能引起502 Bad Gateway
第三種原因:
在安裝好使用過程中出現502問題,一般是因為默認php-cgi進程是5個,可能因為phpcgi進程不夠用而造成502,需要修改/usr/local/php/etc/php-fpm.conf 將其中的max_children值適當增加。(一般1個php-cgi佔有20M內存,請依照內存來設定該值)
也有可能是max_requests值不夠用。
5:
php執行超時,修改/usr/local/php/etc/php.ini 將max_execution_time 改為300
第五種原因:
磁碟空間不足,如mysql日誌佔用大量空間
6:
查看php-cgi進程是否在運行
可以通過# top 命令查看。
nginx反向代理解決辦法有點不同
將nginx的error log打開,發現」pstream sent too big header while reading response header from upstream」這樣的錯誤提示,查閱了一下資料,大意是nginx緩沖區有一個bug造成的,我們網站的頁面消耗佔用緩沖區可能過大
apache返回的header 太大nginx處理不過來就導致了。
代碼如下 復制代碼
server {
listen 80;
server_name *.xywy.com ;
large_client_header_buffers 4 16k;
#charset koi8-r;
# access_log off;
location / {
#添加這3行 ,
proxy_buffer_size 64k;
proxy_buffers 32 32k;
proxy_busy_buffers_size 128k;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
set $spider '';
if ( $http_user_agent ~ Baispider) {
set $spider Bai;
}
............
如果是 nginx+PHPcgi 就該
fastcgi_connect_timeout 60;
fastcgi_send_timeout 180;
fastcgi_read_timeout 180;
fastcgi_buffer_size 128k;
fastcgi_buffers 4 256k;
fastcgi_busy_buffers_size 256k;
fastcgi_temp_file_write_size 256k;
fastcgi_intercept_errors on
011/01/07 11:12:57 [error] 10770#0: *38585340 upstream timed out (110: Connection timed out) while reading response header from upstream, client: 116.22.131.154, server: *.xywy.com, request: "GET /ysmp/index.php?did=124994 HTTP/1.0", upstream: "http://127.0.0.1:8080/ysmp/index.php?did=124994", host: "xywy.yn16.com"
後來原來那錯誤沒了出了新錯誤了
upstream timed out 超時?
代碼如下 復制代碼
server {
listen 80;
server_name *.xywy.com ;
large_client_header_buffers 4 16k;
client_max_body_size 300m;
client_body_buffer_size 128k;
proxy_connect_timeout 600;
proxy_read_timeout 600;
proxy_send_timeout 600;
proxy_buffer_size 64k;
proxy_buffers 4 32k;
proxy_busy_buffers_size 64k;
proxy_temp_file_write_size 64k;
#charset koi8-r;
# access_log off;
request_terminate_timeout
如果主要是在一些post或者資料庫操作的時候出現502這種情況,而不是在靜態頁面操作中常見,那麼可以查看一下php-fpm.conf設置中的一項:
request_terminate_timeout
這個值是max_execution_time,就是fast-cgi的執行腳本時間。
0s
0s為關閉,就是無限執行下去。(當時裝的時候沒仔細看就改了一個數字)問題解決了,執行很長時間也不會出錯了。優化fastcgi中,還可以改改這個值5s 看看效果。
㈢ 伺服器php-cgi.exe進程過多,導致CPU佔用100%
你的現象一般有兩種可能,一是PHP腳本問題,例如你在PHP腳本後面寫一個按回車結束,然後從標准輸入讀數據,可能會造成阻塞,使得進程無法結束。進行測試的方法的是寫一個最簡單的PHP腳本(例如只有phpinfo();一行),然後不斷用瀏覽器打開這個頁面,如果CGI進程也在增加,那麼說明是下面一種情況。
另外一種情況是PHP版本安裝不對,在WINDOWS下用CGI方式工作,不要安裝「線程安全」版本,應該安裝「非線程安全」的版本,否則會出現你的情況。