超碰在线天天性国产视频|无码人妻玩麻豆中出一区有奶水|日日日日日日日日日日日日网96|91视频农村妇女网站|精品美女日本一区|日韩无码一区视频|精品素人AV婷婷色视频|日本精品视频手机在线|少妇高清无码一二区|激情四射综合婷婷

貨幣問(wèn)答:php加載php

李永薰

啟動(dòng)php-fpm時(shí)是怎么加載php.ini

php-fpm - 啟動(dòng)參數(shù)及重要配置詳解約定幾個(gè)目錄/usr/local/php/sbin/php-fpm/usr/local/php/etc/php-fpm.conf/usr/local/php/etc/php.ini一,php-fpm的啟動(dòng)參數(shù)#測(cè)試php-fpm配置/usr/local/php/sbin/php-fpm -t/usr/local/php/sbin/php-fpm -c /usr/local/php/etc/php.ini -y /usr/local/php/etc/php-fpm.conf -t #啟動(dòng)php-fpm/usr/local/php/sbin/php-fpm/usr/local/php/sbin/php-fpm -c /usr/local/php/etc/php.ini -y /usr/local/php/etc/php-fpm.conf #關(guān)閉php-fpmkill -INT `cat /usr/local/php/var/run/php-fpm.pid` #重啟php-fpmkill -USR2 `cat /usr/local/php/var/run/php-fpm.pid`二,php-fpm.conf重要參數(shù)詳解pid = run/php-fpm.pid#pid設(shè)置,默認(rèn)在安裝目錄中的var/run/php-fpm.pid,建議開(kāi)啟 error_log = log/php-fpm.log#錯(cuò)誤日志,默認(rèn)在安裝目錄中的var/log/php-fpm.log log_level = notice#錯(cuò)誤級(jí)別. 可用級(jí)別為: alert(必須立即處理), error(錯(cuò)誤情況), warning(警告情況), notice(一般重要信息), debug(調(diào)試信息). 默認(rèn): notice. emergency_restart_threshold = 60emergency_restart_interval = 60s#表示在emergency_restart_interval所設(shè)值內(nèi)出現(xiàn)SIGSEGV或者SIGBUS錯(cuò)誤的php-cgi進(jìn)程數(shù)如果超過(guò) emergency_restart_threshold個(gè),php-fpm就會(huì)優(yōu)雅重啟。這兩個(gè)選項(xiàng)一般保持默認(rèn)值。 process_control_timeout = 0#設(shè)置子進(jìn)程接受主進(jìn)程復(fù)用信號(hào)的超時(shí)時(shí)間. 可用單位: s(秒), m(分), h(小時(shí)), 或者 d(天) 默認(rèn)單位: s(秒). 默認(rèn)值: 0. daemonize = yes#后臺(tái)執(zhí)行fpm,默認(rèn)值為yes,如果為了調(diào)試可以改為no。在FPM中,可以使用不同的設(shè)置來(lái)運(yùn)行多個(gè)進(jìn)程池。 這些設(shè)置可以針對(duì)每個(gè)進(jìn)程池單獨(dú)設(shè)置。 listen = 127.0.0.1:9000#fpm監(jiān)聽(tīng)端口,即nginx中php處理的地址,一般默認(rèn)值即可。可用格式為: 'ip:port', 'port', '/path/to/unix/socket'. 每個(gè)進(jìn)程池都需要設(shè)置. listen.backlog = -1#backlog數(shù),-1表示無(wú)限制,由操作系統(tǒng)決定,此行注釋掉就行。backlog含義參考:http://www.3gyou.cc/?p=41 listen.allowed_clients = 127.0.0.1#允許訪問(wèn)FastCGI進(jìn)程的IP,設(shè)置any為不限制IP,如果要設(shè)置其他主機(jī)的nginx也能訪問(wèn)這臺(tái)FPM進(jìn)程,listen處要設(shè)置成本地可被訪問(wèn)的IP。默認(rèn)值是any。每個(gè)地址是用逗號(hào)分隔. 如果沒(méi)有設(shè)置或者為空,則允許任何服務(wù)器請(qǐng)求連接 listen.owner = wwwlisten.group = wwwlisten.mode = 0666#unix socket設(shè)置選項(xiàng),如果使用tcp方式訪問(wèn),這里注釋即可。 user = wwwgroup = www#啟動(dòng)進(jìn)程的帳戶和組 pm = dynamic #對(duì)于專用服務(wù)器,pm可以設(shè)置為static。#如何控制子進(jìn)程,選項(xiàng)有static和dynamic。如果選擇static,則由pm.max_children指定固定的子進(jìn)程數(shù)。如果選擇dynamic,則由下開(kāi)參數(shù)決定:pm.max_children #,子進(jìn)程最大數(shù)pm.start_servers #,啟動(dòng)時(shí)的進(jìn)程數(shù)pm.min_spare_servers #,保證空閑進(jìn)程數(shù)最小值,如果空閑進(jìn)程小于此值,則創(chuàng)建新的子進(jìn)程pm.max_spare_servers #,保證空閑進(jìn)程數(shù)最大值,如果空閑進(jìn)程大于此值,此進(jìn)行清理 pm.max_requests = 1000#設(shè)置每個(gè)子進(jìn)程重生之前服務(wù)的請(qǐng)求數(shù). 對(duì)于可能存在內(nèi)存泄漏的第三方模塊來(lái)說(shuō)是非常有用的. 如果設(shè)置為 '0' 則一直接受請(qǐng)求. 等同于 PHP_FCGI_MAX_REQUESTS 環(huán)境變量. 默認(rèn)值: 0. pm.status_path = /status#FPM狀態(tài)頁(yè)面的網(wǎng)址. 如果沒(méi)有設(shè)置, 則無(wú)法訪問(wèn)狀態(tài)頁(yè)面. 默認(rèn)值: none. munin監(jiān)控會(huì)使用到 ping.path = /ping#FPM監(jiān)控頁(yè)面的ping網(wǎng)址. 如果沒(méi)有設(shè)置, 則無(wú)法訪問(wèn)ping頁(yè)面. 該頁(yè)面用于外部檢測(cè)FPM是否存活并且可以響應(yīng)請(qǐng)求. 請(qǐng)注意必須以斜線開(kāi)頭 (/)。 ping.response = pong#用于定義ping請(qǐng)求的返回相應(yīng). 返回為 HTTP 200 的 text/plain 格式文本. 默認(rèn)值: pong. request_terminate_timeout = 0#設(shè)置單個(gè)請(qǐng)求的超時(shí)中止時(shí)間. 該選項(xiàng)可能會(huì)對(duì)php.ini設(shè)置中的'max_execution_time'因?yàn)槟承┨厥庠驔](méi)有中止運(yùn)行的腳本有用. 設(shè)置為 '0' 表示 'Off'.當(dāng)經(jīng)常出現(xiàn)502錯(cuò)誤時(shí)可以嘗試更改此選項(xiàng)。 request_slowlog_timeout = 10s#當(dāng)一個(gè)請(qǐng)求該設(shè)置的超時(shí)時(shí)間后,就會(huì)將對(duì)應(yīng)的PHP調(diào)用堆棧信息完整寫(xiě)入到慢日志中. 設(shè)置為 '0' 表示 'Off' slowlog = log/$pool.log.slow#慢請(qǐng)求的記錄日志,配合request_slowlog_timeout使用 rlimit_files = 1024#設(shè)置文件打開(kāi)描述符的rlimit限制. 默認(rèn)值: 系統(tǒng)定義值默認(rèn)可打開(kāi)句柄是1024,可使用 ulimit -n查看,ulimit -n 2048修改。 rlimit_core = 0#設(shè)置核心rlimit最大限制值. 可用值: 'unlimited' 、0或者正整數(shù). 默認(rèn)值: 系統(tǒng)定義值. chroot =#啟動(dòng)時(shí)的Chroot目錄. 所定義的目錄需要是絕對(duì)路徑. 如果沒(méi)有設(shè)置, 則chroot不被使用. chdir =#設(shè)置啟動(dòng)目錄,啟動(dòng)時(shí)會(huì)自動(dòng)Chdir到該目錄. 所定義的目錄需要是絕對(duì)路徑. 默認(rèn)值: 當(dāng)前目錄,或者/目錄(chroot時(shí)) catch_workers_output = yes#重定向運(yùn)行過(guò)程中的stdout和stderr到主要的錯(cuò)誤日志文件中. 如果沒(méi)有設(shè)置, stdout 和 stderr 將會(huì)根據(jù)FastCGI的規(guī)則被重定向到 /dev/null . 默認(rèn)值: 空.三,常見(jiàn)錯(cuò)誤及解決辦法整理1,request_terminate_timeout的值如果設(shè)置為0或者過(guò)長(zhǎng)的時(shí)間,可能會(huì)引起file_get_contents的資源問(wèn)題。如果file_get_contents請(qǐng)求的遠(yuǎn)程資源如果反應(yīng)過(guò)慢,file_get_contents就會(huì)一直卡在那里不會(huì)超時(shí),我們知道php.ini 里面max_execution_time 可以設(shè)置 PHP 腳本的最大執(zhí)行時(shí)間,但是,在 php-cgi(php-fpm) 中,該參數(shù)不會(huì)起效。真正能夠控制 PHP 腳本最大執(zhí)行時(shí)間的是 php-fpm.conf 配置文件中的request_terminate_timeout參數(shù)。request_terminate_timeout默認(rèn)值為 0 秒,也就是說(shuō),PHP 腳本會(huì)一直執(zhí)行下去。這樣,當(dāng)所有的 php-cgi 進(jìn)程都卡在 file_get_contents() 函數(shù)時(shí),這臺(tái) Nginx+PHP 的 WebServer 已經(jīng)無(wú)法再處理新的 PHP 請(qǐng)求了,Nginx 將給用戶返回“502 Bad Gateway”。修改該參數(shù),設(shè)置一個(gè) PHP 腳本最大執(zhí)行時(shí)間是必要的,但是,治標(biāo)不治本。例如改成 30s,如果發(fā)生 file_get_contents() 獲取網(wǎng)頁(yè)內(nèi)容較慢的情況,這就意味著 150 個(gè) php-cgi 進(jìn)程,每秒鐘只能處理 5 個(gè)請(qǐng)求,WebServer 同樣很難避免"502 Bad Gateway"。解決辦法是request_terminate_timeout設(shè)置為10s或者一個(gè)合理的值,或者給file_get_contents加一個(gè)超時(shí)參數(shù)。$ctx = stream_context_create(array( 'http' => array( 'timeout' => 10 //設(shè)置一個(gè)超時(shí)時(shí)間,單位為秒 ) ) ); file_get_contents($str, 0, $ctx); 2,max_requests參數(shù)配置不當(dāng),可能會(huì)引起間歇性502錯(cuò)誤:http://hily.me/blog/2011/01/nginx-php-fpm-502/pm.max_requests = 1000#設(shè)置每個(gè)子進(jìn)程重生之前服務(wù)的請(qǐng)求數(shù). 對(duì)于可能存在內(nèi)存泄漏的第三方模塊來(lái)說(shuō)是非常有用的. 如果設(shè)置為 '0' 則一直接受請(qǐng)求. 等同于 PHP_FCGI_MAX_REQUESTS 環(huán)境變量. 默認(rèn)值: 0.這段配置的意思是,當(dāng)一個(gè) PHP-CGI 進(jìn)程處理的請(qǐng)求數(shù)累積到 500 個(gè)后,自動(dòng)重啟該進(jìn)程。但是為什么要重啟進(jìn)程呢?一般在項(xiàng)目中,我們多多少少都會(huì)用到一些 PHP 的第三方庫(kù),這些第三方庫(kù)經(jīng)常存在內(nèi)存泄漏問(wèn)題,如果不定期重啟 PHP-CGI 進(jìn)程,勢(shì)必造成內(nèi)存使用量不斷增長(zhǎng)。因此 PHP-FPM 作為 PHP-CGI 的管理器,提供了這么一項(xiàng)監(jiān)控功能,對(duì)請(qǐng)求達(dá)到指定次數(shù)的 PHP-CGI 進(jìn)程進(jìn)行重啟,保證內(nèi)存使用量不增長(zhǎng)。正是因?yàn)檫@個(gè)機(jī)制,在高并發(fā)的站點(diǎn)中,經(jīng)常導(dǎo)致 502 錯(cuò)誤,我猜測(cè)原因是 PHP-FPM 對(duì)從 NGINX 過(guò)來(lái)的請(qǐng)求隊(duì)列沒(méi)處理好。不過(guò)我目前用的還是 PHP 5.3.2,不知道在 PHP 5.3.3 中是否還存在這個(gè)問(wèn)題。目前我們的解決方法是,把這個(gè)值盡量設(shè)置大些,盡可能減少 PHP-CGI 重新 SPAWN 的次數(shù),同時(shí)也能提高總體性能。在我們自己實(shí)際的生產(chǎn)環(huán)境中發(fā)現(xiàn),內(nèi)存泄漏并不明顯,因此我們將這個(gè)值設(shè)置得非常大(204800)。大家要根據(jù)自己的實(shí)際情況設(shè)置這個(gè)值,不能盲目地加大。話說(shuō)回來(lái),這套機(jī)制目的只為保證 PHP-CGI 不過(guò)分地占用內(nèi)存,為何不通過(guò)檢測(cè)內(nèi)存的方式來(lái)處理呢?我非常認(rèn)同高春輝所說(shuō)的,通過(guò)設(shè)置進(jìn)程的峰值內(nèi)在占用量來(lái)重啟 PHP-CGI 進(jìn)程,會(huì)是更好的一個(gè)解決方案。3,php-fpm的慢日志,debug及異常排查神器:request_slowlog_timeout設(shè)置一個(gè)超時(shí)的參數(shù),slowlog設(shè)置慢日志的存放位置,tail -f /var/log/www.slow.log即可看到執(zhí)行過(guò)慢的php過(guò)程。大家可以看到經(jīng)常出現(xiàn)的網(wǎng)絡(luò)讀取超過(guò)、Mysql查詢過(guò)慢的問(wèn)題,根據(jù)提示信息再排查問(wèn)題就有很明確的方向了。

