LAMP和LNMP加速与缓存优化

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了LAMP和LNMP加速与缓存优化相关的知识,希望对你有一定的参考价值。

LAMPLNMP的优化,两者php的优化差不多:

apache+php(libphp5.so)

nginx+php(fcgi php-fpm)

优化都是对应一个主配置文件php.ini

nginx php(fcgi php-fpm)有一个自己的配置文件php-fpm.conf

 

php web引擎缓存加速优化实战

php慢的瓶颈点有两点:1、解析需要时间 2、需要找后面mysql要,需要时间。

1.操作码缓存。。。将php引擎解析数据请求编译后的数据缓存起来。

 

 

php在高版本后可直接编译时加上异地mysql参数,然后php配置文件里指路径即可:

--with-mysql=mysqlnd \本地就不需要安装mysql软件包了。

 

DNS直接修改/etc/resolv.conf这个文件是没用的,只是暂时的,重启之后就会恢复原样,网络服务重启以后会根据/etc/sysconfig/network-scripts/ifcfg-eth0来重载配置,如果ifcfg-eth0没有配置DNS,那么resolv.conf会被冲掉,重新变成空值。

 

查看mysql编译参数:

[[email protected] ~]# grep CONFIGURE_LINE /application/mysql/bin/mysqlbug

CONFIGURE_LINE="./configure  ‘--prefix=/application/mysql5.1.72‘ ‘--with-unix-socket-path=/application/mysql5.1.72/tmp/mysql.sock‘ ‘--localstatedir=/application/mysql5.1.72/data‘ ‘--enable-thread-safe-client‘ ‘--with-mysqld-user=mysql‘ ‘--with-big-tables‘ ‘--without-debug‘ ‘--without-pthread‘ ‘--enable-assembler‘ ‘--with-extra-charsets=complex‘ ‘--with-readline‘ ‘--with-ssl‘ ‘--with-embedded-server‘ ‘--enable-local-infile‘ ‘--with-plugins=partition,innobase‘ ‘--with-mysqld-ldflags=-all-static‘ ‘--with-client-ldflags=-all-static‘"

`test -n "$CONFIGURE_LINE"  && echo "Configure command: $CONFIGURE_LINE"`

 

查看apache编译参数:/application/apache/bin/apachectl -V

查看php编译参数:

/application/php/bin/php -i|grep configure

Configure Command =>  ‘./configure‘  ‘--prefix=/application/php5.3.27‘ ‘--with-apxs2=/application/apache/bin/apxs‘ ‘--with-mysql=/application/mysql‘ ‘--with-xmlrpc‘ ‘--with-openssl‘ ‘--with-zlib‘ ‘--with-freetype-dir‘ ‘--with-gd‘ ‘--with-jpeg-dir‘ ‘--with-png-dir‘ ‘--with-iconv=/usr/local/libiconv‘ ‘--enable-short-tags‘ ‘--enable-sockets‘ ‘--enable-zend-multibyte‘ ‘--enable-soap‘ ‘--enable-mbstring‘ ‘--enable-static‘ ‘--enable-gd-native-ttf‘ ‘--with-curl‘ ‘--with-xsl‘ ‘--enable-ftp‘ ‘--with-libxml-dir‘

PHP Warning:  Unknown: It is not safe to rely on the system‘s timezone settings. You are *required* to use the date.timezone setting or the date_default_timezone_set() function. In case you used any of those methods and you are still getting this warning, you most likely misspelled the timezone identifier. We selected ‘Asia/Chongqing‘ for ‘CST/8.0/no DST‘ instead in Unknown on line 0

 

字符集会影响正则表达式的匹配:

echo export LC_ALL-C>>/etc/profile

source /etc/profile

由于php加速器大多是perl语言写的,所以要安装以下内容:

yum install perl-CPAN -y

yum install perl-devel -y

 

eaccelerator:优点,PHP加速、优化、和动态内容缓存的扩展模块,缺点,快倒闭,开发不活跃了。可提高php效率10倍。

XCache:跟eaccelerator一样,安装时21,效率比eaccelerator高,开发更活跃。

上传nginx-php-ext-soft.zip到服务器,然后unzip解压。upzip -o是覆盖解压,脚本时可利用上,但要注意非常危险,直接覆盖不提示。

 tar jxf eaccelerator-0.9.6.tar.bz2

 cd eaccelerator-0.9.6

/application/php/bin/phpize php里安装第三方程序都要执行此条命令,扩展php模块的,所有插件都要执行它。

./configure --enable-eaccelerator=shared --with-php-config=/application/php/bin/php-config

make&&make install

编译完后查看:

[[email protected] nginx-php-ext-soft]# ls /application/php5.3.27/lib/php/extensions/no-debug-zts-20090626/

eaccelerator.so   ----代表编译成功

 

 

安装xchache

/application/php/bin/phpize

解压软件进入目录

./configure --enable-xcache --with-php-config=/application/php/bin/php-config

make&&make install

最后查看安装上了没:

[[email protected] xcache-1.3.2]# ls /application/php5.3.27/lib/php/extensions/no-debug-non-zts-20090626/ 这个路径跟apache里的不一样,注意。

 

PHP缓存加速器软件种类

xcache,eaccelerator,Zend(只支持php5.2,开发慢),apc

如何选择:

建议xcacheeaccelerator,二选一,首选xcache,更快开发更活跃。

 

Memcache分为服务端软件和客户端插件两部分:

服务端软件的名字为:memcached-1.4.3.tar.gz

客户端软件的名字为:memcache-2.2.5.tgz,本文就是客户端插件在php服务中的安装。

 

tar xf  memcache-2.2.5.tgz  

cd memcache-2.2.5

/application/php/bin/phpize

./configure  --with-php-config=/application/php/bin/php-config

make&&make install

 

安装PDO_MYSQL它是数据库的一个辅助工具,非必选。

tar PDO_MYSQL-1.0.2.tgz

[[email protected] nginx-php-ext-soft]# tar xf PDO_MYSQL-1.0.2.tgz    

[[email protected]l1 nginx-php-ext-soft]# cd PDO_MYSQL-1.0.2

/application/php/bin/phpize

./configure  --with-php-config=/application/php/bin/php-config --with-pdo-mysql=/application/mysql&&

make&&make install

ls /application/php5.3.27/lib/php/extensions/no-debug-non-zts-20090626/

 

ImageMagick图像处理软件,可将大图处理成缩略图,它不是扩展包,不用/application/php/bin/phpize来处理。

tar xf ImageMagick.tar.gz

cd ImageMagick-6.5.1-2/

./configure &&

make&&make install

 

再安装imagick-2.3.0.tgz,只有将上面的ImageMagick装了后才能装它,它们有先后顺序的。因为imagick-2.3.0.tgz需要调用到上面的ImageMagick

 tar xf imagick-2.3.0.tgz

cd imagick-2.3.0

/application/php/bin/phpize

./configure  --with-php-config=/application/php/bin/php-config &&

make&&make install

 


以上是关于LAMP和LNMP加速与缓存优化的主要内容,如果未能解决你的问题,请参考以下文章

LAMP和LNMP环境PHP缓存加速器的原理

PHP缓存加速优化

LAMP和LNMP深度优化

Web架构深度优化实战(LNMP与LAMP)

LAMP与LNMP web架构深度优化实战-第二部

Lnmp下PHP开启Opcache缓存,PHP开启缓存优化方法