开发者社区> 科技小能手> 正文
阿里云
为了无法计算的价值
打开APP
阿里云APP内打开

项目实战:LAMP环境+Xcache+Redis,另附Memcached配置

简介:
+关注继续查看

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

        程序架构: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

wKioL1OhNCOxTmQJAAN7uIt9sgk477.jpg

接下来启动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

wKiom1OhOSzhCyUiAADmqGycxYA903.jpg

编译Xcache

# tar -xf xcache-3.1.0.tar.gz

# cd xcache-3.1.0

# ls

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

wKiom1OhOpCSRBS-AAFXdmgmp3k665.jpg

# /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

编译完成

wKioL1OhPZ7BXC8BAAEPeCnT67M220.jpg

# cd src

# make install

wKioL1OhPdPywk_AAADQFRpLhZk749.jpg

# 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

wKiom1OhQAfzYimeAAGgkEd0BMU341.jpg

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

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

wKioL1OhQNvBK2K3AAGd3Y9Vo9Q812.jpg

编译安装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

wKioL1OhYgyiWDN9AAYPplQdy7Y838.jpg

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

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

wKiom1OhZr7zWE3pAAQczOgfiS4826.jpg

 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

wKiom1Ohakry5XHAAAJ1uqqecUk077.jpg

add keyname  flag  timeout  datasize

检测能不能设置缓存

wKioL1OhalyBYYOuAABW_r5p5NA613.jpg

用add命令也可以

wKioL1Ohas6jTkWsAABaYAYoYI0454.jpg

安装memcache,php连接memcached驱动。

# tar -xf memcache-2.2.4.tgz

# cd memcache-2.2.4

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

wKioL1OhbA6i6WdnAAGH2YwW-WM043.jpg

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

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

# make && make install

安装完成!

wKioL1OhbKXzal_vAAJypkGL8xg621.jpg

整合进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();

wKioL1OhbcDjRNL-AAGdIH6hF18401.jpg

我们测试下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.";         
?>

wKiom1OiVVWBTsPuAAE-gMCW8Co684.jpg

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

wKiom1OiVdvgC01ZAACdm8qLAfA966.jpg

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

下载地址:http://www.junopen.com/memadmin/

过程很简单:

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

wKioL1OiXdrQn9LJAAGXeW_uHJ4809.jpg

默认账号密码:admin

wKiom1OiYqChlq4IAARlRzbMnLk220.jpg

 

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



本文转自qw87112 51CTO博客,原文链接:http://blog.51cto.com/tchuairen/1425053

版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。

相关文章
Redis在Linux环境下的详细安装教程
Redis在Linux环境下的详细安装教程
0 0
arm64 环境利用 docker 编译 redis filebeat airflow hue 以及 alertmanager 镜像
arm64 环境利用 docker 编译 redis filebeat airflow hue 以及 alertmanager 镜像
0 0
环境篇之 redis 的主从部署及测试|学习笔记
快速学习环境篇之 redis 的主从部署及测试
0 0
环境篇之 redis 的安装配置|学习笔记
快速学习环境篇之 redis 的安装配置
0 0
环境篇之 redis 的 linux 和 Windows 测试|学习笔记
快速学习环境篇之 redis 的 linux 和 Windows 测试
0 0
搭建 redis 环境 & amp 测试|学习笔记
快速学习搭建 redis 环境 & amp 测试
0 0
Centos7中搭建Redis环境
Centos7中搭建Redis环境
0 0
Windows环境下Redis安装与配置的两种方式
Windows环境下Redis安装与配置的两种方式
0 0
【Redis入门】在阿里云上快速安装 Redis
如果你最近打算学习 redis 并且买了阿里云的 Linux 服务器,那么借助阿里云服务器和宝塔Linux面板,只需要简单几步就可以安装好 redis。
0 0
文章
问答
文章排行榜
最热
最新
相关电子书
更多
阿里云Redis容灾体系介绍--夏周
立即下载
阿里云Redis服务助力游戏行业发展--王义成
立即下载
国内开发者与Redis开源社区的发展
立即下载