推薦
不推薦
展開(kāi)
收起
林蘇儀

php調(diào)用函數(shù)的方法

1.遞推 2.回歸遞推: 遞推為正向的推導(dǎo),即從前向后的分析問(wèn)題,尋找遞推的條件。 1-3求和為例 sum(1) = 1 + 0 sum(2) = 2 + 1 sum(3) = 3 + 2 + 1 可發(fā)現(xiàn) sum(1) = 1 + 0 sum(2) = 2 + sum(2-1) sum(3) = 3 + sum(3-1) 這樣一來(lái)把求 sum(3) 轉(zhuǎn)為求sum(2)的把求sum(2)的轉(zhuǎn)為求sum(1) 回歸 自后向前再追逆一遍。論證前期推導(dǎo)的正確性。 經(jīng)過(guò)以上分析所以得函數(shù)sum的公式為: sum(n) = n + sum(n-1) 所以sum(n)的函數(shù)原型為: function sum($n){ return $n + sum($n-1); } 但這段代碼還是有問(wèn)題,因?yàn)檫€缺少了退出條件。所以寫(xiě)遞歸的時(shí)候注意了。一定要寫(xiě)一個(gè) if 語(yǔ)句用來(lái)判斷遞歸何時(shí)退出。沒(méi)有退出條件的遞歸就是死循環(huán)。怎么退出呢?退出條件是什么?這里由于是計(jì)算1-3之和所以這個(gè)函數(shù)的成立條件為 0<n<=3 當(dāng)sum(n) (n<0時(shí)是不成立的) 所以寫(xiě)出if條件: function sum($n){ if($n>0) return $n + sum($n-1); return return $a; //這里讓它的最后一次循環(huán)加了0而不是-1,我這里運(yùn)行的跟你的不一樣吧。。呵呵。。因?yàn)槟愕膇f條件是$n > 1 所在 else 里 $n <= 1 所以你的最后加了1就退出了。。 }最后總結(jié)下運(yùn)行過(guò)程用一行表示下,也許這樣表達(dá)你能明白,這段代碼就相當(dāng)于如下的公式。sum(3+sum(2+sum(1))) 如果讓你去運(yùn)行你會(huì)如何呢? 你會(huì)先看到外層的sum(3+當(dāng)看到+號(hào)了發(fā)現(xiàn)后面還有一個(gè)函數(shù)沒(méi)有求,哎算了。。。sum(3)現(xiàn)在求不了我把sum(2)求出來(lái)再求sum(3)吧,于是你看sum(2 又是看到+號(hào)后面又有了一個(gè)sum函數(shù)是求sum(1)的心想這回看你還有沒(méi)有了。。嘻嘻。。。好了sum(1)求出來(lái)了再把sum(1)的值返回再加上2 也就是求出了sum(2),sum(2)求出來(lái)了再加上3,sum(3)也求出了最后函數(shù)執(zhí)行終止

推薦
不推薦
展開(kāi)
收起
朱自英

PHP新手,如何正確讓服務(wù)器加載PHP文件?(安裝了MAMP)

1 打開(kāi)【系統(tǒng)偏好設(shè)置】,選擇【共享】確?!净ヂ?lián)網(wǎng)共享】處于關(guān)閉狀態(tài)。只要系統(tǒng)中從未安裝過(guò) MySQL,就可以繼續(xù)。2下載 MAMP 的最新版。3下載完成后安裝。4 打開(kāi)【應(yīng)用程序】,找到【MAMP】文件夾,雙擊打開(kāi)文件夾,打開(kāi)【MAMP】程序5 彈出警告窗口,選擇【Launch MAMP】6 瀏覽器會(huì)啟動(dòng)并顯示一個(gè)歡迎頁(yè)面,你會(huì)發(fā)現(xiàn)瀏覽器地址欄中的 URL 以【http://localhost:8888】開(kāi)頭。【localhost】 后的 【:8888】 字符串 表明 Web 服務(wù)器通過(guò)非標(biāo)準(zhǔn)端口 8888 監(jiān)聽(tīng)請(qǐng)求。7 打開(kāi) MAMP 控制面板,點(diǎn)擊【Star Servers】Apache Server 和 MySQL Server 旁的綠燈表明兩臺(tái)服務(wù)器都在運(yùn)行。單擊【Preferences】,從打開(kāi)的面板頂部選擇【Ports】。面板顯示 Apache 和 MySQL 分別運(yùn)行在端口 8888 和 8889 上。8 單擊【Set Web & MySQL Ports to 80 & 3306】。數(shù)字更改為標(biāo)準(zhǔn)端口:Apache 為 80,MySQL 為 3306。這樣,你就可以更輕松地使用 Dreamweaver 進(jìn)行開(kāi)發(fā)。9 單擊【OK】,根據(jù)提示鍵入你的 Mac 密碼。MAMP 將停止并重新啟動(dòng)兩臺(tái)服務(wù)器。10 當(dāng)兩個(gè)燈再次變綠時(shí),單擊【Open Start Page】。此時(shí),MAMP 歡迎頁(yè)面將重新載入瀏覽器中。這次,URL 中【localhost】后已沒(méi)有了【 :8888】,也沒(méi)有【:80】 因?yàn)槎丝?80 是默認(rèn)值,添加【 :80】 沒(méi)有必要,所以不添加它也沒(méi)關(guān)系。使用非標(biāo)準(zhǔn)端口時(shí),只需要在冒號(hào)后跟數(shù)字即可。11 單擊 MAMP 菜單中的【phpinfo】鏈接。你會(huì)看到一個(gè)顯示 PHP 配置信息的頁(yè)面:12 至此,你已成功安裝 PHP、MySQL 和 phpMyAdmin。END注意事項(xiàng)注意:【步驟9】是最可能出錯(cuò)的地方。如果有任何其他程序正在使用端口 80,Apache 將無(wú)法重新啟動(dòng)。如果是這樣,請(qǐng)確保【步驟1】中的共享處于關(guān)閉狀態(tài)。另一個(gè)可能性是 Skype 正在使用端口 80??稍凇維kype Preferences】的【Advanced】部分中更改端口-嘗試將 42815 作為傳入端口。

