nginx+php-FastCGI+mysql性能测试

本文涉及的产品
RDS MySQL Serverless 基础系列,0.5-2RCU 50GB
云数据库 RDS MySQL,集群系列 2核4GB
推荐场景:
搭建个人博客
云数据库 RDS PostgreSQL,集群系列 2核4GB
简介:
 
照着张宴的那篇经典的nginx配置文章做的,主要是记录一下自己步骤和测试。
 
准备系统和软件就不写了。
 
一、安装PHP 5.2.8(FastCGI模式)
1、编译安装PHP 5.2.8所需的支持库:
与原文相同。
2、rpm安装msyql
3、编译安装PHP 5.2.8(FastCGI模式)
原来的改成:#./configure --prefix=/usr/local/php --with-config-file-path=/etc/php --with-mysql=/usr/lib/mysql --with-mysqli=/usr/bin/mysql_config --with-iconv-dir=/usr/local --with-freetype-dir --with-jpeg-dir --with-png-dir --with-zlib --with-libxml-dir=/usr --enable-xml --disable-rpath --enable-discard-path --enable-safe-mode --enable-bcmath --enable-shmop --enable-sysvsem --enable-inline-optimization --with-curl --with-curlwrappers --enable-mbregex --enable-fastcgi --enable-fpm --enable-force-cgi-redirect --enable-mbstring --with-mcrypt --with-gd --enable-gd-native-ttf --with-openssl --with-mhash --enable-pcntl --enable-sockets
修改的内容为:#./configure --prefix=/usr/local/php --with-config-file-path=/etc/php --with-mysql=/usr/lib/mysql --with-mysqli=/usr/bin/mysql_config
注意缺少东西时:
#rpm -ivh libjpeg-devel…….rpm
#rpm -ivh libpng-devel…….rpm
#yum install freetype-devel
配置文件位置改为:/etc/php
#mkdir /etc/php -p
#cp php.ini-dist /etc/php/php.ini
4、编译安装PHP5扩展模块
#tar zxf memcache-2.2.4.tgz
#cd memcache-2.2.4/
#/usr/local/php/bin/phpize 注意缺少东西时:#rpm -ivh imake #rpm -ivh autoconf
#./configure --with-php-config=/usr/local/php/bin/php-config
#make
#make install
#cd ../
#tar jxf eaccelerator-0.9.5.3.tar.bz2
#cd eaccelerator-0.9.5.3
#/usr/local/php/bin/phpize
#./configure --enable-eaccelerator=shared --with-php-config=/usr/local/php/bin/php-config
#make
#make install
#cd ../
#tar zxf PDO_MYSQL-1.0.2.tgz
#cd PDO_MYSQL-1.0.2
#/usr/local/php/bin/phpize
#./configure --with-php-config=/usr/local/php/bin/php-config --with-pdo-mysql 注意这里没有制定目录。
#make
#make install
#cd ../
5、修改php.ini文件
手工修改:查找/usr/local/webserver/php/etc/php.ini中的extension_dir = "./"
修改为extension_dir = "/usr/local/php/lib/php/extensions/no-debug-non-zts-20060613"
并在此行后增加以下几行,然后保存:
extension = "memcache.so"
extension = "pdo_mysql.so"
再查找output_buffering = Off
修改为output_buffering = .
6、配置eAccelerator加速PHP:
#mkdir -p /mnt/eaccelerator_cache
#vi /etc/php/php.ini 用shift+g到文件尾,添加:
[eaccelerator]
zend_extension="/usr/local/php/lib/php/extensions/no-debug-non-zts-20060613/eaccelerator.so"
eaccelerator.shm_size="64" (由于是虚拟机所以调小了)
eaccelerator.cache_dir="/mnt/eaccelerator_cache"
eaccelerator.enable="1"
eaccelerator.optimizer="1"
eaccelerator.check_mtime="1"
eaccelerator.debug="0"
eaccelerator.filter=""
eaccelerator.shm_max="0"
eaccelerator.shm_ttl="300"
eaccelerator.shm_prune_period="120"
eaccelerator.shm_only="0"
eaccelerator.compress="1"
eaccelerator.compress_level="9"
其他与原文相同。
7、修改/usr/local/php/etc/php-fpm.conf:
主要修改pid和log文件位置、max_children、rlimit_files、display_errors等以适应虚拟机内存大小。
8、启动php-cgi进程,监听127.0.0.1的9000端口,由于是虚拟机所以调小了max_children,所以现在启动了32个进程,用户为apache。
#ulimit -SHn 51200 ulimit是控制shell启动进程所占用的资源的命令,这里没有使用;还是出于实验环境是虚拟机的原因。
#/usr/local/php/sbin/php-fpm start
9、本来apache的,结果到这时才发现apache+FastCGI不是简单的加入下面的这几行就可以的。
FastCgiServer /usr/local/bin/php
AddHandler php-fastcgi .php
Action php-fastcgi /php-cgi/php
AddType application/x-httpd-php .php
apache说FastCgiServer是错误命令。
改成测试Nginx+FastCGI的速度。
二、安装Nginx 0.7.31
1、安装Nginx所需的pcre库:
与原文相同。
2、安装Nginx:
tar zxf nginx-0.7.31.tar.gz
cd nginx-0.7.31/
./configure --user=www --group=www --prefix=/usr/local/nginx --with-http_stub_status_module --with-http_ssl_module
make && make install
cd ../
3、创建Nginx日志目录
#mkdir /var/log/nginx -p
#chmod +w /var/log/nginx
#chown -R www:www /var/log/nginx
4、创建Nginx配置文件
除目录不同外其他与原文相同。
5、启动并配置自动启动
#vi /etc/rc.local 加入下面两行
/usr/local/php/sbin/php-fpm start
/usr/local/nginx/sbin/nginx
三、测试
1、准备phpspeed
#unzip phpspeed_v1_beta3.zip
#mv phpspeed /var/www/html
#cd phpspeed
#vi phpspeed/config_db.php
修改登陆phpspeed的用户名密码、登陆mysql的用户名密码。
config_db.php中有两组用户名密码,一组登陆phpspeed软件、一组phpspeed用于登陆数据库。
2、安装phpspeed
打开ie输入 [url]http://www.domain.com/phpspeed[/url]
按照提示安装数据库、添加数据库表。
3、使用phpspeed进行测试
安装数据库、添加数据库表完成后重新输入 [url]http://www.domain.com/phpspeed[/url]会看到类似论坛的页面。
右上角输入用户名密码(在config_db.php中配置的那个)登陆phpspeed。
使用方法看到界面不用说就会了。
4、使用tuning-primer.sh进行测试
运行tuning-primer.sh脚本,运行完成后会给出建议。
我发现我的机器没有配置query_cache_size
配置成4MB后再用phpspeed测试时,有一个指标提高了2-3倍。









