nginx 的 php 开发环境部署
2016-08-12 21:28
218 查看
今天来做一下 nginx 的分享
gcc-c++
libtool
gzip 模块需要 zlib 库
rewrite 模块需要 pcre 库
ssl 功能需要 openssl 库
安装依赖
直接用 yum 安装就行了,不用自己编译,节省很多时间,也避免了一些不必要的错误
下面依赖,根据实际情况自己安装需要的
权限不够的话自己想办法。。sudo 一下
–conf-path=PATH: 设置nginx.conf配置文件的路径。nginx允许使用不同的配置文件启动,通过命令行中的-c选项。默认为prefix/conf/nginx.conf
–user=name: 设置nginx工作进程的用户。安装完成后,可以随时在nginx.conf配置文件更改user指令。默认的用户名是nobody。–group=name类似
–with-http_ssl_module: 使用https协议模块。默认情况下,该模块没有被构建。前提是openssl与openssl-devel已安装
–with-http_stub_status_module: 用来监控 Nginx 的当前状态
–with-http_gzip_static_module: 是针对 nginx serve 的静态文件,需要编译进去才能有
–with-http_realip_module: 通过这个模块允许我们改变客户端请求头中客户端IP地址值(例如X-Real-IP 或 X-Forwarded-For),意义在于能够使得后台服务器记录原始客户端的IP地址
–with-pcre: 设置PCRE库的源码路径,如果已通过yum方式安装,使用–with-pcre自动找到库文件。使用–with-pcre=PATH时,需要从PCRE网站下载pcre库的源码(版本4.4 - 8.30)并解压,剩下的就交给Nginx的./configure和make来完成。perl正则表达式使用在location指令和 ngx_http_rewrite_module模块中。
–with-zlib=PATH: 指定 zlib(版本1.1.3 - 1.2.5)的源码解压目录。在默认就启用的网络传输压缩模块ngx_http_gzip_module时需要使用zlib 。
–add-module=PATH: 添加第三方外部模块,如nginx-sticky-module-ng或缓存模块。每次添加新的模块都要重新编译(Tengine可以在新加入module时无需重新编译)
直接使用自带的
如果没有,那重新编译
查看原本的编译信息
加上
配置
nginx 整合 php-fpm
nginx 配置文件主要分成四部分:
main:(全局设置)其他部分的会继承自 main
server:(主机设置)主要用于指定虚拟主机域名、IP 和端口
location:(URL 路由)用于匹配路由信息
upstream:(主要为反向代理、负载均衡相关配置)upstream 主要用于设置一系列的后端服务器,设置反向代理及后端服务器的负载均衡
server 继承 main,location 继承 server
upstream 既不会继承指令也不会被继承,它有自己的特殊指令
我的配置
准备工作
首先是编译需要的一些东西gcc-c++
libtool
gzip 模块需要 zlib 库
rewrite 模块需要 pcre 库
ssl 功能需要 openssl 库
安装依赖
直接用 yum 安装就行了,不用自己编译,节省很多时间,也避免了一些不必要的错误
下面依赖,根据实际情况自己安装需要的
yum -y install gcc gcc-c++ make libtool zlib zlib-devel openssl openssl-devel pcre pcre-devel
编译安装
然后编译安装./configure --prefix=/usr/local/nginx \ --with-http_stub_status_module \ --with-http_ssl_module \ --with-http_gzip_static_module \ --with-http_realip_module \ make make install
权限不够的话自己想办法。。sudo 一下
常用编译选项
–prefix=PATH: 指定nginx的安装目录。默认 /usr/local/nginx–conf-path=PATH: 设置nginx.conf配置文件的路径。nginx允许使用不同的配置文件启动,通过命令行中的-c选项。默认为prefix/conf/nginx.conf
–user=name: 设置nginx工作进程的用户。安装完成后,可以随时在nginx.conf配置文件更改user指令。默认的用户名是nobody。–group=name类似
–with-http_ssl_module: 使用https协议模块。默认情况下,该模块没有被构建。前提是openssl与openssl-devel已安装
–with-http_stub_status_module: 用来监控 Nginx 的当前状态
–with-http_gzip_static_module: 是针对 nginx serve 的静态文件,需要编译进去才能有
–with-http_realip_module: 通过这个模块允许我们改变客户端请求头中客户端IP地址值(例如X-Real-IP 或 X-Forwarded-For),意义在于能够使得后台服务器记录原始客户端的IP地址
–with-pcre: 设置PCRE库的源码路径,如果已通过yum方式安装,使用–with-pcre自动找到库文件。使用–with-pcre=PATH时,需要从PCRE网站下载pcre库的源码(版本4.4 - 8.30)并解压,剩下的就交给Nginx的./configure和make来完成。perl正则表达式使用在location指令和 ngx_http_rewrite_module模块中。
–with-zlib=PATH: 指定 zlib(版本1.1.3 - 1.2.5)的源码解压目录。在默认就启用的网络传输压缩模块ngx_http_gzip_module时需要使用zlib 。
–add-module=PATH: 添加第三方外部模块,如nginx-sticky-module-ng或缓存模块。每次添加新的模块都要重新编译(Tengine可以在新加入module时无需重新编译)
常用操作
启动关闭 nginx 等常用操作# 检查配置文件是否正确 /usr/local/nginx/sbin/nginx -t # 查看编译选项 /usr/local/nginx/sbin/nginx -V # 启动 /usr/local/nginx/sbin/nginx # 默认配置文件 conf/nginx.conf,-c 指定 #关闭 /usr/local/nginx/sbin/nginx -s stop # or pkill nginx # 重启,不会改变启动时指定的配置文件 /usr/local/nginx/sbin/nginx -s reload # 或者 kill -HUP `cat /usr/local/nginx-1.6/logs/nginx.pid` # 也可以将 nginx 作为系统服务管理,下载 nginx 到/etc/init.d/,修改路径和可执行权限 # service nginx {start|stop|status|restart|reload|configtest}
解析 php
需要php-fpm的支持
直接使用自带的
php-fpm
如果没有,那重新编译
PHP,在原有的编译信息后加上
--enable-fpm
查看原本的编译信息
php -i | grep Configure
加上
--enable-fpm选项进行重新编译
配置
php-fpm
#复制一份配置文件 sudo cp /usr/local/php7/etc/php-fpm.conf.default.conf php-fpm.conf #复制一份用户配置文件,用户名是配置 php 时指定的 sudo cp /usr/local/php7/etc/php-fpm.d/www.conf.default www.conf #启动 php-fpm,mac 必须要以 root 用户启动,-R 参数表示 --allow-to-run-as-root sudo /usr/local/php7/sbin/php-fpm -R #查看一下php-fpm是否启动成功 ps aux | grep php-fpm # php-fpm 的默认端口号是 9000 netstat -ant | grep 90000
nginx 整合 php-fpm
location ~ \.php$ { root /data/home/arnoliu/www/developers.e.qq.com/web; fastcgi_pass 127.0.0.1:9001; fastcgi_index index.php; fastcgi_param SCRIPT_FILENAME /data/home/arnoliu/www/developers.e.qq.com/web$fastcgi_script_name; include fastcgi_params; }
nginx 配置
nginx.conf配置文件
nginx 配置文件主要分成四部分:
main:(全局设置)其他部分的会继承自 main
server:(主机设置)主要用于指定虚拟主机域名、IP 和端口
location:(URL 路由)用于匹配路由信息
upstream:(主要为反向代理、负载均衡相关配置)upstream 主要用于设置一系列的后端服务器,设置反向代理及后端服务器的负载均衡
server 继承 main,location 继承 server
upstream 既不会继承指令也不会被继承,它有自己的特殊指令
我的配置
worker_processes 8; events { worker_connections 1024; } http { include mime.types; default_type application/octet-stream; access_log logs/access.log; sendfile on; keepalive_timeout 60; tcp_nopush on; tcp_nodelay on; fastcgi_connect_timeout 300; fastcgi_send_timeout 300; fastcgi_read_timeout 300; fastcgi_buffer_size 64k; fastcgi_buffers 4 64k; fastcgi_busy_buffers_size 128k; fastcgi_temp_file_write_size 128k; gzip on; gzip_min_length 1k; gzip_buffers 4 16k; gzip_http_version 1.0; gzip_comp_level 2; gzip_types text/plain text/css text/javascript application/json application/javascript application/x-javascript application/xml; gzip_vary on; server { listen 80; server_name example.qq.com; root /data/home/arnoliu/www/example/web; charset utf-8; location / { root /data/home/arnoliu/www/example/web; index index.php index.html index.htm; } location ~ \.php$ { root /data/home/arnoliu/www/example/web; fastcgi_pass 127.0.0.1:9000; fastcgi_index index.php; fastcgi_param SCRIPT_FILENAME /data/home/arnoliu/www/example/web$fastcgi_script_name; include fastcgi_params; } } }
相关文章推荐
- linux后台服务器开发环境部署配置和验证(nginx+apache+php-fpm+FASTCGI(C/C++))
- nginx 的 php 开发环境部署
- linux后台server开发环境的部署配置和验证(nginx+apache+php-fpm+FASTCGI(C/C++))
- FreeBSD 8.1 平台配置 Nginx 0.8.54 + PHP 5.3.6+ MySQL 5.5.9 开发环境(一)
- 个人安装php开发环境心得——nginx安装篇
- PHP开发环境部署说明
- Linux服务器开发环境搭建 Nginx+PHP+MongoDB
- CentOS 6部署PHP开发环境
- 企业内网开发环境部署与管理全攻略(FreeBSD+PHP)
- Ubuntu + Nginx/PHP/MYSQL开发环境配置图文教程
- 【php】本地开发环境的部署与helloworld
- 全新安装Mac OSX 开发者环境 同时使用homebrew搭建 PHP,Nginx ,MySQL,Redis,Memcache ... ... (LNMP开发环境)
- 全新安装Mac OSX 开发者环境 同时使用homebrew搭建 PHP,Nginx ,MySQL,Redis,Memcache ... ... (LNMP开发环境)
- 在WIN32下搭建PHP开发环境,部署HDWiki
- ubuntu下搭建php开发环境(nginx+(cgi)php5fpm+memcached+xdebug)
- PHP开发环境部署
- 搭建LNAMP(Linux+Apache+Nginx+MySQL+PHP)前后端Web(PHP)开发环境
- 使用 xampp 来部署 php,mysql,apache 开发环境
- Ubuntu下搭建nginx + php + mysql + phpmyadmin开发环境
- Windows下nginx+php+eclipse开发环境搭建