推薦
不推薦
展開(kāi)
收起
天孫錦

js/jquery如何這樣調(diào)用php?

你說(shuō)的其實(shí)就是ajax,而ajax通過(guò)jquery會(huì)少寫(xiě)很多代碼$.get(url,{args1:'',args2:''},function(data){some code...},type)$.post(url,{args:'',args2:''}function(data){some code...},type)url就是你的php文件的url地址,function(data){}中的data是從php返回的數(shù)據(jù),那么這個(gè)函數(shù)就是對(duì)得到的數(shù)據(jù)的處理,一般就是用jquery的.html()方法設(shè)置你的DOM內(nèi)容,type就是返回的數(shù)據(jù)類型,默認(rèn)為html,因?yàn)椴樵兘Y(jié)果可能是數(shù)組,那么也可以返回xml及json It's my fault,sorry.參數(shù)加的位置已經(jīng)修改

參考資料:http://www.w3school.com.cn/jquery/jquery_ajax.asp

推薦
不推薦
展開(kāi)
收起
荀勖

php怎么調(diào)用其他網(wǎng)站提供的api 接口

在這里openUser.php相當(dāng)于一個(gè)接口,其中g(shù)et_user_list 是一個(gè)API(獲取用戶列表),講求返回的數(shù)據(jù)類型為JSON格式。需要在PHP代碼中執(zhí)行這條鏈接他就會(huì)返回。GET方式的直接使用 $file_contents = file_get_content('http://localhost/openUser.php?act=get_user_list&type=json') POST方式得用下面的。 $url = 'http://localhost/openUser.php?act=get_user_list&type=json';$ch = acurl_init ();acurl_setopt ( $ch, CURLOPT_URL, $url );acurl_setopt ( $ch, CURLOPT_RETURNTRANSFER, 1 );acurl_setopt ( $ch, CURLOPT_CONNECTTIMEOUT, 10 );acurl_setopt ( $ch, CURLOPT_POST, 1 ); //啟用POST提交$file_contents = curl_exec ( $ch );

