您的位置:首页 > 编程语言 > PHP开发

lamp之编译安装php及xcache

2015-05-23 20:18 417 查看
php:
0.安装相关扩展的rpm包和依赖
加密功能:
#tar -xf libmcrypt-xxx.tar.gz
#cd libmcrypt-xx
#./configure
#make && make install

支持大字符集:
#yum -y install php-mbstring 支持中文等字符

支持xml和压缩:
#yum -y install libxml2-devel bzip2-devel

1.解压安装包
#tar xf php.xxx.tar.bz2 php.xxx
#cd php.xxx

2.编译安装:
编译为httpd的模块:
#./configure --prefix=/usr/local/phpXX --with-config-file-path=/etc --with-config-file-scan-dir=/etc/php.d --with-mysql=/usr/local/mysql --with-mysqli=/usr/local/mysql/bin/mysql_config --with-apxs2=/usr/local/httpd/bin/apxs --with-openssl --enable-mbstring --with-freetype-dir --with-jpeg-dir --with-png-dir --with-zlib --with-libxml-dir=/usr/lib64 --enable-sockets --with-mcrypt --with-bz2 --enable-maintainer-zts
#make
#make install

编译为fpm模式:
将--with-apxs2=/usr/local/httpd/bin/apxs替换为
--enable-fpm
删除--enable-maintainer-zts

编译常见选项:
--prefix=/usr/local/php

--with-config-file-path=/etc 指定配置文件的文件夹

--with-config-file-scan-dir=/etc/php.d 指定配置文件夹片段目录

--with-mysql=/usr/local/mysql

--with-openssl 支持openssl功能

--with-mysqli=/usr/local/mysql/bin/mysql_config php和mysql交互的另一种接口,二进制程序mysql_config

--enable-mbstring 多字节string,支持中文等多字节,需要安装php-mbstring包。

--with-freetype-dir freetype字体引擎,引用特定字体

--with-jpeg-dir

--with-png-dir

--with-zlib 启用zlib压缩库支持

--with-libxml-dir=/usr/lib64 启用xml支持,并指定xml库文件位置,需要安装libxml2-devel包。

--enable-sockets 启动基于套接字的通信

--with-apxs2=/usr/local/httpd/bin/apxs 使用apsx将php编译为httpd的模块。

--with-mcrypt 启用额外的加密库,需要libmcrypt-devel

--with-config-file-path=/etc 指定php主配置文件存放的目录。配置文件为php.ini

--with-config-file-scan-dir=/etc/php.d php的配置片段位置。

--with-bz2 启动压缩库,需要安装相应的bzip2-devel包

--enable-maintainer-zts 若httpd以线程方式工作则需要此项。即MPM为profork则不需要启动次项。若为event或worker则需要此项支持。

3.提供配置文件
#cp php.ini-production /etc/php.ini

4.编辑httpd的配置文件,增加php的支持:
#vim /etc/httpd/httpd.conf
DirectoryIndex index.php index.html
AddType application/x-httpd-php .php
AddType application/x-httpd-php-source .phps php源码支持。

5.若php以fpm模式编译则需要执行:
1.给php-fpm提供Sysv风格脚本
#cp sapi/fpm/init.d.php.fpm /etc/rc.d/init.d/php-fpm
#chmod +x /etc/rc.d/init.d/php-fpm

2.为php-fpm提供配置文件
#cp /usr/local/php/etc/php-fpm.conf.default /usr/local/php/etc/php-fpm.conf

3.修改配置文件
#vim /usr/local/php/etc/php-fpm.conf
pm.max_children = 50 最大子进程数
pm.start_servers = 5 服务启动时的空闲进程数
pm.min_spare_servers = 2 最小空闲进程数
pm.max_spare_servers = 8 最大空闲进程数
pid = /usr/local/php/var/run/php-fpm.pid
指定pid文件位置,此项定义在服务脚本php-fpm中,2者保持一致即可。

启动php-fpm
#systemctl start php-fpm

验证:
#ps-aux|grep php-fpm
#netsta -tnlp|grep php-fmp

默认情况下fpm监听在9000端口。

Xcache
1.解压软件包:
#tar xf xcache.xxx.tar.gz xcache.xxx
#cd xcacahe.xxx

2.安装:
#/usr/local/php/bin/phpize 在当前目录运行phpize。phpize是在编译安装php扩展之前对其进行准备的程序。

#./configure \
--enable-xcache\ 启用xcache功能
--with-php-config=/usr/local/php/bin/php-config php-config是可以获得有关php配置和编译选项的信息的小脚本。

#make && make install

安装结束时,会出现类似如下行:
Installing shared extensions: /usr/local/php/lib/php/extensions/no-debug-[non]-zts-20100525/

3.将xcache配置文件样例的内容追加到php配置文件中
#cat xcache.ini >> /etc/php.ini

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

推荐使用第二种方法。

4.修改xcache.ini
#vim /etc/php.d/xcache.ini
zend_extension = /usr/local/php/lib/php/extensions/no-debug-zts-xxx/xcache.so

用刚才安装结束时生成的路径进行替换。

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

注意:如果将xcache.ini追加到php.ini文件中,有多条zend_extension指令行,要确保此新增的行排在第一位。

注意:若php以fpm方式编译,则不需要修改配置文件,直接重启php-fpm服务即可。

xcache.ini
[xcache.common]
zend_extension = /usr/local/php/lib/php/extensions/no-debug-zts-xxx/xcache.so
...
[xcache.admin]
...
[xcache]
xcache.shm_schem= "mmap" 指定在各php进程间共享内存的方式。mamp为内存映射,一段内存多个进程可以访问。
xcache.size=60M 缓存Opcode的大小。设置为0表示禁用此功能。

xcache.count=1 设置cpu个数
xcache.slots=8K 槽位设置,hash相关
xcache.ttl=0 缓存项目的过期时间,0表示永不过期,由xcache自行管理。
xcache.gc_intrval=0 垃圾回收器工作周期。0表示不扫描,其他数值单位是秒。
xcache.var_size=4M 变量缓存
xcache.var_count=1 缓存个数
xcache_var_slots=8K
xcache_var_ttl=0
xcache_var-maxttl=0
xcache.var_gc_intrval=300

xcache.cather=On xcache的缓存功能
xcache.stat=On
xcache.optimizer=Off xcache自身的优化器

xcache.test=Off
xcache.experimental=Off

本文出自 “小私的blog” 博客,请务必保留此出处http://ggvylf.blog.51cto.com/784661/1654513
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: