Time of Update: 2016-07-29
需求由於nginx的日誌會不停地增大,所以需要我們自己去切割日誌,方便管理,需要達到以下的效果:按日期自動切割日誌,最小單位是天。當日誌總量超過一定量時,自動直接清理日誌,限定總量不能超過1000MB。寫入crontab定時任務裡。分析nginx日誌目錄下分別有access.log和error.log,按照日期自動切割日誌則需要將每天的日誌以”yyyymmdd_access/error.log”的格式儲存下來,用mv重新命名每一天的記錄檔即可。清理日誌就簡單了,只需要判斷這個檔案夾下的大小,然後
Time of Update: 2016-07-29
一.語言效能最佳化1.使用Apache下的ab工具進行效能測試測試:ab -n100 -c100 https://www.baidu.com/(請求100次,並發量是100)關注兩個量:Requests per second(每秒請求數 )和Time per
Time of Update: 2016-07-29
這裡的php 寫API其實就是指提供一個WebServiceWebSite : 1.以html格式響應返回 2.由使用者通過瀏覽器來接入WebService : 1.以json/Xml格式返回 2.由程式接入 3.用來實現不同平台的互動How to begin說簡單點,就是傳資料的,就是封裝各種方法讓其它人來調用A simple example如何寫一個學生飯卡的介面?作為一個中介層,我們需要得到使用者的資料(即學生的學生學號,學生卡密碼),並且知道我們應該把資料POST到哪(比如www.123
Time of Update: 2016-07-29
PHP版本特別多,特別雜,想自己搭一套php的運行環境可不是一件容易的事,稍不留神就遇到一個坑,在某個問題上卡住半天。這篇文章嘗試將PHP時的版本選擇中可能遇到的坑逐一說明:Windows下首先看作業系統的版本,如果是Windows的在這裡下載:http://windows.php.net/download/再看作業系統是32位還是64位?如果是32位的,就選擇帶“x86”的版本,如果是64位的,就選擇帶“x64”的版本。然後看WEB伺服器是什嗎?如果是IIS系列,就選擇帶“Non
Time of Update: 2016-07-29
2.1命名空間:避免衝突,放在引用命名空間:use namespace Symphony/HttpFoundation;聲明命名空間:namespace Oreilly;引用命名空間中的某一類:use Oreilly/con as a;引用命名空間中的函數:use func Oreilly/functionName;引用命名空間中的常量:user constant Rreilly/CONST_NAME;多重匯入:檔案頭多個use語句在一個檔案中使用多個命名空間namespace
Time of Update: 2016-07-29
PHP 的extract()函數,它的主要作用是將數組展開,鍵名作為變數名,元素值為變數值,可以說為數組的操作提供了另外一個方便的工具,比方說,可以很方便的提取POST或者_GET的元素,對錶單提交上來的內容不能不用一一賦值$_POST);//相當於$username = $_POST['username'];//$password = $_POST['password'];?>').addClass('pre-numbering').hide();
Time of Update: 2016-07-29
作業系統:Windows 7XAMPP 版本:1.8.3 免安裝版因為測試需要 LDAP 環境支援,查了一下 XAMPP 的 phpinfo,發現 LDAP 預設沒有啟用。修改 php.ini配置啟用 ldap 後,發現啟動 apache 時連續報兩次錯誤,錯誤內容為:“PHPWarning: PHP Startup: inUnknown on line 0”。經檢查發現錯誤原因是有一個動態連結程式庫找不到。php 對 ldap 的支援需要依賴 3 個動態連結程式庫:libeay32.dll、
Time of Update: 2016-07-29
看 composer 的 autoload 的時候發現他用 spl_autoload_register 註冊了一個類 class 進去。。明明記得是要傳進去一個待註冊的 autoload function 隊列,查了查文檔才發現關於 Callback 回調類型理解有誤看文檔裡面關於 Callback 回調類型的樣本:// Type 1: Simple callbackcall_user_func('my_callback_function'); // Type 2: Static class
Time of Update: 2016-07-29
通過Nginx的http_stub_status_module模組提供的狀態資訊來監控,所以在Agent端需要配置Nginx狀態擷取的指令碼,和添加key資訊等,然後在Server端配置Nginx的監控模板等。請根據自己情況調整,這裡只做簡單的參照。主要是使用Github這個項目的代碼 zabbix-templatesAgent端系統是Centos6.x, Zabbix-agent是3.0版本, Nginx1.9.x 官方版本首先要檢查Nginx是否安裝了
Time of Update: 2016-07-29
今天碰到圖片上傳的過程中出現nginx 411問題。首先上網查了下,原因如下:在使用Nginx 1.3.9以下版本,都存在當使用者POST一個帶有檔案的請求的時候,出現HTTP 411錯誤我目前使用的nginx版本太低了。[root@i nginx]# nginx -vnginx version: nginx/1.0.15
Time of Update: 2016-07-29
1、簡介編輯Composer是PHP中用來管理依賴(dependency)關係的工具。你可以在自己的項目中聲明所依賴的外部工具庫(libraries),Composer會幫你安裝這些依賴的庫檔案。2、安裝安裝Composer需要完成以下兩步:第一:下載Composer到你的項目目錄。使用以下命令:$ curl -s (Composer web site)/installer | php此命令只檢查少量的PHP配置,然後下載 composer.phar
Time of Update: 2016-07-29
一.函數與語言結構語言結構:就是PHP語言的關鍵詞,語言文法的一部分;它不可以被使用者定義或者添加到語言擴充或庫中;它可以有也可以沒有變數和返回值。函數:有代碼塊組成,可以複用。從源碼的角度來說,也就是基於Zend引擎的基礎來實現的,ext擴充庫中的函數都是這樣實現的。語言結構比函數快語言結構為什麼比函數快原因是在PHP中,函數都要先被PHP解析器(Zend引擎)分解成語言結構,所以有此可見,函數比語言結構多了一層解析器解析。這樣就能比較好的理解,什麼語言結構比函數快了。語言結構和
Time of Update: 2016-07-29
1.安裝步驟step1: 下載ninx$ cd ~/download/$ wget http://nginx.org/download/nginx-1.8.1.tar.gz不同版本的下載地址可從http://nginx.org/en/download.html擷取。step2: 解壓並安裝$ tar -zxvf nginx-1.8.1.tar.gz $ cd nginx-1.8.1/$ ./configure$ make$ make
Time of Update: 2016-07-29
nginx + tomcat 架構的 Web 服務中,使用者感覺響應很慢,如何排查呢?可以第一時間查看 nginx 的 access.log。log_format 中定義了 $request_time 欄位,它指的是從接受使用者請求資料到發送完回複資料的時間。那究竟是慢在了 nginx、tomcat 還是其它?log_format 同 時 提 供 了 $upstream_response_time 欄位,它是指從 nginx
Time of Update: 2016-07-29
當 後 端 服 務 器 的 響 應 body 大 於proxy_temp_file_write_size,響應會被緩衝到 proxy_temp_path 目錄下的臨時檔案中;當 客 戶 端 的 請 求 body 大 於 client_body_buffer_size, 請 求 會 緩 存 到 client_body_temp_path 目錄下的臨時檔案中。因此當nginx 處理大資料量的請求或響應時,臨時目錄對應的磁碟 IO 壓力較大,可能會成為系統瓶頸。應用時應該根據應用情境和 數 據 大
Time of Update: 2016-07-29
最近學習angularJS,發現使用其自身的$http.post向後台php發送資料,php接收不到的問題。比如:$http.post("php/getRoleRight.php", {rr:$scope.currSelect}).success(function(response) { ·· }); php使用$_POST['rr']接收不到傳過來的參數。開啟firebug發現其實傳成功了,折騰了好半天才發現,它只不過傳輸的格式與普通的傳輸
Time of Update: 2016-07-29
1.變數函數(可變函數) 變數的值是一個函數的名稱。 e.g:```functionshow($a,$b){return$a+$b;}$str="show";echo$str(10,5);``2.回呼函數 回呼函數,函數的參數是另一個函數的名字。```functionshow($a,$b){return$a+$b;}functiontest($i,$j,$k){return$k($i,$j);}$num=test(10,5,"show");echo$num;``3.遞迴函式
Time of Update: 2016-07-29
一首先需定義一個資料庫介面函數,可單獨存為一個php頁面functiondb_connect() {$result = new mysqli('資料庫地址', '帳號', '密碼', '庫名');//串連資料庫if (!$result) { returnfalse;//串連失敗 } return$result;//返回資料庫物件}?>二在另一php頁面中,首先需使用include函數包含上述php頁面,也即需保證上述介面函數能被正確調用functionoutput_rows($
Time of Update: 2016-07-29
[laravel] laravel的資料庫配置找到程式目錄結構下.env檔案配置基本的資料庫連接資訊DB_HOST=127.0.0.1DB_PORT=3306DB_DATABASE=blogDB_USERNAME=rootDB_PASSWORD=root修改完.env檔案需要重啟服務[laravel] laravel的資料庫入門控制器中匯入DB資料庫操作類,use
Time of Update: 2016-07-29
Git在做merge時經常碰到衝突的問題,多數情況都是用IDE中整合的“解決衝突”工具解決了,但有時不能依賴IDE時,就得回過頭來去搞清楚Git的一些基礎操作了。mergetool.其實還是不用命令列的對比工具自虐的,Linux下一般推薦kdiff3和meld這兩個可視化合并工具,我選了meld,它是基於gtk的,kdiff一看就是基於kde的,meld可以在Macos下使用(需要先安裝X11):$ brew install homebrew/x11/meld安裝以後,設定git相應模組:$