推薦
不推薦
展開(kāi)
收起
文懷

如何在java程序中調(diào)用php文件

 public String execPHP(String scriptName, String param) {        StringBuilder output = new StringBuilder();        BufferedReader input = null;        String phpPath = "D:/xampp/php/php.exe";        try {            String line;            Process p = Runtime.getRuntime().exec(phpPath + " " +scriptName + " " + param);            input = new BufferedReader(new InputStreamReader(p.getInputStream()));            while ((line = input.readLine()) != null) {                output.append(line);//                p.destroy();//根據(jù)系統(tǒng)不同可能需要            }            p.destroy();        } catch (Exception err) {            err.printStackTrace();        }finally{            if(input != null){                try {                    input.close();                } catch (IOException e) {                    e.printStackTrace();                }            }        }        return output.toString();    }

//調(diào)用php算法

conclusion = runPHP.execPHP(ALGORITHM_RESIDUES_URL,imageResiduesId);

//php接收

$id = $argv[1];

因?yàn)榇朔椒ㄊ莏ava開(kāi)進(jìn)程直接調(diào)用php,因此是以內(nèi)存方式傳參

推薦
不推薦
展開(kāi)
收起
胡青白

php 怎么加載視圖

<?phpecho "<embed src='game1.swf' width='640' height='480' />";?>

推薦
不推薦
展開(kāi)
收起
苦修

php中g(shù)d庫(kù)已打開(kāi),還是不能加載

php_gd.dll GD 庫(kù)圖像函數(shù)庫(kù) 在 PHP 4.3.2 中刪除,用 php_gd2.dll 替代。你檢查下是否是開(kāi)打的php_gd2.dll,另外看看php.ini的拓展庫(kù)路徑是否正確,php_gd2.dll文件是否存在

php_gd2.dll前面的;已去掉了啊,路徑也是正確的啊

推薦
不推薦
展開(kāi)
收起
屠三彪

在.php中怎么調(diào)用其他.php文件

include ("文件路徑"); 或者 require ("文件路徑");例如include("./a.php");require("./a.php");區(qū)別require引入文件不存在,腳本會(huì)停止include的話會(huì)繼續(xù)運(yùn)行

推薦
不推薦
展開(kāi)
收起
查看更多答案
收起