Nginx支持PHP环境的两种方法

Nginx支持PHP环境的两种方法
Nginx支持PHP环境的两种方法

Nginx支持PHP环境的两种方法

Nginx默认是不支持PHP环境的,我们可以通过两种方法来让Nginx支持PHP环境

方法一:编译安装PHP的时候,在配置时添加PHP的fpm模块“--enable-fpm”,用来调用本机的PHP环境

1.编译安装PHP

首先安装PHP所需要的工具包

然后编译安装PHP,在配置的时候加上“--enable-fpm”这个配置项

安装后调整

2.配置Nginx支持PHP环境,启动php-fpm进程。

首先创建一个php-fpm程序用户php(名字随意)

然后修改php-fpm配置文件,保存退出

最后启动该程序

3.配置Nginx支持PHP解析,修改Nginx配置文件,需要在相应的“server{}”配置段中添加location设置,以便指定当访问.php网页时采取何种操作。修改后重启Nginx服务

4.编写PHP测试页

5.浏览器访问

方法二:Nginx的反向代理,我们可以将对Nginx服务器的.php动态请求转交给的LAMP 服务器来处理。从而可以实现Nginx负责静态页面以及LAMP负责动态页面的静动分离效果

1.直接设置Nginx的配置文件,找到对应的“server{}”配置段,然后使用选项“proxy_pass”来指定Apache服务器,让Apache来响应.php的请求。例如:Apache服务器的IP地址为19

2.168.100.2

添加好以后重启Nginx服务即可

Windows下Nginx的安装与配置

Windows下Nginx的安装与配置 Windows下Nginx的安装与配置 Nginx ("engine x") 是一款高性能的,轻量级的HTTP Web服务器和反向代理服务器及电子邮件IMAP/POP3/SMTP代理服务器。 Nginx是由俄罗斯的程序设计师Igor Sysoev 所开发,为俄罗斯访问量第二的Rambler.ru 站点开发的,它已经在该站点运行超过四年多时间了,Igor 将源代码以类BSD许可证的形式发布。 自Nginx 发布四年来,Nginx 已经因它的稳定性、丰富的功能集、示例配置文件和低系统资源的消耗而闻名了。Nginx 超越Apache的高性能和稳定性,使得国内使用Nginx 作为Web 服务器的网站也越来越多。 目前国内各大门户网站已经部署了Nginx,如新浪、网易、腾讯等;新近发现Nginx 技术在国内日趋火热,越来越多的网站开始应用部署Nginx。 一、首先去官网下载nginx1.0.11的Windows版本,官网下载: https://www.360docs.net/doc/a53882796.html,/download/nginx-1.0.11.zip 下载到软件包后,解压nginx-nginx1.0.11.zip 包到你喜欢的根目录,并将目录名改为nginx。 然后,执行下列操作: cd nginx start nginx 这样,nginx 服务就启动了。打开任务管理器,查看nginx.exe 进程,有二个进程会显示,占用系统资源,那是相当的少。然后再打开浏览器,输入http://127.0.0.1/就可以看到nginx 的欢迎页面了,非常友好 nginx -s stop // 停止nginx nginx -s reload // 重新加载配置文件 nginx -s quit // 退出nginx 二、接下来就是配置nginx的conf文件了。下面是我的配置: #user nobody; worker_processes 1; #error_log logs/error.log; #error_log logs/error.log notice; #error_log logs/error.log info; #pid logs/nginx.pid;

系统管理员易犯错误及解决方法汇总

系统管理员易犯错误及解决方法汇总 本文分享的都是系统管理员在工作的时候容易犯的错误,经抚琴煮酒整理并提供解决方法,希望可以给大家一些指导,避免在工作中出现此类问题。作者简介:余洪春,网名抚琴煮酒,英文名Andrew.Yu,武汉某外企高级Linux/Unix系统管理员、项目实施工程师,红帽RHCE 讲师,擅长负载均衡高可用和中小型证券类和商务网站架构,目前关注网站架构研究及网络安全。 一、安装FreeBSD后无法重启 问题描述: 装惯了Linux的人肯定知道一般会有个boot分区,可是在bsd就不那么容易了。在安装FreeBSD 8.1的时候遇到了问题,查阅了chinaunix上面,正好也有相关问题整理,特摘录如下: 我要求FreeBSD分区: 2G For / 4G For swap 10G For /root 256M For /boot 其余 for /usr 安装正常,结果安装重启后便出现杯具了: >> FreeBSD/i386 BOOT Default: 0:da(0,a)/boot/kernel/kernel boot: 原因: 通过网上查资料,了解到手动引导的全过程,发现了问题所在: 由于独立分区/boot造成了FreeBSD引导过程中无法正确找到内核引导的位置。 解决方法: 通过 boot: 0:da(0,e)/loader 可以解决引导问题,然后进入loader界面 *这个引导盘符根据da0s1x 的 x 得来,因此你安装系统的时候/boot所在分区区号,才是真正的x字母,如果不知道就从往后试试 同样由于默认kernel位置是/boot/kernel所以依然需要手动加载 ok load kernel/kernel 获得kernel信息后 ok boot 这样就可以正常引导了。 但是这样还没有彻底解决问题,随后还需要在磁盘挂载的时候输入 mount root>ufs:/dev/da0s1a 才能进入系统,而且每次重启都手动一次。所以其实问题没有彻底解决。 所以,为了避免以上的/boot问题,目前我装机一般规范化操作,一般只分三个区,避免独立分区/boot,也希望玩Linux的朋友们重视下这个问题。 2048M For / 4096M For swap 其余的均For /usr

