源碼安裝memcache
『壹』 php 怎麼配置memcached
分為linux和windows系統下:
windows下:
1、首先下載memcache的windows版本,將下載下來的文件解壓出來後會看見一個名為memcached.exe的可執行程序
2、將該文件放到指定目錄,如D盤
3、安裝:
開始->運行->cmd打開命令窗口
進入D盤:cd d:
安裝memcache服務:
在命令窗口輸入:
memacahed.exe -d install
等待命令執行完成後,就可以在服務列表中看到memcached服務
4、啟動memcache服務:
memcached.exe -d start
5、可以通過以下命令來查看memcache服務是否啟動成功:
wmic process get description, executablepath | findstr memcached.exe
可以將memcached.exe的路徑放入到系統環境變數中,方便使用。
查看memcache運行狀態:
在命令窗口輸入:
telnet 127.0.0.1 11211
鏈接到memcache上,輸入stats就可以查看到當前memcache的狀態了;
linux下:
1.下載memcache源碼
http://www.memcached.org/
2.解壓並進入目錄
./configure --prefix=/usr/local/memcache
make
make test
sudo make install
3.啟動memcache
memcache -d start -u root
驗證memcache是否正確安裝並啟動
netstat -tap | grep memcached
4.安裝memcache擴展庫
下載memcache擴展
進入到memcache擴展文件
./configure --enable-memcache --with-php-config=/usr/local/php/bin/php-config
make
make install
修改php.ini文件 增加
extension=memcache.so
安裝memcached擴展庫
下載memcached擴展
memcached擴展需要libMemcached庫的支持,所有在安裝memcached擴展庫之前要確認系統已經安裝了libmemcached
安裝libmemcached
./configure --prefix=/usr/local/memcache
make
make install
libmemcached安裝完成後,就可以安裝memcached擴展庫
./configure --with-libmemcached-dir=/usr/local/memcached/ --with-php-config=/usr/local/php/bin/php-config
make
make install
同樣修改php.ini配置文件,增加
extension=memcached.so
『貳』 php7無法安裝memcache擴展 系統 centos-6.8 Nginx-1.10.2 PHP-7.0.13/5.6.28 memcached-1.4
一 下載需要的源碼包
所有安裝包均選用最新的。
1. 下載libevent2.0.22
點擊紅色部分下載
下載memcached1.4.24
點擊紅色部分,下載最新版本
下載php擴展memcache3.0.8
選擇需要的版本
二 安裝詳細步驟
首先將以上三個軟體包下載到/tmp目錄下
1. 安裝libevent
cd /tmp #首先進入到該下載包的目錄
tar zxvf libevent-2.0.22-stable.tar.gz #解壓包cd libevent-2.0.22-stable #進入到解壓的目錄./configure --prefix=/usr/local #編譯前配置,生成Makefile文件,路徑可自行更改make; make install #編譯+安裝
1
測試是否安裝成功
看到這些信息,表示成功啦
2. 安裝memcached
cd /tmp #首先進入到該下載包的目錄
tar zxvf memcached-1.4.24.tar.gz #解壓包
cd memcached-1.4.24 #進入到解壓的目錄
./configure –with-libevent=/usr/local #編譯前配置,生成Makefile文件,路徑必須與libevent中一致make; make install #編譯+安裝
1
測試是否安裝成功
表示成功的信息
通過以上操作,就完成了memcached伺服器的安裝。特別的簡單吧!現在就來搞一搞memcache的php擴展安裝吧3. 安裝擴展
cd /tmp #首先進入到該下載包的目錄
tar zxvf memcache-3.0.8.tgz #解壓包
cd memcache-3.0.8 #進入到解壓的目錄
/opt/lampp/bin/phpize #動態為php添加擴展。phpize路徑可能不一致,請根據自己的實際情況./configure –enable-memcache –with-php-config=/opt/lampp/bin/php-config –with-zlib-dir #php-config請根據自己環境情況填寫make; make install #編譯+安裝
1
完成以上步驟時,心情愉悅的點擊了enter,准備喝口水瀟灑一下,結果出現了一下錯誤(這也是我寫這篇博客的原因,要不都懶得記錄了)錯誤信息
看了下代碼錯誤信息,說是zlib.h找不到。找不到就給他安一個嘛。真是的安裝zlib
下載zlib-1.2.8.tar.gz
下載地址:http://www.zlib.net/
如圖:
紅色部分點擊
cd /tmp #首先進入到該下載包的目錄
tar zxvf zlib-1.2.8.tar.gz #解壓包
cd zlib-1.2.8 #進入到解壓的目錄
./configure --prefix=/usr/local/zlib
make; make install #編譯+安裝
1
再進行配置一下系統的文件,載入剛才編譯安裝的zlib生成的庫文件vi /etc/ld.so.conf.d/zlib.conf
加入如下內容後保存退出: /usr/local/zlib/lib也就是添加安裝目錄的文件路徑,庫文件。ldconfig 運行之後就會載入安裝的庫文件了。
OK,到這一步了,此時,重新在memcache的php擴展中執行make;make install命令如果看到以下信息,表示成功:
擴展安裝成功
三 配置php.ini文件
首先通過phpinfo函數,找到php.ini的路徑,我的是:/opt/lampp/etc/php.ini在其中添加如下內容:
修改extension_dir路徑:
extension_dir = 「/opt/lampp/lib/php/extensions/no-debug-non-zts-20121212/」
extension=memcache.so
[Memcache]
memcache.allow_failover = 1
memcache.max_failover_attempts=20
memcache.chunk_size =8192
然後重新啟動apache,再次通過phpinfo查看一下情況。如果有如下內容,表示配置成功:
信息
四 配置memcached伺服器
啟動memcached伺服器
memcached -d -m 10 -u root -l 127.0.0.1 -p 11211 -c 256 -P /tmp/memcached.pid參數說明:
-d選項是啟動一個守護進程,
-m是分配給Memcache使用的內存數量,單位是MB,我這里是10MB,-u是運行Memcache的用戶,我這里是root,
-l是監聽的伺服器IP地址,如果有多個地址的話,我這里指定了伺服器的IP地址127.0.0.1,-p是設置Memcache監聽的埠,我這里設置了11211,最好是1024以上的埠,-c選項是最大運行的並發連接數,默認是1024,我這里設置了256,按照你伺服器的負載量來設定,-P是設置保存Memcache的pid文件,我這里是保存在 /tmp/memcached.pid2. 結束memcached進行
kill cat /tmp/memcached.pid
3. 檢查memcached是否已經啟動
看到綠色框中內容,就表示完成
五 測試php的memcache擴展
<?php
$mem = new Memcache;
$mem->connect("192.168.12.201", 13001);
$mem->set('key','This is a test!', 0, 60);$val = $mem->get('key');
echo $val;
?>
寫在後面:大家有興趣可以將session改為使用memcache來保存。php自身使用文件的方式,不太好,動不動文件大小總和就上G了。
『叄』 memcached怎麼安裝和使用
memcached安裝和使用的方法
軟體的下載,好像從官網上只能下載未經編譯的源碼,需要自己編譯後才能安裝使用,不熟悉的用戶還是直接網路搜索下載比較好,
下載之後解壓會出現兩個版本,32位系統用x86,64位系統用x64,裡面各有一個.exe程序。
建議把memcached的文件夾拷貝到自己的網站環境目錄下方便統一管理。
接下來就是安裝了。打開命令提示符,進入到memcached所在目錄。
輸入
memcached -d install
如果沒有報錯說明安裝成功
打開 開始-->管理工具-->服務,或者 運行-->services.msc來打開服務管理界面,前面的安裝環節沒有出現問題的話這里會多一個 Memcached Server服務。
點擊啟動此服務,或者命令行輸入 net start "Memcached Server" 來啟動memcached.
至此,memcached安裝完成。
『肆』 linux php7 安裝 memcached 改哪個配置文件
1、php7安裝Memcached擴展
比如說我現在使用了最新的 Ubuntu 16.04,雖然內置了 PHP 7 源,但 memcached 就還沒有,不過好在,它已經支持了 PHP 7 ,只是沒有源而已,我們手動編譯它。
要安裝 memcached,需要先安裝依賴庫 libmemcached
從 這里 找到最新的 libmemcached 源碼包,然後下載。
wget https://launchpad.net/libmemcached/1.0/1.0.18/+download/libmemcached-1.0.18.tar.gz
tar -zxf libmemcached-1.0.18.tar.gz
cd libmemcached-1.0.18/
./configure
make && make install
安裝好依賴庫之後,我們來安裝 memcached :
從 github 克隆 memcached 後,需要手動切換到 php7 分支,不然會提示 fatal error : ext / standard / php_smart_str . h : No such file or directory 錯誤。
git clone https://github.com/php-memcached-dev/php-memcached
『伍』 阿里雲伺服器如何安裝memcached
方法/步驟
1
使用Xshell登陸阿里雲伺服器。
請使用root帳號登陸。下面的操作全部在home目錄里執行
2
安裝libevent。
輸入命令 yum -y install libevent-devel
3
下載memcached源碼並解壓。
依次輸入命令
wget -c
tar -zxvf memcached-1.4.18.tar.gz
cd memcached-1.4.18
4
指定memcached安裝路徑。
輸入命令 ./configure --prefix=/alidata/server/memcached/
5
編譯並安裝。
輸入命令 make && make install
6
修改memcached的用戶組。
一般應用伺服器都會使用一個用戶來運行,如果你是使用阿里雲的一鍵安裝包部署環境的話,那麼應用伺服器的用戶就是www。現在把memcached文件夾賦給www,輸入命令:
chown -R
7
設置memcached開機時自動啟動。
要讓memcached自動啟動,需要添加一個服務的腳本到/etc/init.d。memcached的源碼包里已經包含了一個服務腳本,但需要稍作修改才能使用。輸入命令:
cp ~/memcached-1.4.18/scripts/memcached.sysv /etc/init.d/memcached
vi /etc/init.d/memcached
修改圖里紅框里的內容,其中參數說明如下:
PORT=11211 #監聽的埠
USER=www #所屬的用戶
MAXCONN=1024 #最大連接數
CACHESIZE=64 #使用的內存大小,這里是64M
OPTIONS="" #其他選項
start()函數修改成如下內容
start () {
echo -n $"Starting $prog: "
# insure that /var/run/memcached has proper permissions
#chown $USER /var/run/memcached
/alidata/server/memcached/bin/memcached -d -p $PORT -u $USER -m $CACHESIZE -c $MAXCONN -P /alidata/server/memcached/memcached.pid $OPTIONS
RETVAL=$?
echo
[ $RETVAL -eq 0 ] && touch /var/lock/subsys/memcached
}
『陸』 memcache 擴展直接在 php.ini配置可以么
一下載需要的源碼包所有安裝包均選用最新的。1.下載libevent2.0.22點擊紅色部分下載下載memcached1.4.24點擊紅色部分,下載最新版本下載php擴展memcache3.0.8選擇需要的版本二安裝詳細步驟首先將以上三個軟體包下載到/tmp目錄下1.安裝libeventcd/tmp#首先進入到該下載包的目錄tarzxvflibevent-2.0.22-stable.tar.gz#解壓包cdlibevent-2.0.22-stable#進入到解壓的目錄./configure--prefix=/usr/local#編譯前配置,生成Makefile文件,路徑可自行更改make;makeinstall#編譯+安裝1測試是否安裝成功看到這些信息,表示成功啦2.安裝memcachedcd/tmp#首先進入到該下載包的目錄tarzxvfmemcached-1.4.24.tar.gz#解壓包cdmemcached-1.4.24#進入到解壓的目錄./configure–with-libevent=/usr/local#編譯前配置,生成Makefile文件,路徑必須與libevent中一致make;makeinstall#編譯+安裝1測試是否安裝成功表示成功的信息通過以上操作,就完成了memcached伺服器的安裝。特別的簡單吧!現在就來搞一搞memcache的php擴展安裝吧3.安裝擴展cd/tmp#首先進入到該下載包的目錄tarzxvfmemcache-3.0.8.tgz#解壓包cdmemcache-3.0.8#進入到解壓的目錄/opt/lampp/bin/phpize#動態為php添加擴展。phpize路徑可能不一致,請根據自己的實際情況./configure–enable-memcache–with-php-config=/opt/lampp/bin/php-config–with-zlib-dir#php-config請根據自己環境情況填寫make;makeinstall#編譯+安裝1完成以上步驟時,心情愉悅的點擊了enter,准備喝口水瀟灑一下,結果出現了一下錯誤(這也是我寫這篇博客的原因,要不都懶得記錄了)錯誤信息看了下代碼錯誤信息,說是zlib.h找不到。找不到就給他安一個嘛。真是的安裝zlib下載zlib-1.2.8.tar.gz下載地址:memcached.pid3.檢查memcached是否已經啟動看到綠色框中內容,就表示完成五測試php的memcache擴展connect("192.168.12.201",13001);$mem->set('key','Thisisatest!',0,60);$val=$mem->get('key');echo$val;?>寫在後面:大家有興趣可以將session改為使用memcache來保存。php自身使用文件的方式,不太好,動不動文件大小總和就上G了。
『柒』 如何在Centos的linux操作系統安裝php的memcache擴展
准備工作:
1、一台linux的伺服器
2、下載相應版本的php源碼,知道自己php的版本並且知道phpize的位置
3、懂基本的linux解壓命令和編譯
操作步驟:
1、通過ssh登陸到我們的伺服器,找到我們的phpize位置,如果不知道下載跟目前使用版本相同的php源碼重新編譯一下
2、下載memcached的源碼包,並解壓安裝
wgettar -zxvf memcache-3.0.8.tgz #解壓cd memcache-3.0.8 #進入源碼包/usr/local/php/bin/phpize #執行phpize./configure --with-php-config=/usr/local/php/php-config #准備編譯make && make install #編譯安裝
3、配置php.ini文件在最後面添加擴展進去
vim /etc/php.iniextension=memcache.so
4、重啟web伺服器,我用的是apache
service httpd restart
5、編寫一個phpinfo文件去查看有沒有安裝成功
『捌』 memcache集群式怎麼部署,redis集群怎麼部署
本經驗介紹,Linux下redis的集群部署安裝。
工具/原料
redis
linux
方法/步驟
下載redis安裝文件,redis-3.0.2.tar.gz。去redis官網下載3.0或者以上版本
解壓redis到指定文件,這里解壓到/usr/local/lantu下,命令:
tar -zxvf redis-3.0.0-rc2.tar.gz
移動redis解壓文件,這里移動到/usr/local/redis3.0。單獨建一個文件方便安裝使用。然後執行安裝命令進行安裝。命令:
mv redis-3.0.0-rc2.tar.gz redis3.0
cd /usr/local/redis3.0
make
make install
可能會遇到gcc沒有安裝,安裝後可能還需要設置make MALLOC=libc
4
如果安裝報錯cc:command not find。安裝gcc
命令。yum install gcc.
5
安裝如果報錯「make[1]: *** [adlist.o] Error 1」,解決方法:make MALLOC=libc
注意:Redis並沒有自己實現內存池,沒有在標準的系統內存分配器上再加上自己的東西。
redis-2.4以上自帶jemalloc,你不需要加任何參數,通過zmalloc.c源碼中我們可以看到,Redis在編譯時,會先判斷是否使用tcmalloc,如果是,會用tcmalloc對應的函數替換掉標準的libc中的函數實現。其次會判斷jemalloc是否使得,最後如果都沒有使用才會用標準的libc中的內存管理函數。所以用tcmalloc優化請謹慎使用,這兩著分配器碎片率相差不大,建議用自帶jemalloc。
『玖』 怎麼查看linux是否安裝了memcache
安裝軟體一般有2種,rpm和源碼
rpm-qa|grepmemcache#rpm包查詢
find/-name"memcache"#查看源碼安裝文件
『拾』 php 能不能編譯的時候一起加入 memcached 擴展
一 安裝libevent
1.去官網http://libevent.org/ 下載最新源碼,我用的是libevent-2.0.20-stable.tar.gz
2.解壓到/usr/src目錄 ,執行命令:sudo tar -zxvf libevent-2.0.20-stable.tar.gz -C /usr/src
3.進入解壓以後的目錄,用sudo方式執行命令:sudo ./configure --prefix=/usr/local/libevent ; make ; make install
二 安裝memcache
1.去官網 http://memcached.org/ 下最新源碼,我用的是memcached-1.4.15.tar.gz
2.解壓到/usr/src目錄 ,執行命令:sudo tar -zxvf memcached-1.4.15.tar.gz -C /usr/src
3.進入解壓以後的目錄,用sudo方式執行命令:sudo ./configure --prefix=/usr/local/memcached --with-libevent=/usr/local/libevent; make ; make install
三 安裝php的memcache擴展
有兩個版本一個是memcache(http://pecl.php.net/package/memcache ),另一個是基於libmemcached的memcached版本(http://pecl.php.net/package/memcached );
網上查的資料是說前一個是原生的,後一個比前一個功能更強大。比較推薦使用基於libmemcahced 庫的memcached擴展。支持memcache提供的CAS操作,穩定性和效率也更好。
這里我使用基於libmemcached 庫的memcached擴展,安裝步驟如下:
首先,安裝libmemcached庫
1.去網址 https://launchpad.net/libmemcached (或者http://libmemcached.org/libMemcached.html )下載源碼,
我用的是libmemcached-1.0.14.tar.gz
2.解壓縮到/usr/src目錄,用sudo方式執行命令:sudo tar -zxvf libmemcached-1.0.14.tar.gz -C /usr/src
3.進入目錄/usr/src/libmemcached-1.0.14/,sudo方式執行命令:./configure ;make;make install (不加--prefix=/usr/local/libmemcached 指定安裝目錄時,libmemcached 默認安裝在/usr/local/,頭文件安裝在/usr/local/include/libmemcachde/,動態庫默認安裝在/usr/local/lib/下。)
4.make時遇到問題:sorry, unimplemented: Graphite loop optimizations can only be used if the libcloog-ppl0 package is installed。解決辦法是修改Makefile,查找並去掉 floop-parallelize-all(應該有兩處需要去掉),看了網上資料說是去掉後表示不使用Graphite loop 優化。
5.再次make,遇到問題:fatal error: sasl/sasl.h: No such file or directory. 在網上搜到的解決辦法是:
Depending on your operating system, you'll need to install the cyrus-sasl development package.
That would be cyrus-sasl-devel on RedHat based distros and libsasl2-dev on Debian based distros IIRC.
我在ubuntu下直接用sudo apt-get install libsasl2-dev 安裝了。
6.編譯還是遇到問題,顯示無法鏈接到sasl的一些文件。問題顯示如下:
undefined reference to `sasl_client_step'
undefined reference to `sasl_dispose'
undefined reference to `sasl_client_start'
undefined reference to `sasl_client_new'
解決辦法是重新執行configure命令,增加相應的參數。sudo執行命令:sudo ./configure --enable-sasl --without-memcached LDFLAGS=-Wl,--as-neede ;make; make install
7.終於安裝libmemcached庫成功了。。。
其次,安裝memcached版本的php擴展
1. 去網址http://pecl.php.net/package/memcached 下載memcached版本,我用的是memcached-2.1.0.tgz
2. 解壓到/usr/src目錄 ,執行命令:sudo tar -zxvf memcached-2.1.0.tgz -C /usr/src
3. 進入解壓以後的目錄,是沒有configure文件的,用sudo方式執行命令來生成:sudo /usr/local/php/bin/phpize
4.遇到問題:Cannot find autoconf. Please check your autoconf installation and the $PHP_AUTOCONF environment variable. Then, rerun this script. 網上搜到的解決辦法為:
cd /usr/src
wget http://ftp.gnu.org/gnu/m4/m4-1.4.9.tar.gz
tar -zvxf m4-1.4.9.tar.gz
cd m4-1.4.9/
./configure && make && make install
cd ../
wget http://ftp.gnu.org/gnu/autoconf/autoconf-2.62.tar.gz
tar -zvxf autoconf-2.62.tar.gz
cd autoconf-2.62/
./configure && make && make install
5.這是再次執行sudo /usr/local/php/bin/phpize,就可以成功生成configure文件了。(phpize是用來擴展php擴展模塊的,通過phpize可以建立php的外掛模塊,官方說明網址為:http://php.net/manual/en/install.pecl.phpize.php)
6.用sudo方式執行命令./configure --with-php-config=/usr/local/php/bin/php-config; make ; make install
7.編譯完成了,還需要做的是在/usr/local/lib/php.ini文件中加入extension值:extension=memcache.so
8.重啟/usr/local/php/sbin/php-fpm程序使配置生效,但是報錯:
ERROR: failed to open configuration file '/usr/local/php/etc/php-fpm.conf': No such file or directory (2)
ERROR: failed to load configuration file '/usr/local/php/etc/php-fpm.conf'
ERROR: FPM initialization failed
解決辦法為: (1)cd /usr/local/php/etc/; (2)mv php-fpm.conf.default php-fpm.conf
9.重啟仍然出現問題:ERROR: [pool www] cannot get uid for user 'www'。解決辦法為:編輯文件vim /usr/local/php/etc/php-fpm.conf,
把user = nobody group = nobody 中的nobody修改成有效的用戶和用戶組名稱。