博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
项目实战:LAMP环境+Xcache+Redis,另附Memcached配置。
阅读量:7083 次
发布时间:2019-06-28

本文共 6546 字,大约阅读时间需要 21 分钟。

由于公司需求,小菜首次做项目:

        程序架构:Linux+Apache+Mysql+php+Xcache+Redis

编译安装apr,apr-util

# tar -zxvf apr-1.5.1.tar.gz

# ls
# cd apr-1.5.1
# ls
# ./configure --help 
# ./configure --prefix=/usr/local/apr
# make && make install
# cd ..
# tar -zxvf apr-util-1.5.3.tar.gz
# ls
# cd apr-util-1.5.3
# ls
# ./configure  --prefix=/usr/local/apr-util --with-apr=/usr/local/apr/

# make && make install

编译安装httpd2.4.9

设定编译参数:

--prefix    设置安装目录

--sysconfdir    设置配置文件目录

--enable-so    启用动态模块加载

--enable-ssl    启用SSL

--enable-cgi    启用cgi功能

--with-pcre    使用扩展的pcre库

--enable-rewrite    基于基本的URL处理

--with-apr    apr安装目录

--with-apr-util    apr-util安装目录

--enable-modules=most    启用大多数空闲分离模块

--enable-mpms-shared=all    启用MPM空闲分离模块动态装载

--with-mpm=event    给Apache选择默认进程模式

 

如果编译进程模式为work,或event,则在编译PHP的时候要加上 --enable-maintainer-zts,因为这两种模式是基于线程工作的。

# ./configure --prefix=/usr/local/apache --sysconfdir=/etc/httpd24 --enable-so --enable-ssl --enable-cgi --enable-rewrite --with-zlib --with-pcre --with-apr=/usr/local/apr --with-apr-util=/usr/local/apr-util --enable-modules=most --enable-mpms-shared=all --with-mpm=event

# make && make install

连接头文件,导入库文件,修改PATH环境变量,这些步骤我就省略了。

编译安装PHP为fpm服务

设定编译参数:

--with-mysql=    让PHP支持mysql,指定mysql的位置。

--with-openssl    指定openssl位置

--with-mysqli=/usr/local/mysql/bin/mysql_config    指定mysql的高级接口

--with-freetype-dir    图片格式的支持

--with-jpeg-dir    图片格式的支持

--with-png-dir      图片格式的支持

--enable-mbstring    启用多字节字符串的支持

--with-zilb    压缩库

--with-libxml-dir    指定xml安装目录

--enable-xml    启用php解释XML页面程序

--enable-sockets    启用套接字通信

--with-apxs2=/usr/local/apache/bin/apxs    apache把php编译成模块的接口

--with-mcrypt    增加php加密的功能  依赖库(libmcrypt,libmcrypt-devel,mhash,mhash-devel)

--with-config-file-path=/etc    php的配置文件目录

--with-config-file-scan-dir=/etc/php.d        设置扫描配置文件的路径

--with-bz2    压缩功能

--enable-fpm    启用fpm服务

 ./configure --prefix=/usr/local/php --with-mysql=/usr/local/mysql --with-openssl --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  --enable-sockets --enable-fpm --with-mcrypt  --with-config-file-path=/etc --with-config-file-scan-dir=/etc/php.d --with-bz2

# cp php.ini-production  /etc/php.ini

# cp /home/php-5.5.13/sapi/fpm/init.d.php-fpm  /etc/init.d/php-fpm

# cd /usr/local/php/etc

# cp php-fpm.conf.default  php-fpm.conf

# vim php-fpm.conf

接下来启动php-fpm

# chkconfig --add php-fpm

# service php-fpm start

编辑apache配置文件httpd.conf,以apache支持php 

 # vim /etc/httpd/httpd.conf

添加如下二行

   AddType application/x-httpd-php  .php
   AddType application/x-httpd-php-source  .phps

定位至DirectoryIndex index.html

修改为:

   DirectoryIndex  index.php  index.html

加载模块:

LoadModule proxy_module modules/mod_proxy.so
LoadModule proxy_fcgi_module modules/mod_proxy_fcgi.so

配置虚拟主机支持使用fcgi:

ProxyRequests Off

ProxyPassMatch ^/(.*\.php)$ fcgi://127.0.0.1:9000/PATH/TO/DOCUMENT_ROOT/$1

编译Xcache

# tar -xf xcache-3.1.0.tar.gz

# cd xcache-3.1.0

# ls

是不是没有configure脚本,要执行phpize程序检测一下,就可以configure了。

# /usr/local/php/bin/phpize

# ./configure --enable-xcache --with-php-config=/usr/local/php/bin/php-config
# make && make install

安装结束时,会出现类似如下行:

Installing shared extensions:     /usr/local/php/lib/php/extensions/no-debug-zts-20100525/

整合php和xcache:

# mkdir /etc/php.d
# cp xcache.ini /etc/php.d

# vim /etc/php.d/xcache.ini

extension =  /usr/local/php/lib/php/extensions/no-debug-zts-20100525/xcache.so

编译安装redis服务端

# tar -zxvf redis-2.8.9.rar.gz

# cd redis-2.8.9

这里直接make

# make

编译完成

# cd src

# make install

# mkdir /usr/local/redis/etc -pv  && mkdir /usr/local/redis/bin

# cp redis-benchmark redis-check-aof redis-check-dump redis-cli redis-sentinel  redis-server  mkreleasehdr.sh  /usr/local/redis/bin

