LAMP和LNMP的优化,两者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一样,安装时2选1,效率比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
如何选择:
建议xcache,eaccelerator,二选一,首选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] 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