Nginx 502错误触发条件与解决办法汇总===

Nginx 502错误触发条件与解决办法汇总 一些运行在Nginx上的网站有时候会出现502 Bad Gateway错误,有些时候甚至频繁的出现。有些站长是在刚刚转移到Nginx之后就出现了这个问题,所以经常会怀疑这是不是Nginx的问题,但事实上这是个误区。以... 一些运行在Nginx上的网站有时候会出现“502 Bad Gateway”错误,有些时候甚至频繁的出现。有些站长是在刚刚转移到Nginx之后就出现了这个问题,所以经常会怀疑这是不是Nginx的问题,但事实上这是个误区。 以下是从张宴和Ayou的博客搜集整理的一些Nginx 502错误的排查方法,供大家参考: Nginx 502错误的原因比较多,是因为在代理模式下后端服务器出现问题引起的。这些错误一般都不是nginx本身的问题,一定要从后端找原因!但nginx把这些出错都揽在自己身上了,着实让nginx的推广者备受置疑,毕竟从字眼上理解,bad gateway?不就是bad nginx吗?让不了解的人看到,会直接把责任推在nginx身上,希望nginx下一个版本会把出错提示写稍微友好一些,至少不会是现在简单的一句502 Bad Gateway,另外还不忘附上自己的大名。 Nginx 502的触发条件 502错误最通常的出现情况就是后端主机当机。在upstream配置里有这么一项配置:proxy_next_upstream,这个配置指定了nginx在从一个后端主机取数据遇到何种错误时会转到下一个后端主机,里头写上的就是会出现502的所有情况拉,默认是error timeout。error就是当机、断线之类的,timeout就是读取堵塞超时,比较容易理解。我一般是全写上的: proxy_next_upstream error timeout invalid_header http_500 http_503; 不过现在可能我要去掉http_500这一项了,http_500指定后端返回500错误时会转一个主机,后端的jsp出错的话,本来会打印一堆stacktrace的错误信息,现在被502取代了。但公司的程序员可不这么认为,他们认定是nginx出现了错误,我实在没空跟他们解释502的原理了…… 503错误就可以保留,因为后端通常是apache resin,如果apache死机就是error,但resin死机,仅仅是503,所以还是有必要保留的。 解决办法 遇到502问题,可以优先考虑按照以下两个步骤去解决。 1、查看当前的PHP FastCGI进程数是否够用:

centos7配置nginx+php5.6+mysql5.6+netcore2.0

Centos7配置.netcore+nginx+mysql+php 1 安装nginx yum install epel-release yum install nginx 启动nginx服务 systemctl restart nginx 检查服务是否起来 ps –ef|grep nginx 修改配置文件 cd /etc/nginx cp nginx.conf nginx.conf.bak cp nginx.conf.default nginx.conf 浏览器访问,测试是否安装成功 加入守护进程,使其开机自启动 sytemctl enable nginx 配置文件位置:/etc/nginx/nginx.conf 网站位置:/usr/share/nginx/htm

2 安装.net core 2.0 检查系统安装glibc的版本 cd /usr/lib64 strings libstdc++.so.6|grep GLIBC GLIBCXX大于3.4.18 sh -c 'echo -e "[packages-microsoft-com-prod]\nname=packages-microsoft-com-prod \nbaseurl=https://https://www.360docs.net/doc/a53882796.html,/yumrepos/microsoft-rhel7. 3-prod\nenabled=1\ngpgcheck=1\ngpgkey=https://packages.microsoft .com/keys/microsoft.asc" > /etc/yum.repos.d/dotnetdev.repo'

win7_apache_+mysql+PHP_配置更新篇(赛林)

