zzl001 发表于 2018-11-9 10:53:14

centos5下nginx+fastcgi+php+mysql搭建dz论坛(上)

nginx是什么,最初接触到nginx是在一个论坛,这篇文章是张宴写的《搭建一个胜过apache十倍的web服务器》,当时刚接触linux没多久,就web服务器只知道大名顶顶的apache。通过一段时间的学习才了解nginx。nginx("engine x")是一个高性能的 HTTP 和反向代理服务器,也是一个 IMAP/POP3/SMTP 代理服务器。 Nginx 是由 Igor Sysoev为俄罗斯访问量第二的 Rambler.ru 站点开发的,它已经在该站点运行超过两年半了。Nginx因为性能稳定、低系统资源消耗而闻名,现在国内很多网站都是采用nginx来搭建的。因此熟练运用nginx是很有必要的!以下是我学习笔记,可供大家参考,有不足之处,请大家指正!  1.准备工作
  下载相关的软件包到/root目录下:
#wget http://nginx.org/download/nginx-0.7.64.tar.gz  #wget ftp://ftp.csx.cam.ac.uk/pub/software/programming/pcre/pcre-8.00.tar.gz
  #wget http://php-fpm.org/downloads/php-5.3.0-fpm-0.5.12.diff.gz
  #wget http://museum.php.net/php5/php-5.3.0.tar.gz
  #wget http://down1.chinaunix.net/distfiles/mysql-5.0.40.tar.gz
  #wget http://download.comsenz.com/Discuz/7.2/Discuz_7.2_SC_UTF8.zip
  2.安装PCRE
  PCRE(Perl Compatible Regular Expressions)是perl语言正则表达式。安装此软件的目的是为了让nginx支持正则表达式,让nginx转发php请求到指定的应用服务器上(本机的web服务器也是应用服务器,所以转发到本机进行处理)
#tar zxvf pcre-8.00.tar.gz  #cd pcre-8.00
  #./configure
  #make
  #make install
  3.安装Nginx
#tar zxvf nginx-0.7.64.tar.gz  #cd nginx-0.7.64
  #./configure    --prefix=/usr/local/nginx --user=nginx --group=nginx --with-http_stub_status_module
  #make
  #make install
由于编译安装时指定了用户nginx,所以必须建立一个系统用户nginx#useradd -r nginx  4.安装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
  #chown -R mysql /usr/local/mysql/var
  #/usr/local/mysql/bin/mysqld_safe &
  #/usr/local/mysql/bin/mysqladmin -u root password 123456
  #cp support-files/my-medium.cnf /etc/my.cnf
  5.安装PHP并整合FastCGI
  在这里要说下php-fpm,这是一个用于管理FastCGI的一个PHP的补丁,安装时应该把补丁打到PHP的源码中!使用FastCGI技术可以实现应用服务器和web服务器的逻辑隔离,因此具有非常好的扩展性。启动php-fpm程序,他可以监听来至nginx转发过来的请求,并通过php应用程序对请求进行处理。这种技术和apache+php是不同的,apache是采用加载动态库的形式运行并处理php的请求。
#tar zxvf php-5.3.0.tar.gz  #gzip -cd php-5.3.0-fpm-0.5.12.diff.gz | patch -d php-5.3.0 -p1
  #./configure --prefix=/usr/local/php --enable-fastcgi --enable-fpm --enable-force-cgi-redirect --with-mysql=/usr/local/mysql
  #make
  #make install
  #cp php.ini-production /usr/local/php/etc/php.ini
注意:必须选择版本号向对应的php和php-fpm进行安装!!!  6.整合Nginx、FastCGI、PHP
  完成了以上的安装,下面来要整合这些东西,否则无法完成请求处理!那么如何整合呢?下面我们给他们分工一下,Nginx接受访问本站点的全部请求,如果请求是静态文件就用Nginx进行处理,如果是动态的php程序文件就转发给php程序进行处理(这就涉及到正则表达式,所以在安装PCRE并让Nginx支持)。通过php-fpm进行监听转发过来的请求,并把这些请求交给php程序进行处理。处理完后返回给客户端。明白了工作原理,就可以修改Nginx和php-fmp的配置文件进行整合!
  1)修改Nginx的配置文件
  #vi /usr/local/nginx/conf/nginx.conf   #location ~ \.php$ {
  #    root         html;
  #    fastcgi_pass   127.0.0.1:9000;
  #    fastcgi_indexindex.php;
  #    fastcgi_paramSCRIPT_FILENAME   /scripts$fastcgi_script_name;
  #    include      fastcgi_params;
  #}
  找到以上这段,去除前面的注释号#
  2)修改php-fpm的配置文件
#vi /usr/local/php/etc/php-fpm.conf      Unix user of processes  
  Unix group of processes
  
  找到以上选项去掉注释 ""
  default
  Address to accept fastcgi requests on.
  Valid syntax is 'ip.ad.re.ss:port' or just 'port' or '/path/to/unix/socket'
  127.0.0.1:9000
  注意红色的字体,这段设置php-fmp监听来至哪里来的请求!
  
  3)测试
vi /usr/local/nginx/html/info.php   
  写下以上内容。
  在浏览器上输入:http://IP/info.php ,正确的显示了php设置相关的页面,CentOS5下nginx+fastcgi+php+mysql的环境设置成功!

页: [1]
查看完整版本: centos5下nginx+fastcgi+php+mysql搭建dz论坛(上)