上次完成了基本的配置,咱們的代碼也能夠正常運行了,在測試的時候,也發現了一些問題(是個人網站的一些問題),好比上傳文件的路徑寫的是在Windows開發時的虛擬站點的域名,上線後致使上傳出現問題,由於線上的域名與寫代碼時候的域名不同,致使出來的問題,因此在日常的開發時,必定要確認好這些小問題,否則上線後就會有各類問題,還好是我本身的項目,否則鐵定少不了一頓罵。php
相似上面的狀況,最好的解決辦法就是,這些可能會改變的東西,分離出來是最好的,就laravel來講,配置文件是最好的選擇。.config或者.env,固然這二者仍是有些區別的,具體請看html
http://www.javashuo.com/article/p-yxnwyjcn-nt.htmllinux
下載源碼包nginx
http://www.memcached.org/laravel
下載源碼redis
下載好後解壓 vim
tar xvzf memcached-1.6.7.tar.gzwindows
查看,configurecentos
有了它咱們就能夠編譯了,使用緩存
./configure --prefix=你指定的目錄
報錯了。。。。。
須要libevent依賴,那咱們就裝上它,有些人可能會有疑問,咋不早點裝它,這樣就看不到錯誤了,其實吧,,我早知道須要這個依賴,這是教學篇,因此報錯是好的,再說咱們怎麼知道有沒有裝過那個依賴,,他缺乏啥,我們就裝啥,搞起。
使用 yum install -y libevent libevent-devel.x86_64
裝完以後,再次執行 ./configure --prefix=你指定的目錄
而後就OK了,就編譯好了
接下來,安裝它 使用make && make install
等待一會就裝好了,進入目錄看看
接下來是啓動,這裏有些參數,根據須要指定
/usr/local/memcached/bin/memcached -d -u root -m 16m -p 11211
-m 啓動16兆內存 一個原則,指定的內存大小比物理內存在小
-p 默認端口11211
-d 啓動守護進程
-u 指定用戶
-c 指定鏈接數(併發數)
-l是監聽的服務器IP地址 127.0.0.1 0.0.0.0 誰均可以訪問
注:memcached默認的端口號爲:11211
### 關閉memcached
pkill memcached
啓動成功
接下來,安裝Telnet,Telnet是用來鏈接memcached的,也能夠操做。
安裝成功,q表示退出Telnet。
語法
telnet ip port 回車
鏈接成功 按下 crtl+]
在linux中執行telnet命令鏈接memcached服務
徹底正常,繼續往下。
獲取、添加、設置數據 # 獲取存儲在 key(鍵) 中的 value(數據值) ,若是 key 不存在,則返回空。 get key # 添加 add 只能添加不存在的key或過時了的key,存在的key添加則報錯 add key flags exptime bytes\n value\n # 設置 set key存在則修改,不存在則添加 set key flags exptime bytes\n value\n
參數說明以下: key:結構中的 key,用於查找緩存值。 flags:客戶機使用它存儲關於鍵值對的額外信息(0|1|2) exptime:在緩存中保存鍵值對的時間長度(以秒爲單位,0 表示永遠)[時間長度(最長30天),時間戳(時間戳能夠設置好久的時間超過30天的限制)] bytes:在緩存中存儲的字節數 value:存儲的值長度和bytes長度設置的同樣的 輸出信息說明: STORED:保存成功後輸出。 ERROR:在保存失敗後輸出。 自增和自減 # incr 與 decr 命令用於對已存在的 key(鍵) 的數字值進行自增或自減操做 # incr 與 decr 命令操做的數據必須是十進制的32位無符號整數 # 自增 # 統計 set key 0 3600 1 value incr key increment_value(能夠想寫多少就寫多少,且必須是正數) 自增和自減,通常用於統計 注:使用自增或自減第1步,要用set或add建立一個key值,後纔可使用incr或decr 刪除數據 # delete 命令用於刪除已存在的 key(鍵) delete key # 清除全部 儘可能不要去使用 flush_all 輸出信息說明: DELETED:刪除成功。 ERROR:語法錯誤或刪除失敗。 NOT_FOUND:key 不存在。 查看狀態 # 用於返回統計信息例如 PID(進程號)、版本號、鏈接數等 stats pid: memcache服務器進程ID uptime:服務器已運行秒數 curr_connections:當前鏈接數量 cmd_get:get命令請求次數 cmd_set:set命令請求次數 get_hits:get命令命中次數 get_misses:get命令未命中次數 命中率 get_hits/cmd_get 60% – 90%
這個我們還不涉及memcached的具體應用,因此先了解這些經常使用命令,至於實戰運用,會在後面的教程中進行講解。
但這就像單機遊戲同樣,本身玩沒啥意思,因此php他來了 ,上次我麼整合php+nginx,此次咱們整合php+memcached
PHP Memcache 擴展包下載地址:http://pecl.php.net/package-search.php?pkg_name=memcache,你能夠下載最新穩定包(stable)。
一樣,進入網站,複製連接,使用wget 下載,解壓,這些操做是相同的因此,這裏再也不贅述,如有不明白的,能夠看以前的,剛開始講解的詳細點,熟悉了以後就不裝了,攤牌了。我是京城一哥--張大炮是也。。。
開個玩笑,我們繼續。。。。
此次先裝依賴,上次是不裝了,攤牌了,此次咱先裝上依賴。(裝最新的穩定版的就行,沒必要和個人版本同樣,你可能十年後看到這篇文章,你難道裝十年前的擴展嗎?因此的注意時差)
# 安裝依賴 安裝安裝安裝 yum install -y libmemcached.x86_64 libmemcached-devel.x86_64 # 安裝memcached擴展 wget http://pecl.php.net/get/memcache-4.0.5.2.tgz
tar zxvf memcache-4.0.5.2.tgz cd memcache-4.0.5.2 phpize 命令 (在擴展文件所解壓目錄中去執行) ./configure --with-php-config=/usr/local/php/bin/php-config make && make install 配置php.ini 注意這裏可能會報錯 extension = memcached.so 注:windows中的擴展後綴名叫.dll linux中的擴展的後綴名爲.so
咱們來看看那個報錯
PHP Warning: PHP Startup: Unable to load dynamic library 'memcached.so' (tried: /usr/lib64/php/modules/memcached.so (/usr/lib64/php/modules/memcached.so: cannot open shared object file: No such file or directory), /usr/lib64/php/modules/memcached.so.so (/usr/lib64/php/modules/memcached.so.so: cannot open shared object file: No such file or directory)) in Unknown on line 0
好傢伙,挺長的報錯,這是什麼緣由形成的?百度看看,會有人跟你說,是centos的系統致使的,或者是PHP自己致使的。。。。。
其實都不是,這是由於咱們使用yum安裝的,yum安裝時給咱們作了不少的規範,因此,當咱們不聽從這些規範的時候理所應當的就報錯了。
做爲良心博主,不進告訴你錯誤的緣由,還教你怎麼解決(*^▽^*)
若是是源碼安裝的php,那麼可使用修改php.ini文件來發現擴展,畢竟咱們Windows中開啓擴展頁是修改php.ini文件。
解決辦法:
一、cd /etc/php.d 目錄下 隨意複製一份配置文件 好比 cp bz2.ini memcached.ini //這裏的memcached.ini 是帶 d 的 注意 後面有個不帶d 的
二、複製完後 ,vim memcached.ini
進行如圖修改
三、wq保存退出
使用 php -m |grep 擴展名 能夠查找擴展是否安裝 顯而易見,咱們的memcached擴展已經安裝好了
這裏跟上面操做基本同樣,我寫僞代碼解釋一下。
一、賦值連接,wget下載,tar zxvf redis。。。gz 解壓
二、進入解壓後的目錄,而後直接執行 make
三、執行完make後,執行 make PREFIX=/usr/local/redis install 這裏記得 指定安裝目錄 還有 就是 PREFIX 得是大寫的 小寫不行
這樣就安裝好了
四、賦值 解壓後的目錄中的redis.conf 到 /usr/local/redis/bin
五、修改 redis.conf
這個修改是容許redis 在後臺運行。
語法:命令 配置文件
redis-server(寫路徑) redis.conf(寫路徑)
注意:此處命令與配置文件,能夠寫相對路徑或絕對路徑。
好比使用絕對路徑寫法: /usr/local/redis/bin/redis-server /usr/local/redis/redis.conf
查看是否啓動成功:啓動成功後,默認的端口是6379
netstat –tunpl | grep 6379
語法: redis-cli -h 主機ip -p端口號
若是是鏈接到本地,則直接輸入鏈接命令便可。
redis-cli是客戶端鏈接服務器的命令
測試能用不
OK~
中止Redis實例
咱們可使用/usr/local/redis/bin/redis-cli shutdown
也可使用pkill redis-server
killall redis-server
pkill -9 redis
http://pecl.php.net/package/redis
下載,解壓,進入解壓目錄,執行phpize 生成config
而後執行 ./configure --with-php-config=/usr/bin/php-config 指定一會生成的.so擴展放到哪一個目錄,咱們指定了,就會放到那個目錄
而後執行 make && make install
以後,進入/etc/php.d 而後隨便複製一個.ini文件改成 redis.ini 而後
和 安裝 memcached擴展的操做是同樣的。
這樣就OK了。
至此,今日份快樂已經完成了。後續會繼續推出新的文章,好比 php操做 memcached redis swoole
學會了,php操做這些以後,咱們進行項目實戰,敬請期待。