win7安装Apache+PHP+MySql环境 apache 简介 2012年5月Web服务器市场份额 Windows7下的apache + php安装配置 一、需要的软件 httpd-2.2.22-win32-x86-openssl-0.9.8t.msi 官网下载地址: https://www.360docs.net/doc/a53882796.html,/apache//httpd/binaries/win32/httpd-2.2.22-win32-x86-openssl-0.9.8t.m si php-5.4.1-Win32-VC9-x86.zip 最新版下载地址: https://www.360docs.net/doc/a53882796.html,/downloads/releases/php-5.4.3-Win32-VC9-x86.zip mysql-5.5.24-win32.msi 二、首先安装好apache A、双击httpd-2.2.22-win32-x86-openssl-0.9.8t.msi文件安装,在安装过程中输入Network Domain(填写网络域名,自己定吧,https://www.360docs.net/doc/a53882796.html,、https://www.360docs.net/doc/a53882796.html,都可以,以后在配置文件中可以再改)、

Server Name(填写服务名,自己定吧,https://www.360docs.net/doc/a53882796.html,、https://www.360docs.net/doc/a53882796.html,都可以,以后在配置文件中可以再改)、Administrator's Email Address(填写你的邮件地址,只要是邮件地址都可以)后,点击next,直到完成。 B、在浏览器中输入http://localhost,回车,如果出现It works.则表示安装成功。 三、安装并配置php A、解压php-5.4.1-Win32-VC9-x86.zip,将解压过后的文件重命名为php54,将其放在e盘目录下(也就是php54的路径是e:/php54)。 B、在e:/php54文件夹下,将php.ini-development文件重命名为php.ini。然后用记事本打开此文件。 开启php扩展模块,php有许多模块,php安装文件中有个ext的目录(e:/php54/ext),这个目录下,有php所有的支持模块。首先我们要启用这个目录下的模块,就需要如下操作:找到; extension_dir = "ext"(大概在730行这个位置),将其改为extension_dir = "e:/php54/ext",php 安装目录下ext 子目录的绝对路径,也就是e:/php54/ext路径,这步很重要。否则接下来php 会找不到php_mysql.dll等模块,无法装载。MySQL 的扩展默认是没有打开的。将其打开。类似上面这样的脚本,是可选择的php 扩展模块,如果需要加载,直接去掉前面的; 号即可。 C、开启mysql等模块支持,找到以下位置,去掉其前面的;(冒号),将其开启; ;extension=php_gd2.dll(在871行) ;extension=php_mbstring.dll(在878行) ;extension=php_mysql.dll(在880行) ;extension=php_mysqli.dll(在881行) 将前面的; 号去掉,改成: extension=php_gd2.dll extension=php_mbstring.dll extension=php_mysql.dll extension=php_mysqli.dll 最后,保存保存php.ini文件。 四、配置Apache 打开Apache 安装目录下的conf 子目录中的httpd.conf 文件(win7下默认安装的话,其配置文件所在目录是C:\Program Files\Apache Software Foundation\Apache2.2\conf)。 A、修改端口。 找到:Listen 80,如果80端口已经被占用了,就需要改为其他的,比如改为:Listen 82, Listen 83都可以,如果没有被占用,则一般不需要改。 B、设置网站存放目录。 首先,建一个用于存放网站内容的目录,比如,在e盘建一个phpweb目录(e:/phpweb)。 找到: DocumentRoot "C:/Program Files/Apache Software Foundation/Apache2.2/htdocs"将其 改成你本机用于存放网站内容的目录,改为: DocumentRoot “e:/phpweb” C、设置网站存放目录权限

Linux下Nginx+PHP+MySQL配置(图)

Nginx是一个高性能的HTTP和反向代理服务器,同时还是IMAP/POP3/SMTP代理服务器,该程序由俄罗斯Rambler.ru 站点开发,Nginx因为性能稳定、低系统资源消耗而闻名,近几年Nginx在国内已经成炙热化状态,比如像腾讯、网易、51CTO、迅雷、当当网、51、人人网等诸多大型网站都已经使用Nginx来做Web服务器,所以我们要学会运用Nginx还是非常有必要的,下面我们一起来看一下Nginx是如何在Linux平台上搭建的 安装前首先使用yum命令安装、升级所需的程序库 yum -y install gcc gcc-c++ autoconf libjpeg libjpeg-de vel libpng libpng-de vel freetype freet ype-devel libxml2 libxml2-devel zlib zlib-devel glibc glibc-de vel glib2 glib2-devel bzip2 bzip2-de vel ncurses ncurses-devel curl curl-de vel ssse2fsprogs e2fsprogs-de vel krb5 krb5-de vel libidn libidn-de vel ope nssl openssl-devel openl dap openldap-de vel nss_ldap openlda p-clients openlda p-servers 一、安装MySQL 目前web服务器已经很少有跑静态页面的,如果要跑动态网站那当然就离不开数据库,虽然在以前文章中有写MySQL是怎么安装的,但是感觉好久没装MySQL,现在只把步骤贴出来,就不做过多的讲解了 #useradd mysql #tar zxvf mysql-5.0.40.tar.gz #cd mysql-5.0.40 #./configure --prefix=/usr/local/mysql #make && make install #/usr/local/mysql/bin/mysql_install_db --user=mysql //初始化MySQL数据库 #chown -R mysql /usr/local/mysql/var #/usr/local/mysql/bin/mysqld_safe & //启动MySQL #/usr/local/mysql/bin/mysqladmin -u root password 123456 //设置MySQL密码 #cp support-files/https://www.360docs.net/doc/a53882796.html,f /etc/https://www.360docs.net/doc/a53882796.html,f #echo "/usr/local/mysql/bin/mysqld_safe &" >>/etc/rc.local

Nginx常见错误与解决方法解读

上海纽斯达科技Nginx常见错误与解决方法 上海纽斯达科技有限公司 2014-10-25

文档状态 目的: 在Nginx 服务器出现故障时,能快速定位并解决相关错误。 保密: 本文档仅供内部使用,请勿外传 概述: Nginx 常见错误与问题之解决方法技术指南。 安装环境: 系统环境:redhat enterprise 6.5 64bit 文件状态: 【 】草稿 【 】修改稿 【√】正式发布 文档编号 Nsdkj-778 保 密 等 级 限制 作 者 刘恒亮 最后完成日期 2014-12-25 审 核 人 最后审核日期 2014-12-25 批 准 人 最后批准日期 2014-12-25

1、Nginx 常见启动错误 有的时候初次安装nginx的时候会报这样的错误 sbin/nginx -c conf/nginx.conf 报错内容:sbin/nginx: error while loading shared libraries: libpcre.so.1: cannot open shared object file: No such file or directory 启动时如果报异常error while loading shared libraries: libpcre.so.1: cannot open shared object file: No such file or directory 这说明我们的环境还不是和启动需要 小小的配置一下 解决方法(直接运行): 32位系统 [root@sever lib]# ln -s /usr/local/lib/libpcre.so.1 /lib 64位系统 [root@sever lib]# ln -s /usr/local/lib/libpcre.so.1 /lib64 然后执行ps -ef | grep nginx 查看nginx进程确认是否真的已经启动了,在进程列表里会有最起码两个, worker(nginx工作进程)和master(nginx主进程) root 4349 1 0 02:24 ? 00:00:00 nginx: master process sbin/nginx -c conf/nginx.conf nginx 4350 4349 0 02:24 ? 00:00:00 nginx: worker process root 4356 28335 0 02:30 pts/1 00:00:00 grep nginx NGINX 就 OK了 2、400 bad request错误的原因和解决办法 配置nginx.conf相关设置如下. client_header_buffer_size 16k; large_client_header_buffers 4 64k; 根据具体情况调整,一般适当调整值就可以。 3、Nginx 502 Bad Gateway错误 在php.ini和php-fpm.conf中分别有这样两个配置项:max_execution_time和 request_terminate_timeout。

windows下搭建基于nginx的rtmp服务器

windows下搭建基于nginx的rtmp服务器 Windows机器配置:Windows7旗舰版64位Intel(R) Core(TM)i5-2520 CPU @2.50GHz 2.50 GHz内存: 4GB1. 下载nginx 1.7.11.3 Gryphon下载链接: http://nginx-win.ecsds.eu/download/nginx 1.7.11.3 Gryphon.zip 下载完成后解压;将解压后的目录名: nginx 1.7.11.3 Gryphon改成: nginx-1.7.11.3-Gryphon2. 下载服务器状态检查程序stat.xslhttps://https://www.360docs.net/doc/a53882796.html,/arut/nginx-rtmp-module/将nginx-rtmp-module-master.zip解压后复制到目 录:nginx-1.7.11.3-Gryphon下,保证stat.xls的目录 为:nginx-1.7.11.3-Gryphon\nginx-rtmp-module\stat.xsl3. 配置文件conf\nginx-win-rtmp.conf 内容如下:#user nobody;# multiple workers works !worker_processes 2;#error_log logs/error.log;#error_log logs/error.log notice;#error_log logs/error.log info;#pid logs/nginx.pid;events { worker_connections 8192; # max value 32768, nginx recycling connections+registry optimization = # this.value * 20 = max concurrent connections currently tested with one worker # C1000K should be possible depending there is enough ram/cpu power # multi_accept on;}rtmp { server { listen 1935;

CentOS+Nginx+PHP+MySQL详细配置(带有图解)

CentOS+Nginx+PHP+MySQL详细配置(带有图解) 一、安装MySQL 目前web服务器已经很少有跑静态页面的,如果要跑动态网站那当然就离不开数据库,虽然在以前文章中有写MySQL是怎么安装的,但是感觉好久没装MySQL,现在只把步骤贴出来,就不做过多的讲解了 #useradd mysql #tar zxvf mysql-5.0.40.tar.gz #cd mysql-5.0.40 #./configure --prefix=/usr/local/mysql #make && make install #/usr/local/mysql/bin/mysql_install_db --user=mysql //初始化MySQL数据库 #chown -R mysql /usr/local/mysql/var #/usr/local/mysql/bin/mysqld_safe & //启动MySQL #/usr/local/mysql/bin/mysqladmin -u root password 123456 //设置MySQL密码 #cp support-files/https://www.360docs.net/doc/a53882796.html,f /etc/https://www.360docs.net/doc/a53882796.html,f #echo "/usr/local/mysql/bin/mysqld_safe &" >>/etc/rc.local 二、安装PCRE PCRE是perl所用到的正则表达式,目的是让所装的软件支持正则表达式。默认情况下,Nginx只处理静态的网页请求,也就是html.如果是来自动态的网页请求,比如*.php,那么Nginx就要根据正则表达式查询路径,然后把*.PHP交给PHP去处理 #rpm -qa | grep pcre //查询系统中有没有安装PCRE,一般装系统是默认装有,所以我们要删掉系统自带的 #cp /lib/libpcre.so.0 / //在删除系统自带的PCRE之前,要先备份一下libpcre.so.0这个文件,因为RPM包的关联性太强,在删除后没libpcre.so.0这个文件时我们装PCRE是装不上的 #rpm -e --nodeps pcre-6.6-1.1 //删除系统自带的PCRE # tar zxvf pcre-8.00.tar.gz #cd pcre-8.00 #cp /libpcre.so.0 /lib/ //把我们删除系统自带的PCRE之前备份的libpcre.so.0拷贝到/lib 目录下 #./configure //配置PCRE,因为PCRE是一个库,而不是像pache、php、postfix等这样的程序,所以我们安装时选择默认路径即可,这样会在后面安装其它东西时避免一些不必要的麻烦,执行完这部后会显示出下图,上面显示了我们对PCRE的配置 #make && make install

linux centos安装nginx常见错误及解决办法

1. 安装完成Nginx后无法站外访问? 刚安装好nginx一个常见的问题是无法站外访问,本机wget、telnet都正常。而服务器之外,不管是局域网的其它主机还是互联网的主机都无法访问站点。如果用telnet的话,提示: 正在连接到192.168.0.xxx...不能打开到主机的连接,在端口 80: 连接失败 如果用wget命令的话,提示: Connecting to 192.168.0.100:80... failed: No route to host. 如果是以上的故障现象,很可能是被CentOS的防火墙把80端口拦住了,尝试执行以下命令,打开80端口: iptables -I INPUT -p tcp --dport 80 -j ACCEPT 然后用: /etc/init.d/iptables status 查看当前的防火墙规则,如果发现有这样一条: ACCEPT tcp -- 0.0.0.0/0 0.0.0.0/0 tcp dpt:80 就说明防火墙规则已经添加成功了,再在站外访问就正常了。 2. 编译pcre错误(源码安装nginx必须先要装pcre) libtool: compile: unrecognized option `-DHAVE_CONFIG_H' libtool: compile: Try `libtool --help' for more information. make[1]: *** [pcrecpp.lo] Error 1 make[1]: Leaving directory `/usr/local/src/pcre-8.21' make: *** [all] Error 2

Nginx 错误处理方法

Nginx (―engine x‖) 是一个高性能的HTTP 和反向代理服务器,也是一个 IMAP/POP3/SMTP 代理服务器。Nginx 是由Igor Sysoev 为俄罗斯访问量第二的Rambler.ru 站点开发的,它已经在该站点运行超过两年半了。Igor 将源代码以类BSD许可证的形式发布。Nginx 超越Apache 的高性能和稳定性。 Nginx+Tomcat是目前主流的Java web架构,很多公司在使用,Nginx+Tomcat通过简单的配置,可以实现高性能的负载均衡,通过本文学习,可以实现Nginx+Tomcat 负载均衡。 工具资源 1、Java运行环境,JDK 2、Tomcat7.0.65压缩版下载 3、Nginx1.8.1稳定版下载 本文基于win10进行配置 配置步骤 1、JDK环境配置略 2、Tomcat安装配置 请参考:一台服务器安装运行多个Tomcat及注册服务 本测试安装两个Tomcat,端口分别是8801和8802 安装配置完成后请确保每一个Tomcat可以正常访问 为了区分两个Tomcat,本文将第二个Tomcat的页面名称改为:Apache Tomcat/7.0.65-2 3、Nginx配置

1.解压Nginx到D盘根目录 2.修改Nginx配置 #user nobody; worker_processes 1; #工作进程的个数 #error_log logs/error.log; #error_log logs/error.log notice; #error_log logs/error.log info; #pid logs/nginx.pid; events { worker_connections 1024; #单个进程最大连接数} http {

【IT专家】nginx环境下配置支持php5.6(nginx+PHP)

本文由我司收集整编,推荐下载,如有疑问,请与我司联系nginx环境下配置支持php5.6(nginx+PHP)该文主要讲述在nginx环境下如何配置支持php5.6,主要分为三部分:配置安装PHP5.6.25,配置php-fpm组件,配置nginx支持PHP(请自行编译安装nginx)?1、配置安装PHP5.6.25 ?[root@localhost share]# cp php-5.6.25.tar.gz/usr/local ?[root@localhost share]# cd /usr/local ?[root@localhost local]# tar -zvxf php-5.6.25.tar.gz ?[root@localhost local]# cd php-5.6.25 ?[root@localhost php-5.6.25]# ./configure--prefix=/usr/local/php --enable-fpm ?要想使php支持php-fpm,只需要在编译的时候带上--enable-fpm 就可以了 ?configure error xml2-config not found. pleasecheck your libxml2 installation ?编译时报以上错误,此时安装相关包再重新编译安装即可。 ?[root@localhost php-5.6.25]# yum install libxml2 ?[root@localhost php-5.6.25]# yum install libxml2-devel ?[root@localhost php-5.6.25]# ./configure--prefix=/usr/local/php --enable-fastcgi --enable-fpm ?[root@localhost php-5.6.25]# make ?[root@localhost php-5.6.25]# makeinstall ?Installing shared extensions:/usr/local/php/lib/php/extensions/no-debug-non-zts-20131226/ ?Installing PHP CLI binary: /usr/local/php/bin/ ?Installing PHP CLI man page: /usr/local/php/php/man/man1/ ?Installing PHP FPM binary: /usr/local/php/sbin/ ?Installing PHP FPM config: /usr/local/php/etc/ ?Installing PHP FPM man page: /usr/local/php/php/man/man8/ ?Installing PHP FPM status page: /usr/local/php/php/php/fpm/

FreeBSD7.2下ports方式安装配置“Nginx0.8.24+PHP5.2.11(FastCGI)+ GD+Mysql5.1.40+系统优化+防ddos攻击”

版权声明 本文版权归作者所有,如其他个人、第三方网站或媒体报刊等需转载全文或节选,请注明原文链接: https://www.360docs.net/doc/a53882796.html,/manual/freebsd-nginx-php-mysql-ports.html 如果因此而给您带来麻烦,请您原谅,谢谢合作。 前言 ?版本:1.0 ?作者:lynn ?项目主页:https://www.360docs.net/doc/a53882796.html, ?个人主页:https://www.360docs.net/doc/a53882796.html, ?最后更新:2009-11-11(光棍节) 本文档是在FreeBSD7.2系统下,以ports系统为基础,所涉及软件全部是开源软件,版权以GPL为主,作为企业应用没有任何版权/法律问题。 编写本文的初衷,是给那些希望快速架设高性能、高负载Web服务系统而不想过多了解复杂的系统知识的网管/用户。 本文假定读者是在FreeBSD 7.2 平台上安装,并具有一定的Unix平台 / FreeBSD平台系统经验,懂得ports基本命令及常规的系统操作,如文件的删除,目录创建,改名,和vi编辑器的基本使用等。 源代码方式安装请参考(推荐): https://www.360docs.net/doc/a53882796.html,/manual/freebsd-nginx-php-mysql-source.html 目录 ?为什么要选择FreeBSD? ?为什么要选择Nginx? ?软件组成 ?安装FreeBSD7.2

?更新ports ?安装axel提高ports的安装速度 ?安装Mysql5.1.40 ?安装Nginx 安装pcre8.00 安装Nginx0.8.24 ?安装libxml2-2.7.6 ?安装GD 安装zlib1.2.3 安装libpng1.2.40 安装jpeg v7 安装freetype2.3.11 安装gd2.0.35 ?安装PHP 安装php5.2.11(FastCGI模式) ?测试 ?系统优化 ?防ddos攻击 ?结束语 ?ChangeLog 为什么要选择FreeBSD? 官方网站:https://www.360docs.net/doc/a53882796.html,中文网站:https://www.360docs.net/doc/a53882796.html,/zh_CN/ FreeBSD是一个优秀的unix操作系统,基于宽松的BSD协议,是完美的企业级操作系统,以重点突出性能和安全而闻名,行业领先的企业多年以来一直使用FreeBSD服务器。具有同所有其它开源软件操作系统竞争的高级性能。 1.Unix兼容性强 2.速度快

服务器故障解决思路

遇到服务器故障,问题出现的原因很少可以一下就想到。基本上都会从以下步骤入手: 一、尽可能搞清楚问题的前因后果 不要一下子就扎到服务器前面,你需要先搞明白对这台服务器有多少已知的情况,还有故障的具体情况。不然你很可能就是在无的放矢。 必须搞清楚的问题有: ? 故障的表现是什么?无响应?报错? ? 故障是什么时候发现的? ? 故障是否可重现? ? 有没有出现的规律(比如每小时出现一次) ? 最后一次对整个平台进行更新的内容是什么(代码、服务器等)? ? 故障影响的特定用户群是什么样的(已登录的, 退出的, 某个地域的…)? ? 基础架构(物理的、逻辑的)的文档是否能找到? ? 是否有监控平台可用? (比如Munin 、Zabbix 、 Nagios 、 New Relic … 什么都可以) ? 是否有日志可以查看?. (比如Loggly 、Airbrake 、 Graylog…) 最后两个是最方便的信息来源,不过别抱太大希望,基本上它们都不会有。只能再继续摸索了。 二、有谁在? 1 2 $ w $ last

用这两个命令看看都有谁在线,有哪些用户访问过。这不是什么关键步骤,不过最好别在其他用户正干活的时候来调试系统。有道是一山不容二虎嘛。(ne cook in the kitchen is enough.) 三、之前发生了什么? 1 $ history 查看一下之前服务器上执行过的命令。看一下总是没错的,加上前面看的谁登录过的信息,应该有点用。另外作为admin 要注意,不要利用自己的权限去侵犯别人的隐私哦。 到这里先提醒一下,等会你可能会需要更新 HISTTIMEFORMAT 环境变量来显示这些命令被执行的时间。对要不然光看到一堆不知道啥时候执行的命令,同样会令人抓狂的。 四、现在在运行的进程是啥? 1 2 $ pstree -a $ ps aux 这都是查看现有进程的。 ps aux 的结果比较杂乱, pstree -a 的结果比较简单明了,可以看到正在运行的进程及相关用户。 五、监听的网络服务 1 2 3 $ netstat -ntlp $ netstat -nulp $ netstat -nxlp 我一般都分开运行这三个命令,不想一下子看到列出一大堆所有的服务。netstat -nalp 倒也可以。不过我绝不会用 numeric 选项 (鄙人一点浅薄的看法:IP 地址看起来更方便)。 找到所有正在运行的服务,检查它们是否应该运行。查看各个监听端口。在netstat 显示的服务列表中的PID 和 ps aux 进程列表中的是一样的。 如果服务器上有好几个Java 或者Erlang 什么的进程在同时运行,能够按PID 分别找到每个进程就很重要了。 通常我们建议每台服务器上运行的服务少一点,必要时可以增加服务器。如果你看到一台服务器上有三四十个监听端口开着,那还是做个记录,回头有空的时候清理一下,重新组织一下服务器。

实战Nginx与PHP(FastCGI)的作用、安装、配置与优化

实战Nginx与PHP(FastCGI)的作用、安装、配置与优 化 一、什么是 FastCGI FastCGI是一个可伸缩地、高速地在HTTP server和动态脚本语言间通信的接口。多数流行的HTTP server都支持FastCGI,包括Apache、Nginx和lighttpd等,同时,FastCGI也被许多脚本语言所支持,其中就有PHP。 FastCGI是从CGI发展改进而来的。传统CGI接口方式的主要缺点是性能很差,因为每次HTTP服务器遇到动态程序时都需要重新启动脚本解析器来执行解析,然后结果被返回给HTTP服务器。这在处理高并发访问时,几乎是不可用的。另外传统的CGI接口方式安全性也很差,现在已经很少被使用了。 FastCGI接口方式采用C/S结构,可以将HTTP服务器和脚本解析服务器分开,同时在脚本解析服务器上启动一个或者多个脚本解析守护进程。当HTTP服务器每次遇到动态程序时,可以将其直接交付给FastCGI进程来执行,然后将得到的结果返回给浏览器。这种方式可以让HTTP服务器专一地处理静态请求或者将动态脚本服务器的结果返回给客户端,这在很大程度上提高了整个应用系统的性能。 二、Nginx+FastCGI运行原理 Nginx不支持对外部程序的直接调用或者解析,所有的外部程序(包括PHP)必须通过FastCGI接口来调用。FastCGI接口在Linux下是socket,(这个socket可以是文件socket,也可以是ip socket)。为了调用CGI程序,还需要一个FastCGI的wrapper (wrapper可以理解为用于启动另一个程序的程序),这个wrapper绑定在某个固定socket上,如端口或者文件socket。当Nginx将CGI请求发送给这个socket的时候,通过FastCGI接口,wrapper接纳到请求,然后派生出一个新的线程,这个线程调用解释器或者外部程序处理脚本并读取返回数据;接着,wrapper再将返回的数据通过FastCGI接口,沿着固定的socket传递给Nginx;最后,Nginx将返回的数据发送给客户端,这就是Nginx+FastCGI的整个运作过程。详细的过程,如图1所示。 图1 Nginx+FastCGI运行原理

Nginx与PHP(FastCGI)的安装、配置与优化

Nginx与PHP(FastCGI)的安装、配置与优化 FastCGI的介绍和工作原理 首先简单的介绍下FastCGI: FastCGI是语言无关的、可伸缩结构的CGI开放扩展,其主要行为是将CGI解释器进行保持在内存中并因此获得较高的性能。众所周知,CGI解释器的反复加载是CGI性能低下的主要原因,如果CGI解释器保持在内存中并接受FastCGI进程管理器调度,则可以提供良好的性能、伸缩性、Fail-Over特性等。 FastCGI的工作原理是: (1)FastCGI进程管理器自身初始化,启动多个CGI解释器进程(多个php-cgi进程)并等待来自Web Server的连接。在文本中,采用PHP-FPM进程管理器启动多个php-cgi FastCGI进程。启动php-cgi FastCGI进程时,可以配置以TCP和UNIX套接字两种方式启动。 (2)当客户端请求达到Web服务器(Nginx)时,Web服务器将请求采用TCP协议或UNIX 套接字方式转发到FastCGI主进程,FastCGI主进程选择并连接到一个CGI解释器(子进程)。Web服务器将CGI环境变量和标准输入发送到FastCGI子进程php-cgi。 (3)FastCGI子进程完成处理后将标准输出和错误信息从同一连接返回Web服务器(Nginx)。当FastCGI子进程关闭连接时,请求便告知处理完成。FastCGI子进程接着等待并处理来自FastCGI进程管理的下一个连接。而在一般的普通CGI模式中,php-cgi在此便退出了。 PHP-FPM PHP-FPM是一个PHP FastCGI管理器,是只用于PHP的,可以在 https://www.360docs.net/doc/a53882796.html,/downloads.php下载得到.PHP-FPM其实是PHP源代码的一个补丁,旨在将FastCGI进程管理整合进PHP包中。必须将它patch到你的PHP源代码中,在编译安装PHP后才可以使用。

window下nginx配置

原来一直以为nginx只能在Linux下搭建,最近查了些资料才恍然大悟,Windows下其实也可以跑nginx。当你的网站访问量越来越高的时候,一台服务器已经没有办法承受流量压力,后果可想而知,怎么办呢?那就增加几台服务器来做负载吧。但当下的硬件设施又是贵得离谱,比如F5,所以这种情况下,免费的nginx成了我们不错的选择,nginx目前好多门户网站与大访问量的网站都在使用做为HTTP服务器,所以nginx是相当优秀的…… 实验环境:(2台服务器) 第一台: 系统:Win2003 nginx:nginx/Windows-0.8.32 IP:192.168.0.51 环境:本地 第二台: 系统:Win2003 IP:192.168.0.52 环境:远程 说明: 本次测试,软件nginx放在本地(192.168.0.51),也就是说放在域名绑定的那台服务器,这台服务器的IIS不能使用80端口,因为等一下nginx软件要使用80这个端口。(为了方便,我将本机的hosts文件添加了我要测试的域名192.168.0.51 https://www.360docs.net/doc/a53882796.html,) 下载nginx的地址如下: nginx下载:https://www.360docs.net/doc/a53882796.html,/ 下载解压到C:\,把目录名改成nginx 一切准备就绪,开始实验: No.1: 在本地(192.168.0.51)这台服务器IIS创建一个网站,使用端口为808,如下图:

IIS 网站绑定设置图 No.2: 在远程192.168.0.52的IIS创建一个网站,使用端口为80,如下图: No.3: 好了,以上已经设置好两台服务器的IIS了,下面配置nginx软件来实现网站负载均衡,打开如下文件: C:\nginx\conf\nginx.conf 1、找到内容server { 在它的上面加入如下内容:

相关文档
最新文档