LAMP和LNMP加速与缓存优化

本文涉及的产品
云数据库 RDS MySQL,集群系列 2核4GB
推荐场景:
搭建个人博客
RDS MySQL Serverless 基础系列,0.5-2RCU 50GB
云数据库 RDS MySQL,高可用系列 2核4GB
简介:

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编译参数:

[root@web2 ~]# 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

编译完后查看:

[root@web2 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

最后查看安装上了没:

[root@mysql1 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

[root@mysql1 nginx-php-ext-soft]# tar xf PDO_MYSQL-1.0.2.tgz    

[root@mysql1 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

 本文转自  流颗星  51CTO博客,原文链接:http://blog.51cto.com/liukexing/1969457



相关文章
|
1天前
|
缓存 监控 测试技术
如何利用浏览器的缓存来优化网站性能?
【10月更文挑战第23天】通过以上多种方法合理利用浏览器缓存,可以显著提高网站的性能,减少网络请求,加快资源加载速度,提升用户的访问体验。同时,要根据网站的具体情况和资源的特点,不断优化和调整缓存策略,以适应不断变化的业务需求和用户访问模式。
28 7
|
4月前
|
缓存 安全 算法
Java面试题:如何通过JVM参数调整GC行为以优化应用性能?如何使用synchronized和volatile关键字解决并发问题?如何使用ConcurrentHashMap实现线程安全的缓存?
Java面试题:如何通过JVM参数调整GC行为以优化应用性能?如何使用synchronized和volatile关键字解决并发问题?如何使用ConcurrentHashMap实现线程安全的缓存?
41 0
|
24天前
|
缓存 JavaScript 前端开发
Vue 3的事件监听缓存如何优化性能?
【10月更文挑战第5天】随着前端应用复杂度的增加,性能优化变得至关重要。Vue 3 通过引入事件监听缓存等新特性提升了应用性能。本文通过具体示例介绍这一特性,解释其工作原理及如何利用它优化性能。与 Vue 2 相比,Vue 3 可在首次渲染时注册事件监听器并在后续渲染时重用,避免重复注册导致的资源浪费和潜在内存泄漏问题。通过使用 `watchEffect` 或 `watch` 监听状态变化并更新监听器,进一步提升应用性能。事件监听缓存有助于减少浏览器负担,特别在大型应用中效果显著,使应用更加流畅和响应迅速。
49 1
|
1月前
|
存储 缓存 监控
HTTP:强缓存优化实践
HTTP强缓存是提升网站性能的关键技术之一。通过精心设计缓存策略,不仅可以显著减少网络延迟,还能降低服务器负载,提升用户体验。实施上述最佳实践,结合持续的监控与调整,能够确保缓存机制高效且稳定地服务于网站性能优化目标。
43 3
|
2月前
|
缓存 JavaScript 中间件
优化Express.js应用程序性能:缓存策略、请求压缩和路由匹配
在开发Express.js应用时,采用合理的缓存策略、请求压缩及优化路由匹配可大幅提升性能。本文介绍如何利用`express.static`实现缓存、`compression`中间件压缩响应数据,并通过精确匹配、模块化路由及参数化路由提高路由处理效率,从而打造高效应用。
124 8
|
2月前
|
缓存 监控 负载均衡
在使用CDN时,如何配置缓存规则以优化性能
在使用CDN时,如何配置缓存规则以优化性能
|
2月前
|
缓存 NoSQL Java
瑞吉外卖项目笔记+踩坑2——缓存、读写分离优化
缓存菜品、套餐数据、mysql主从复制实现读写分离、前后端分离
瑞吉外卖项目笔记+踩坑2——缓存、读写分离优化
|
2月前
|
存储 缓存 前端开发
缓存技术在软件开发中的应用与优化策略
缓存技术在软件开发中的应用与优化策略
|
3月前
|
存储 缓存 算法
缓存优化利器:5分钟实现 LRU Cache,从原理到代码!
嗨,大家好!我是你们的技术小伙伴——小米。今天带大家深入了解并手写一个实用的LRU Cache(最近最少使用缓存)。LRU Cache是一种高效的数据淘汰策略,在内存有限的情况下特别有用。本文将从原理讲起,带你一步步用Java实现一个简单的LRU Cache,并探讨其在真实场景中的应用与优化方案,如线程安全、缓存持久化等。无论你是初学者还是有一定经验的开发者,都能从中受益。让我们一起动手,探索LRU Cache的魅力吧!别忘了点赞、转发和收藏哦~
63 2
|
3月前
|
存储 缓存 NoSQL
Redis 7.0如何优化缓存命中率?
优化Redis缓存命中率的关键策略包括:合理设计键值结构以节省内存并提高查找效率,如使用哈希表存储共享前缀的键;采用LRU算法淘汰不常用键,保持热门数据;优化查询模式,避免大键与大量小键,使用`SCAN`代替`KEYS`减少负载;为临时数据设置过期时间自动清理;监控性能并适时调整策略;利用不同数据类型的优势;使用Pipeline减少网络延迟;限制键扫描范围;优化Lua脚本执行效率;以及根据应用场景合理配置Redis参数。这些方法有助于提升Redis性能和缓存效率。