本文转自 sharkyan 51CTO博客,原文链接:http://blog.51cto.com/sharkyan/127686,如需转载请自行联系原作者
目录
相关文章
|
20天前
|
应用服务中间件 PHP nginx
今日小结通过aliyun的本地容器镜像部署我的nginx和php环境
简介: 本教程介绍如何基于 Dragonwell 的 Ubuntu 镜像创建一个运行 Nginx 的 Docker 容器。首先从阿里云容器镜像服务拉取基础镜像,然后编写 Dockerfile 确保 Nginx 作为主进程运行,并暴露 80 端口。最后,在包含 Dockerfile 的目录下构建自定义镜像并启动容器,确保 Nginx 在前台运行,避免容器启动后立即退出。通过 `docker build` 和 `docker run` 命令完成整个流程。
95 24
今日小结通过aliyun的本地容器镜像部署我的nginx和php环境
|
13天前
|
关系型数据库 MySQL 网络安全
如何排查和解决PHP连接数据库MYSQL失败写锁的问题
通过本文的介绍,您可以系统地了解如何排查和解决PHP连接MySQL数据库失败及写锁问题。通过检查配置、确保服务启动、调整防火墙设置和用户权限,以及识别和解决长时间运行的事务和死锁问题,可以有效地保障应用的稳定运行。
67 25
|
3月前
|
前端开发 关系型数据库 MySQL
PHP与MySQL动态网站开发实战指南####
【10月更文挑战第21天】 本文将深入浅出地探讨如何使用PHP与MySQL构建一个动态网站,从环境搭建到项目部署,全程实战演示。无论你是编程新手还是希望巩固Web开发技能的老手,都能在这篇文章中找到实用的技巧和启发。我们将一起探索如何通过PHP处理用户请求,利用MySQL存储数据,并最终呈现动态内容给用户,打造属于自己的在线平台。 ####
131 0
|
7天前
|
应用服务中间件 PHP nginx
当你的nginx服务器和php服务器不在一起的时候,这个nginx 的root目录问题
两个服务器的网站代码目录需要对齐,docker容器里面也是一样
|
2月前
|
存储 关系型数据库 MySQL
PHP与MySQL动态网站开发:从基础到实践####
本文将深入探讨PHP与MySQL的结合使用,展示如何构建一个动态网站。通过一系列实例和代码片段,我们将逐步了解数据库连接、数据操作、用户输入处理及安全防护等关键技术点。无论您是初学者还是有经验的开发者,都能从中获益匪浅。 ####
|
3月前
|
安全 关系型数据库 MySQL
PHP与MySQL动态网站开发实战指南####
——深入探索LAMP栈下的高效数据交互与处理技巧 ####
|
3月前
|
关系型数据库 MySQL PHP
PHP与MySQL动态网站开发实战指南####
深入探索PHP与MySQL的协同工作机制,本文旨在通过一系列实战案例,揭示构建高效、稳定且用户友好的动态网站的秘诀。从环境搭建到数据交互,再到最佳实践分享,本文为开发者提供了一条清晰的学习路径,助力其在LAMP(Linux, Apache, MySQL, PHP/Perl/Python)栈上实现技术飞跃。 ####
|
2月前
|
关系型数据库 MySQL PHP
php实现一个简单的MySQL分页
通过本文的详细步骤和代码示例,我们实现了一个简单的PHP MySQL分页功能。主要步骤包括计算总记录数、设置分页参数、查询当前页的数据以及生成分页链接。这种分页方式适用于大多数Web应用,能够有效提升用户体验和页面响应速度。
78 4
|
3月前
|
关系型数据库 MySQL PHP
PHP与MySQL的无缝集成:构建动态网站的艺术####
本文将深入探讨PHP与MySQL如何携手合作,为开发者提供一套强大的工具集,以构建高效、动态且用户友好的网站。不同于传统的摘要概述,本文将以一个生动的案例引入,逐步揭示两者结合的魅力所在,最终展示如何通过简单几步实现数据驱动的Web应用开发。 ####
|
3月前
|
SQL 关系型数据库 MySQL
PHP与MySQL的高效协同开发策略####
本文深入探讨了PHP与MySQL在Web开发中的协同工作机制,通过优化配置、最佳实践和高级技巧,展示了如何提升数据库交互性能,确保数据安全,并促进代码可维护性。我们将从环境搭建讲起,逐步深入到查询优化、事务管理、安全防护及性能调优等核心环节,为开发者提供一套实战驱动的解决方案框架。 ####

