原创 java爬蟲框架webmagic-core-0.5.3源碼分析

webmagic框架使用java語言,抽象出爬蟲常用操作,封裝了爬蟲中使用頻繁的庫類,使整個爬取邏輯更加清晰有條理。 關於webmagic的使用指南在官網描述的很清楚,簡單介紹下項目結構。 先看下官網的一個流程圖介紹: 這裏展現了爬蟲

原创 php 多線程 pthreads擴展

PHP 5.3 以上版本,使用pthreads PHP擴展,可以使PHP真正地支持多線程。多線程在處理重複性的循環任務,能夠大大縮短程序執行時間。 pthreads擴展需要php是以線程安全模式安裝,而一般的linux下php是以非線程安

原创 mysql備份與恢復-mysqldump使用

對於任何一個項目數據庫備份都很重要,雖然平時不容易出問題,但是一出問題如果沒有事先準備的話,基本就蒙逼了 這次主要說說一種比較基本簡單的備份策略,適合一些小項目,大了的項目也不用我們操心DB了 這裏使用的是mysql自帶的mysqldum

原创 加了@日誌還是記錄到了warning信息

php裏@錯誤抑制符只是不顯示錯誤信息,但是錯誤信心還是能被set_error_handle()函數捕獲到。 舉個例子: function userErrorHandler($errno, $errmsg, $filename, $li

原创 vagrant控制虛擬機的網絡配置

Vagrant的網絡有三種模式 1、較爲常用是端口映射,就是將虛擬機中的端口映射到宿主機對應的端口直接使用 ,在Vagrantfile中配置: config.vm.network :forwarded_port, guest: 80,

原创 通過vagrant打造php虛擬機通用環境

vagrant 個人理解是用來管理虛擬機的,一般配套的虛擬機是virtualbox。通過在虛擬機中配置好環境,可以很方便的移植到另一臺機器上。 首先, 下載vagrant ,https://www.vagrantup.com/downlo

原创 git提交代碼前用php-cs-fixer強制格式化代碼

需求:爲統一團隊代碼風格,在大家提交代碼時同意格式化代碼,方便閱讀。 思路: 1、php-cs-fixer格式化代碼 2、git hooks來選定在什麼時候進行格式化 工具: 1、git 2、php-cs-fixer 安裝php-cs-f

原创 linux php-5.3.28版本升級到php-5.5.25

爲了方便,在linux環境下安裝了lnmp集成環境,但是後來在項目中,由於php5.3版本不支持數組以 ['a','b'] 的形式書寫,所以需要更新php到5.3以上版本。 lnmp中php是以config & make & make i

原创 監控線上錯誤日誌

需求:監控線上的錯誤日誌,有新錯誤時,將錯誤信息發送到指定人的郵箱上。 思路: 1、根據線上日誌文件的總條數來判斷是否新增內容 2、記錄上一次的總條數,作爲提取日誌增量的其實行數 3、將新增內容發送至郵箱 代碼: #!/bin/bash

原创 nginx location反向代理問題

nginx可以講請求轉發到其他服務上去,今天在本地調試的時候遇到個問題,記錄下。   本來要將一個請求 http://hostname/api/xxx 轉發到其他的服務去處理,加上下面這段代碼就生效了 location /api/

原创 通過Navicat for MySQL遠程連接的時候報錯mysql 1130的解決方法

錯誤代碼是1130,ERROR 1130: Host xxx.xxx.xxx.xxx is not allowed to connect to this MySQL server 是無法給遠程連接的用戶權限問題 Navicat for m

原创 sql查詢語句優化

1:選擇最有效率的表名順序(只在基於規則的優化器中有效) ORACLE的解析器按照從右到左的順序處理FROM子句中的表名,因此FROM子句中寫在最後的表(基礎表 driving table)將被最先處理. 在FROM子句中包含多個表的情況

原创 bad interpreter: No such file or directory

這類錯誤有兩種表現形式: 1、-bash: /usr/bin/yum: /usr/bin/python: bad interpreter: No such file or directory         這個錯誤是因爲python的版

原创 supervisor

supervisor 能管理linux的進程,項目中用它來保證一個進程斷了自動重啓。 用的是ubuntu系統,所以可以直接 apt-get install supervisor 進行安裝 也可以用其他方法安裝 安裝完畢生成配置文件:

原创 php 關於fgetcsv中文亂碼問題

$data = eval('return '.iconv('gbk','utf-8',var_export($data,true)).';'); 這裏var_export函數可以輸出或返回一個變量的字符串表示。此函數返回關於傳遞給該函數的