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

貨幣問答:php加載php

李永薰

啟動php-fpm時是怎么加載php.ini

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

推薦
不推薦
展開
收起
林蘇儀

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

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

推薦
不推薦
展開
收起
朱自英

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

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

推薦
不推薦
展開
收起
天孫錦

js/jquery如何這樣調用php?

你說的其實就是ajax,而ajax通過jquery會少寫很多代碼$.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ù),那么這個函數(shù)就是對得到的數(shù)據(jù)的處理,一般就是用jquery的.html()方法設置你的DOM內容,type就是返回的數(shù)據(jù)類型,默認為html,因為查詢結果可能是數(shù)組,那么也可以返回xml及json It's my fault,sorry.參數(shù)加的位置已經(jīng)修改

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

推薦
不推薦
展開
收起
荀勖

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

在這里openUser.php相當于一個接口,其中get_user_list 是一個API(獲取用戶列表),講求返回的數(shù)據(jù)類型為JSON格式。需要在PHP代碼中執(zhí)行這條鏈接他就會返回。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 );

推薦
不推薦
展開
收起
文懷

如何在java程序中調用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();    }

//調用php算法

conclusion = runPHP.execPHP(ALGORITHM_RESIDUES_URL,imageResiduesId);

//php接收

$id = $argv[1];

因為此方法是java開進程直接調用php,因此是以內存方式傳參

推薦
不推薦
展開
收起
胡青白

php 怎么加載視圖

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

推薦
不推薦
展開
收起
苦修

php中gd庫已打開,還是不能加載

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

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

推薦
不推薦
展開
收起
屠三彪

在.php中怎么調用其他.php文件

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

推薦
不推薦
展開
收起
查看更多答案
收起