热门文章

最新文章

  • 1
    小鱼深度评测 | 通义灵码2.0,不仅可跨语言编码,自动生成单元测试,更炸裂的是集成DeepSeek模型且免费使用,太炸裂了。
  • 2
    3天功能开发→3小时:通义灵码2.0+DEEPSEEK实测报告,单元测试生成准确率92%的秘密
  • 3
    Potpie.ai:比Copilot更狠!这个AI直接接管项目代码,自动Debug+测试+开发全搞定
  • 4
    基于FPGA的图像双线性插值算法verilog实现,包括tb测试文件和MATLAB辅助验证
  • 5
    【01】噩梦终结flutter配安卓android鸿蒙harmonyOS 以及next调试环境配鸿蒙和ios真机调试环境-flutter项目安卓环境配置-gradle-agp-ndkVersion模拟器运行真机测试环境-本地环境搭建-如何快速搭建android本地运行环境-优雅草卓伊凡-很多人在这步就被难倒了
  • 6
    大前端之前端开发接口测试工具postman的使用方法-简单get接口请求测试的使用方法-简单教学一看就会-以实际例子来说明-优雅草卓伊凡
  • 7
    「ximagine」业余爱好者的非专业显示器测试流程规范,同时也是本账号输出内容的数据来源!如何测试显示器?荒岛整理总结出多种测试方法和注意事项,以及粗浅的原理解析!
  • 8
    用户说 | 通义灵码2.0,跨语言编码+自动生成单元测试+集成DeepSeek模型且免费使用
  • 9
    以项目登录接口为例-大前端之开发postman请求接口带token的请求测试-前端开发必学之一-如果要学会联调接口而不是纯写静态前端页面-这个是必学-本文以优雅草蜻蜓Q系统API为实践来演示我们如何带token请求接口-优雅草卓伊凡
  • 10
    AxBench:斯坦福大学推出评估语言模型控制方法的基准测试框架