說明:準(zhǔn)備一臺(tái)虛擬機(jī),地址為202.207.178.6,已經(jīng)安裝好nginx,并且可以正常啟動(dòng)使用了!
公司專注于為企業(yè)提供成都網(wǎng)站制作、網(wǎng)站建設(shè)、微信公眾號(hào)開發(fā)、商城網(wǎng)站開發(fā),小程序開發(fā),軟件按需網(wǎng)站開發(fā)等一站式互聯(lián)網(wǎng)企業(yè)服務(wù)。憑借多年豐富的經(jīng)驗(yàn),我們會(huì)仔細(xì)了解各客戶的需求而做出多方面的分析、設(shè)計(jì)、整合,為客戶設(shè)計(jì)出具風(fēng)格及創(chuàng)意性的商業(yè)解決方案,創(chuàng)新互聯(lián)公司更提供一系列網(wǎng)站制作和網(wǎng)站推廣的服務(wù)。一、安裝前準(zhǔn)備
1、memcached依賴于libevent API,因此要事先安裝之
# tar xf libevent-2.0.20-stable.tar.gz
# cd libevent-2.0.20
# ./configure --prefix=/usr/local/libevent
# make && make install
輸出庫(kù)文件:
# echo "/usr/local/libevent/lib" > /etc/ld.so.conf.d/libevent.conf
# ldconfig
2、要啟用sasl,確保已經(jīng)安裝了cyrus-sasl-devel
# yum -y install cyrus-sasl-devel
二、安裝配置memcached
1、安裝memcached
# tar xf memcached-1.4.15.tar.gz
# cd memcached-1.4.15
# ./configure --enable-sasl --prefix=/usr/local/memcached
--with-libevent=/usr/local/libevent
# make && make install
2、memcached的常用選項(xiàng)說明:
# /usr/local/memcached/bin/memcached
-p <num>: 指定監(jiān)聽的TCP端口,默認(rèn)為11211
-U <num>:指定監(jiān)聽的UDP端口,默認(rèn)為11211,0表示關(guān)閉UDP端口
-s 本地套接字通信
-l <ip_addr>:指定進(jìn)程監(jiān)聽的地址
-d: 以服務(wù)模式運(yùn)行
-r 設(shè)定大文件大小限制
-u <username>:以指定的用戶身份運(yùn)行memcached進(jìn)程
-m <num>:用于緩存數(shù)據(jù)的大內(nèi)存空間,單位為MB,默認(rèn)為64MB;
-c <num>:大支持的并發(fā)連接數(shù),默認(rèn)為1024
-t <threads>:用于處理入站請(qǐng)求的大線程數(shù),僅在memcached編譯時(shí)開啟
了支持線程才有效;
-f <num>:設(shè)定Slab Allocator定義預(yù)先分配內(nèi)存空間大小固定的塊時(shí)使用
的增長(zhǎng)因子;
-M:當(dāng)內(nèi)存空間不夠使用時(shí)返回錯(cuò)誤信息,而不是按LRU算法利用空間;
-n: 指定最小的slab chunk大?。粏挝皇亲止?jié);
-S: 啟用sasl進(jìn)行用戶認(rèn)證;
3、啟動(dòng)memcached:
# /usr/local/memcached/bin/memcached -d -m 128 -n 20 -f 1.25 -vv -u nobody
4、使用telnet命令測(cè)試memcached的使用
# telnet 127.0.0.1 11211
add命令:
add keyname flag timeout datasize
如:
add mykey 0 30 5
hello
get命令:
get keyname
如:get mykey
VALUE mykey 0 5
hello
END
5、為memcached提供啟動(dòng)腳本 ,將其建立為/etc/init.d/memcached文件:
#!/bin/bash
#
# Init file for memcached
#
# chkconfig: - 86 14
# description: Distributed memory caching daemon
#
# processname: memcached
# config: /etc/sysconfig/memcached
. /etc/rc.d/init.d/functions
## Default variables
PORT="11211"
USER="nobody"
MAXCONN="1024"
CACHESIZE="64"
OPTIONS=""
RETVAL=0
prog="/usr/local/memcached/bin/memcached"
desc="Distributed memory caching"
lockfile="/var/lock/subsys/memcached"
start() {
echo -n $"Starting $desc (memcached): "
daemon $prog -d -p $PORT -u $USER -c $MAXCONN -m $CACHESIZE -o "$OPTIONS"
RETVAL=$?
echo
[ $RETVAL -eq 0 ] && touch $lockfile
return $RETVAL
}
stop() {
echo -n $"Shutting down $desc (memcached): "
killproc $prog
RETVAL=$?
echo
[ $RETVAL -eq 0 ] && rm -f $lockfile
return $RETVAL
}
restart() {
stop
start
}
reload() {
echo -n $"Reloading $desc ($prog): "
killproc $prog -HUP
RETVAL=$?
echo
return $RETVAL
}
case "$1" in
start)
start
;;
stop)
stop
;;
restart)
restart
;;
condrestart)
[ -e $lockfile ] && restart
RETVAL=$?
;;
reload)
reload
;;
status)
status $prog
RETVAL=$?
;;
*)
echo $"Usage: $0 {start|stop|restart|condrestart|status}"
RETVAL=1
esac
exit $RETVAL
6、使用如下命令配置memcached成為系統(tǒng)服務(wù):
# chmod +x /etc/init.d/memcached
# chkconfig --add memcached
# killall memcached
# service memcached start
三、安裝MySQL(我這里通過編譯安裝MySQL-5.6.33(通用二進(jìn)制格式))
1、將下載好的壓縮包解壓至/usr/local,并進(jìn)入此目錄
# tar xf mysql-5.6.33-linux-glibc2.5-i686.tar.gz -C /usr/local/
# cd /usr/local/
2、為解壓后的目錄創(chuàng)建一個(gè)鏈接,并進(jìn)入此目錄
# ln -sv mysql-5.6.33-linux-glibc2.5-i686 mysql
# cd mysql
3、創(chuàng)建MySQL用戶(使其成為系統(tǒng)用戶)和MySQL組
# groupadd -r -g 306 mysql
# useradd -g 306 -r -u 306 mysql
4、使mysql下的所有文件都屬于mysql用戶和mysql組
# chown -R mysql.mysql /usr/local/mysql/*
5、創(chuàng)建數(shù)據(jù)目錄,并使其屬于mysql用戶和mysql組,其他人無(wú)權(quán)限
# mkdir -p /mydata/data
# chown -R mysql:mysql /mydata/data/
# chmod o-rw /mydata/data/
6、準(zhǔn)備就緒,開始安裝
# scripts/mysql_install_db --user=mysql --datadir=/mydata/data
7、安裝完成后為了安全,更改/usr/local/mysql下所有文件的權(quán)限
#chown -R root .
8、準(zhǔn)備啟動(dòng)腳本,并使其開機(jī)自動(dòng)啟動(dòng)
# cp support-files/mysql.server /etc/init.d/mysqld
# chkconfig --add mysqld
# chkconfig --list mysqld
9、編輯數(shù)據(jù)庫(kù)配置文件
# cp support-files/my-default.cnf /etc/my.cnf
#vim /etc/my.cnf,修改和添加以下內(nèi)容:
datadir = /mydata/data
innodb_file_per_table = ON
log-bin = master-bin
10、提供執(zhí)行相關(guān)命令所需的環(huán)境變量
# vim /etc/profile.d/mysql.sh
添加以下內(nèi)容:
export PATH=$PATH:/usr/local/mysql/bin
11、至此,MySQL服務(wù)配置完成,可以啟動(dòng)測(cè)試
# service mysqld start
12、輸出庫(kù)文件(因?yàn)橐槍?duì)mysql進(jìn)行編譯)
# vim /etc/ld.so.conf.d/mysql.conf
添加以下內(nèi)容:
/usr/local/mysql/lib
# ldconfig -v
13、輸出頭文件
# ln -sv /usr/local/mysql/include /usr/include/mysql
四、編譯安裝php-5.5.38:(相關(guān)包可以到http://www.php.net/ 下載)
1、安裝前準(zhǔn)備:
如果出現(xiàn)出現(xiàn)configure:error:xml2-config not found錯(cuò)誤:
# yum -y install libxml2-devel
如果出現(xiàn):configure: error: Please reinstall the BZip2 distribution
# yum -y install bzip2-devel
如果出現(xiàn):configure: error: Please reinstall the libcurl distribution -
easy.h should be in <curl-dir>/include/curl/
# yum -y install curl-devel
2、將源碼包下載至本地,開始安裝
# tar xf php-5.5.38.tar.bz2
#cd php-5.5.38
#./configure --prefix=/usr/local/php --with-mysql=/usr/local/mysql
--with-openssl --enable-fpm --enable-sockets --enable-sysvshm
--with-mysqli=/usr/local/mysql/bin/mysql_config --enable-mbstring
--with-freetype-dir --with-jpeg-dir --with-png-dir --with-zlib
--with-libxml-dir=/usr --enable-xml --with-config-file-path=/etc
--with-config-file-scan-dir=/etc/php.d --with-bz2 --with-curl
(釋義:
--prefix=/usr/local/php 指定php安裝目錄;
--with-mysql=/usr/local/mysql mysql安裝目錄,對(duì)mysql的支持;
--with-openssl 增加openssl的支持;
--enable-fpm 啟用php-fpm
--enable-sockets 打開socket支;
--with-mysqli=/usr/local/mysql/bin/mysql_config mysqlin擴(kuò)展技術(shù),不僅可以調(diào)
用MySQL的存儲(chǔ)過程,處理MySQL事物,而且可以使訪問數(shù)據(jù)庫(kù)工作變得穩(wěn)定
--enable-mbstring 多字節(jié)字符串的支持;
--with-freetype-dir 打開對(duì)freetype字體庫(kù)的支持;
--with-jpeg-dir 對(duì)jpeg格式圖片的支持;
--with-png-dir 打開對(duì)png圖片的支持;
--with-zlib 打開對(duì)zlib庫(kù)的支持;
--with-libxml-dir=/usr 打開libxml2庫(kù)的支持;
--enable-xml 打開對(duì)xml的支持;
--with-config-file-path=/etc 指定php.ini(配置文件)位置;
--with-config-file-scan-dir=/etc/php.d 是搜索下面的ini文件php.ini一起用;
--with-bz2 打開對(duì)bz2文件的支持;
)
#make
#make install
3、為php提供配置文件:
# cp php.ini-production /etc/php.ini
4、為php-fpm提供配置文件:
# cp /usr/local/php/etc/php-fpm.conf.default
/usr/local/php/etc/php-fpm.conf
5、編輯php-fpm的配置文件:
# vim /usr/local/php/etc/php-fpm.conf
配置fpm的相關(guān)選項(xiàng)為你所需要的值,并啟用pid文件(如下最后一行):
pm.max_children = 150
pm.start_servers = 8
pm.min_spare_servers = 5
pm.max_spare_servers = 10
#pid = /usr/local/php/var/run/php-fpm.pid
6、為php-fpm提供Sysv init腳本,并將其添加至服務(wù)列表:
# cd php-5.5.38
# cp sapi/fpm/init.d.php-fpm /etc/rc.d/init.d/php-fpm
# chmod +x /etc/rc.d/init.d/php-fpm
# chkconfig --add php-fpm
# chkconfig php-fpm on
7、接下來就可以啟動(dòng)php-fpm了:
# service php-fpm start
使用如下命令來驗(yàn)正(如果此命令輸出有中幾個(gè)php-fpm進(jìn)程就說明啟動(dòng)成功了):
# ps aux | grep php-fpm
五、整合nginx和php5
1、編輯/etc/nginx/nginx.conf,啟用如下選項(xiàng):
# vim /etc/nginx/nginx.conf
開啟和添加如下幾項(xiàng):
location / {
root /web/htdocs;
index index.php index.html;
}
location ~ \.php$ {
index index.php index.html;
root /web/htdocs;
fastcgi_pass 127.0.0.1:9000;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME /scripts$fastcgi_script_name;
include fastcgi_params;
}
2、配置好fastcgi_params,確保為以下內(nèi)容
# vim /etc/nginx/fastcgi_params
fastcgi_param GATEWAY_INTERFACE CGI/1.1;
fastcgi_param SERVER_SOFTWARE nginx;
fastcgi_param QUERY_STRING $query_string;
fastcgi_param REQUEST_METHOD $request_method;
fastcgi_param CONTENT_TYPE $content_type;
fastcgi_param CONTENT_LENGTH $content_length;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
fastcgi_param SCRIPT_NAME $fastcgi_script_name;
fastcgi_param REQUEST_URI $request_uri;
fastcgi_param DOCUMENT_URI $document_uri;
fastcgi_param DOCUMENT_ROOT $document_root;
fastcgi_param SERVER_PROTOCOL $server_protocol;
fastcgi_param REMOTE_ADDR $remote_addr;
fastcgi_param REMOTE_PORT $remote_port;
fastcgi_param SERVER_ADDR $server_addr;
fastcgi_param SERVER_PORT $server_port;
fastcgi_param SERVER_NAME $server_name;
3、提供訪問頁(yè)面
# vim /web/htdocs/index.php
<h2>FSY PAGE<h2>
<?php
phpinfo();
?>
4、而后重新載入nginx的配置文件:
# service nginx reload
接著就可以通過瀏覽器訪問此測(cè)試頁(yè)面了!
六、安裝Memcache的PHP擴(kuò)展
1、安裝PHP的memcache擴(kuò)展
# tar xf memcache-2.2.5.tgz
# cd memcache-2.2.5
#/usr/local/php/bin/phpize
# ./configure --with-php-config=/usr/local/php/bin/php-config
--enable-memcache
# make && make install
上述安裝完后會(huì)有類似以下的提示:
Installing shared extensions: /usr/local/php/lib/php/extensions/no-debug-non-zts-20121212/
2、編輯/etc/php.d/memcache.ini,添加如下一行來載入memcache擴(kuò)展:
extension=/usr/local/php/lib/php/extensions/no-debug-non-zts-20121212/memcache.so
3、重啟php-fpm,并進(jìn)行訪問測(cè)試
# service php-fpm restart
此時(shí)訪問202.207.178.6,會(huì)發(fā)現(xiàn)memcache模塊已經(jīng)加載上了!
4、對(duì)memcached功能進(jìn)行測(cè)試,在網(wǎng)站目錄中建立測(cè)試頁(yè)面test.php,添加如下內(nèi)容:
# vim /web/htdocs/test.php
<?php
$mem = new Memcache;
$mem->connect("127.0.0.1", 11211) or die("Could not connect");
$version = $mem->getVersion();
echo "Server's version: ".$version."<br/>\n";
$mem->set('testkey', 'Hello World', 0, 600) or die("Failed to save data at the memcached server");
echo "Store data in the cache (data will expire in 600seconds)
<br/>\n";
$get_result = $mem->get('testkey');
echo "$get_result is from memcached server.";
?>
此時(shí)訪問http://202.207.178.6/test.php如果有輸出“Hello World is from memcached.”等信息,則表明memcache已經(jīng)能夠正常工作。
歡迎批評(píng)指正!
另外有需要云服務(wù)器可以了解下創(chuàng)新互聯(lián)cdcxhl.cn,海內(nèi)外云服務(wù)器15元起步,三天無(wú)理由+7*72小時(shí)售后在線,公司持有idc許可證,提供“云服務(wù)器、裸金屬服務(wù)器、高防服務(wù)器、香港服務(wù)器、美國(guó)服務(wù)器、虛擬主機(jī)、免備案服務(wù)器”等云主機(jī)租用服務(wù)以及企業(yè)上云的綜合解決方案,具有“安全穩(wěn)定、簡(jiǎn)單易用、服務(wù)可用性高、性價(jià)比高”等特點(diǎn)與優(yōu)勢(shì),專為企業(yè)上云打造定制,能夠滿足用戶豐富、多元化的應(yīng)用場(chǎng)景需求。
分享標(biāo)題:memcached實(shí)現(xiàn)LNMP對(duì)php頁(yè)面的緩存-創(chuàng)新互聯(lián)
網(wǎng)頁(yè)路徑:http://muchs.cn/article26/ijpjg.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供營(yíng)銷型網(wǎng)站建設(shè)、搜索引擎優(yōu)化、微信公眾號(hào)、外貿(mào)建站、響應(yīng)式網(wǎng)站、自適應(yīng)網(wǎng)站
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來源: 創(chuàng)新互聯(lián)
猜你還喜歡下面的內(nèi)容