自从前不久在电信通机房放置了一台新服务器之后,我就开始尝试完全用nginx来部署http服务。
nginx与php有两种主流的配合方式,spawn-fcgi和php-fpm。
spawn-fcgi完全独立运行,可以和各种cgi语言配合; php-fpm专为php而设计,需要对php打补丁。
性能上php-fpm略占上风,功能上php-fpm也略强一些,毕竟它是专门为php而生的嘛。可惜还没有进入php-fpm在10.04的ubuntu官方源,而spawn-fcgi直接通过apt-get就可以安装。
所以之前我采用了nginx+spawn-fcgi+php-cgi的方式,具体方法参考:
http://forum.ubuntu.org.cn/viewtopic.php?f=54&t=241301
前两天惊喜地发现php5-fpm已经进入了php 5.3.3官方的组件库,也就是说以后不需要再对php打补丁,直接安装php-fpm就可以用了。
顺藤摸瓜,我进而发现在还在内测的ubuntu10.10的源中,php已经升级到了5.3.3,并有php5-fpm这个软件包可以直接apt-get 安装了。
可惜生产环境中的几台服务器,装的都是10.04,官方源的php版本最新只到5.3.2,也没有php5-fpm这个软件包。
搜索了一番发现,php5-fpm有非官方源可以用,于是我就能完全通过apt-get安装nginx+php5-fpm了,下面介绍一下完整的安装过程(基于ubuntu 10.04)
0.确认系统中80端口和9000端口没有被占用,如果已经安装了apache和spawn-fcgi的话要先卸载
1.编辑sources.list,添加nginx和php5-fpm的非官方源
deb http://ppa.launchpad.net/jdub/devel/ubuntu maverick main
deb http://ppa.launchpad.net/brianmercer/php/ubuntu lucid main
deb-src http://ppa.launchpad.net/brianmercer/php/ubuntu lucid main
2.更新源的软件包数据,会发现这两个非官方源需要key,不管它,不影响正常使用
sudo apt-get update
3.安装nginx, php5-fpm, php5-cgi。并根据自己需要安装其他php组件
sudo apt-get install nginx php5-fpm
sudo apt-get install php-apc php5-curl php5-gd php5-imagick php5-mysql php5-memcache php5-memcached php5-mcrypt
4.配置nginx
sudo vi /etc/nginx/sites-available/default
贴一下我的nginx主机配置:
server {
listen 80; ## listen for ipv4
listen [::]:80 default ipv6only=on; ## listen for ipv6
server_name localhost;
root /var/www;
index index.php index.html index.htm;
expires 14d;
#access_log /var/log/nginx/localhost.access.log;
location ~ \.php$ {
fastcgi_pass 127.0.0.1:9000;
fastcgi_index index.php;
fastcgi_param APPLICATION_ENV production;
include fcgi.conf;
expires off;
}
}
fcgi.conf:
fastcgi_param GATEWAY_INTERFACE CGI/1.1;
fastcgi_param SERVER_SOFTWARE nginx;
fastcgi_param QUERY_STRING $query_string;
fastcgi_param REQUEST_METHOD $request_method;
fastcgi_param CONTENT_TYPE $content_type;
fastcgi_param CONTENT_LENGTH $content_length;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
fastcgi_param SCRIPT_NAME $fastcgi_script_name;
fastcgi_param REQUEST_URI $request_uri;
fastcgi_param DOCUMENT_URI $document_uri;
fastcgi_param DOCUMENT_ROOT $document_root;
fastcgi_param SERVER_PROTOCOL $server_protocol;
fastcgi_param REMOTE_ADDR $remote_addr;
fastcgi_param REMOTE_PORT $remote_port;
fastcgi_param SERVER_ADDR $server_addr;
fastcgi_param SERVER_PORT $server_port;
fastcgi_param SERVER_NAME $server_name;
# PHP only, required if PHP was built with –enable-force-cgi-redirect
fastcgi_param REDIRECT_STATUS 200;
5. 配置完成之后nginx重新载入配置:
sudo apt-get /etc/init.d/nginx reload
如果修改/etc/php5/fpm/php.ini中的配置,则需要重启php5-fpm:
sudo apt-get /etc/init.d/php5-fpm restart
到这里就大功告成了!测试后果然性能出众,远超apache+mod_php。而且这种nginx的转发模式,非常适合把nginx的前端和php5-fpm分开部署到不同的两台独立服务器上。
参考文献:
http://blog.163.com/dai-666600/blog/static/10439703620106217563353/
http://www.boxedthrills.com/2010/07/14/ubuntu-server-10-04-lts-nginx-php-mysql/
---------------
原文链接:http://shen2.cn/tag/php5-fpm/
---------------
分享到:
相关推荐
php-fpm。放到/etc/init.d/目录。然后执行:chmod a+x php-fpm 然后就可以/etc/init.d/php-fpm start 或者systemctl start php-fpm
nginx+php-fpm解决502 Bad Gateway.zip
在友善之臂NanoPC-T2上安装nginx服务器和php5-fpm的deb安装包及其所依赖的安装包。
docker-compose php7.3.4-fpm+nginx+mysql配置
Nginx + PHP-FPM + APC=绝妙的组合 Nginx + PHP-FPM + APC=绝妙的组合 Nginx + PHP-FPM + APC=绝妙的组合 Nginx + PHP-FPM + APC=绝妙的组合
ffmpeg+nginx+nginx-rtmp-module搭建个人直播平台。 使用说明(ffmpeg+nginx+rtmp-module已经整合,支持HTTP,具体配置查看conf/nginx.conf): 1.解压后,运行nginx_start.bat。(查看监控状态 ...
解决nginx+php-fpm无法上传文件问题.docx
centos5.2 源码安装nginx+php-fpm+http push,演示http push 功能,测试通过
这是一个带有Nginx,PHP5-FPM和Ubuntu 14.04的简单容器。 要从Docker Hub中提取此映像: docker pull vutran/docker-nginx-php5-fpm 要运行此图像的实例: docker run --name mywebapp -d -P vutran/docker-...
Vagrantfile for Ubuntu + Nginx + PHP5-FPM + Redis + Mysql +Magento + 可选的 Magento 示例数据 域名: 项目文件夹:/var/www/project 数据库名称:project_name 数据库用户:project_user 数据库通行证:...
nginx服务与php-fpm优化技巧详解,包括内存参数设置,超时参数设置等。
ppa安装php-fpm安装工具包复制代码 代码如下:$ sudo ...get install php5-fpm其它必要的软件安装接复制代码 代码如下:sudo apt-get install nginx配置php-fpmphp-fpm的解析器是C/S结构,它的配置文件位于:(1)/et
Nginx+PHP-FPM+APC=绝妙的组合.pdf
ubuntu12.04安装Nginx+PHP5(PHP-FPM)+MySQL主机详解.pdf
nginx + nginx-http-flv-module-1.2.9
Windows 下使用 RunHiddenConsole 启动 nginx、php-fpm, https://www.nginx.com/resources/wiki/start/topics/examples/phpfastcgionwindows/
Ubuntu上的Nginx PHP5 FPM重新启动修复 stop: Unknown instance:运行服务php5-fpm后重新启动? 正常。 该脚本解决了Ubuntu-Nginx服务php5-fpm重新启动的问题。 这是一个已知的错误,已重新出现。 如果您运行tail -f ...
你值得拥有的XMind资源其中包括CentOS安装所需要的服务以及在服务器上安装分区要求等...+Nginx在服务器上的部署+PHP的部署