# cp ../redis.conf  /usr/local/redis/etc/

# cd /usr/local/redis

# vim etc/redis.conf

现在可以启动redis了,启动成功后,程序会监听在6379端口。

# ./bin/redis-server etc/redis.conf

编译安装phpredis,方法与安装Xcache有点类似。

# tar -zxvf  phpredis-master.tar.gz

# cd phpredis-master

# /usr/local/php/bin/phpize

# ./configure --enable-redis  --with-php-config=/usr/local/php/bin/php-config
# make && make install

安装结束时,会出现类似如下行:

Installing shared extensions:     /usr/local/php/lib/php/extensions/no-debug-zts-20100525/

整合php和redis:

# vim /etc/php.d/redis.conf

extension =  /usr/local/php/lib/php/extensions/no-debug-zts-20100525/redis.so

然后重启php就可以识别到redis了。

Memcached 安装配置:

由于Memcached要依赖于libevent,所以先安装libevent。

安装libevent:

# tar -xf libevent-2.0.21-stable.tar.gz 

# cd libevent-2.0.21-stable

# ls
# ./configure  --prefix=/usr/local/libevent
# make && make install
# cd /usr/local/libevent
# ls

# ln -sv /usr/local/libevent/include/ /usr/include/libevent

# vim /etc/ld.so.conf.d/libevent.conf

# ldconfig

安装Memcached

# cp ~/Desktop/memcached-1.4.20.tar.gz  .

# tar -xf memcached-1.4.20.tar.gz 

# cd memcached-1.4.20

# ./configure --help
# ./configure --prefix=/usr/local/memcached --with-libevent=/usr/local/libevent/

# make && make install

# cd /usr/local/memcacheds

# ln -sv /usr/local/memcached/include/ /usr/include/memcached

# cd bin/
# ./memcached -h

使用 # ./memcached -d -u daemon  启动memcached

启动后,程序会监听在tcp11211端口和udp11211端口

 Memcached提供了为数不多的几个命令来完成与服务器端的交互,这些命令基于memcached协议实现。

存储类命令:set, add, replace, append, prepend

获取数据类命令:get, delete, incr/decr
统计类命令:stats, stats items, stats slabs, stats sizes
清空缓存: flush_all

set    设置一个缓存;

add    新增;

replace    替换;

append    在一个已有的缓存后面附加值;

prepend    在缓存前面加值;

get    获取数据;

delete    清除;

incr    在当前缓存的值加1;

decr    在当前缓存减去值;

stats    

stats items    查看缓存了多少数据;

stats slabs     查看slab占用情况;

stats sizes     查看空间的使用情况;

# telnet 127.0.0.1 11211

# starts

add keyname  flag  timeout  datasize

检测能不能设置缓存

用add命令也可以

安装memcache,php连接memcached驱动。

# tar -xf memcache-2.2.4.tgz

# cd memcache-2.2.4

# /usr/local/php-fpm/bin/phpize

检测完成之后,可以开始configure

# ./configure  --with-php-config=/usr/local/php-fpm/bin/php-config  --enable-memcache

# make && make install

安装完成!

整合进php

# vim /etc/php-fpm/php.d/memcache.ini

 写入:extension = /usr/local/php-fpm/lib/php/extensions/no-debug-non-zts-20121212/memcache.so

然后重启php-fpm

# /etc/init.d/php-fpm restart

再访问下phpinfo();

我们测试下Memcached:

建立一个虚拟主机,添加一个index.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('hellokey', 'Hello World', 0, 600) or die("Failed to save data at the memcached server");

echo "Store data in the cache (data will expire in 600 seconds)<br/>\n";

$get_result = $mem->get('hellokey');

echo "$get_result is from memcached server.";        
?>

我们再telnet登陆到memcached看看,也是有值的,看来数据确实缓存到memcached里面了。

使用memadmin,提供一个Web接口,管理和监控你的memcached。

下载地址:

过程很简单:

先解压程序,然后建一个虚拟主机,把程序移过去,再访问就出现如下页面:

默认账号密码:admin

 

今天就到这里了,有问题欢迎与我交流QQ:1183710107

转载地址:http://rorml.baihongyu.com/

你可能感兴趣的文章
2017年最佳开源网络监控工具
查看>>
彩虹表的概念
查看>>
苹果紧急发布新系统iOS 11.0.1 修复多种BUG
查看>>
输得太不光彩!Uber司机把算法当游戏
查看>>
亚信安全成为 “上海网络与信息安全监测预警平台” 首批发起单位
查看>>
构建基于容器的本机监控系统 应该注意什么?
查看>>
从CSE Asia 2016亚洲消费电子展看智能设备安全
查看>>
阿里CEO张勇:网络安全需要全生态协作
查看>>
科技改变未来 物联网痛下决心治电梯吃人
查看>>
在Azure中部署Kubernetes容器集群
查看>>
滨湖区胡埭建智能交通缓解交通压力
查看>>
《深度学习:Java语言实现》一一第2章 机器学习算法——为深度学习做准备
查看>>
坚持做创业护卫队的770天
查看>>
《ANSYS Workbench 14有限元分析自学手册》——导读
查看>>
OC之构造方法
查看>>
AppleWatch开发入门二——界面布局
查看>>
6个你必须用到AJAX的地方与6个不必用到的地方
查看>>
OpenExpressApp 框架结构(2)
查看>>
[总结]无线测试
查看>>
⑫云上场景:筋斗云,基于分布式云服务器的深度挖掘
查看>>