首页 > 代码库 > ubuntu下搭建nginx+mysql+php-fpm站点

ubuntu下搭建nginx+mysql+php-fpm站点

概述

Nginx ("engine x") 是一个高性能的 HTTP 和 反向代理 服务器,也是一个 IMAP/POP3/SMTP 代理服务器。  nginx的优势在于能以低内存高效率处理静态页面大量请求。

可以参考下:三大WEB服务器对比分析(apache ,lighttpd,nginx)

PHP-FPM是为PHP内核编写的补丁,用来根据需要处理FastCGI进程的启动,停止以及重启。有点在于:

  1. 较低的内存占用率(因为nginx单独运行时不用加载整个PHP环境)。
  2. 轻松地管理用户权限( 因为PHP可以在你的服务器进程中管理不同的用户)。
  3. 当PHP崩溃时,nginx可以照常运行。

nginx+php-fpm 能比apache+php_mod的方式使用更少内存,承载跟高负载。

安装

1.nginx的安装

wget http://nginx.org/keys/nginx_signing.key
apt-key add nginx_signing.key

echo "deb http://nginx.org/packages/ubuntu/ trusty nginx" >> /etc/apt/sources.list

echo "deb-src http://nginx.org/packages/ubuntu/ trusty nginx" >> /etc/apt/sources.list
根据ubuntu的版本不同 trusty 要替换成其他的
apt-get update
apt-get install nginx

如有问题请参考官网文档:nginx安装方法

安装过程遇到一个问题  

chown: invalid group: ‘nginx:adm’  ,表示没有组adm,groupadd adm后重新apt-get install nginx

 

 2.php-fpm的安装

apt-get install php5-fpm

 netstat -anop  

 表示安装的nginx和php-fpm都已启动

 

3.修改nginx和php-fpm配置

参考张宴大牛写的  Nginx 0.8.x + PHP 5.2.13(FastCGI)搭建胜过Apache十倍的Web服务器(第6版)

修改配置后重启php-fpm和nginx

service php5-fpm reload

service nginx reload

 

service php5-fpm reload 失败 ,于是我 ps -aux | grep php 找到php5-fpm进程号,杀掉,然后service php5-fpm start重启fpm

 

 修改nginx配置后,重启报错

nginx: [warn] the "log_format" directive may be used only on "http" level in /etc/nginx/nginx.conf:84

"log_format" 放错了位置 不应该放在server节点 ,应该放在http节点,调整后重启好了

 

4.mysql的安装

类似nginx和php5-fpm,过程比较顺利,不多讲

 部署博客

下载onethink源码包

wget http://down.thinkphp.cn/onethink.php?key=MTQwMzc1ODU3OLvbf3yWZZmryHtsnb6p3Nuuo3PZsaRp3LKcY6uypa2nrcusoIKGf6LAiIGhst2qmrqQiMmxym6bxot0nbF8gKfGz4tnlXmhq8dla62wzafLro2D2LDLet6xoaOkyHx_pK3Pe66Xea2mv2Z5ZcW6ntq5fGuXxLl6zr2EcHE

mv onethink.php?*  onethink.zip

unzip onethink.zip

cp -R wwwroot/*  /var/www/html

访问 http://hostname/install.php 按步骤提示部署好博客

压力测试

服务器配置大致情况 digitalocean的vps,512M内存,压力测试表明800并发下每分钟能处理1888个请求,30个请求会失败

同时查看服务器内存及cpu消耗情况,还ok

 命令参考:

  • 知道安装包名称,查看安装后的文件

          dpkg -L <package>

  • 想知道某些安装包信息

          dpkg -l package-name-pattern
          比如想知道php相关的软件
          dpkg -l php*

  • 想知道文件是属于哪个安装包的

         dpkg -S filename-search-pattern

  • 想知道某具体安装包是否安装

         dpkg -s <package>

 参考阅读:

 

  • 三大WEB服务器对比分析(apache ,lighttpd,nginx)
  • Nginx 0.8.x + PHP 5.2.13(FastCGI)搭建胜过Apache十倍的Web服务器(第6版)[原创]
  • Select和epoll的区别
  • nginx 防御ab,webbench,jmeter攻击