nginx(五)nginx与php的安装配置

it2024-12-30  14

经过前面学习,对nginx有个大概的了解,来配置LNMP;只要是在系统安装过程中选择安装比较齐全的包,基本上系统都能满足安装要求,下面是我一个一个测试的,基本上全部安装所需的库文件,放心安装;

[root@mgmserver ~]# rpm -qa |grep zlibzlib-devel-1.2.3-3zlib-1.2.3-3

[root@mgmserver tar_packet]# rpm -qa |grep opensslopenssl-0.9.8e-12.el5openssl-devel-0.9.8e-12.el5

[root@mgmserver tar_packet]# rpm -qa |grep pcrepcre-6.6-2.el5_1.7pcre-devel-6.6-2.el5_1.7

[root@mgmserver tar_packet]# rpm -qa |grep gcccompat-libgcc-296-2.96-138compat-gcc-34-g77-3.4.6-4gcc-c++-4.1.2-46.el5libgcc-4.1.2-46.el5compat-gcc-34-3.4.6-4compat-gcc-34-c++-3.4.6-4gcc-java-4.1.2-46.el5gcc-4.1.2-46.el5gccp-gfortran-4.1.2-46.el5

[root@mgmserver tar_packet]# rpm -qa |grep autoconfautoconf-2.59-12

[root@mgmserver tar_packet]# rpm -qa |grep automakeautomake-1.9.6-2.1automake16-1.6.3-8automake15-1.5-16automake17-1.7.9-7automake14-1.4p6-13[root@mgmserver ~]# rpm -qa |grep libjpeglibjpeg-devel-6b-37libjpeg-6b-37[root@mgmserver ~]# rpm -qa |grep libpnglibpng-1.2.10-7.1.el5_3.2libpng-devel-1.2.10-7.1.el5_3.2[root@mgmserver ~]# rpm -qa |grep freetypefreetype-2.2.1-21.el5_3freetype-devel-2.2.1-21.el5_3[root@mgmserver ~]# rpm -qa |grep libxml2libxml2-python-2.6.26-2.1.2.8libxml2-2.6.26-2.1.2.8libxml2-devel-2.6.26-2.1.2.8[root@mgmserver ~]# rpm -qa |grep glibcglibc-2.5-42glibc-devel-2.5-42compat-glibc-2.3.4-2.26glibc-common-2.5-42compat-glibc-headers-2.3.4-2.26glibc-headers-2.5-42[root@mgmserver ~]# rpm -qa |grep glib2glib2-2.12.3-4.el5_3.1glib2-devel-2.12.3-4.el5_3.1[root@mgmserver ~]# rpm -qa |grep bzip2bzip2-devel-1.0.3-4.el5_2bzip2-libs-1.0.3-4.el5_2bzip2-1.0.3-4.el5_2[root@mgmserver ~]# rpm -qa |grep ncursesncurses-devel-5.5-24.20060715ncurses-5.5-24.20060715[root@mgmserver ~]# rpm -qa |grep curlcurl-devel-7.15.5-2.1.el5_3.5curl-7.15.5-2.1.el5_3.5[root@mgmserver ~]# rpm -qa |grep e2fsprogse2fsprogs-libs-1.39-23.el5e2fsprogs-1.39-23.el5e2fsprogs-devel-1.39-23.el5[root@mgmserver ~]# rpm -qa |grep krb5pam_krb5-2.2.14-10krb5-auth-dialog-0.7-1krb5-libs-1.6.1-36.el5krb5-workstation-1.6.1-36.el5krb5-devel-1.6.1-36.el5[root@mgmserver ~]# rpm -qa |grep libidnlibidn-0.6.5-1.1libidn-devel-0.6.5-1.1[root@mgmserver ~]# rpm -qa |grep nss_ldapnss_ldap-253-21.el5openldap 这个库缺少 [root@mgmserver ~]#yum install openldap* [root@mgmserver ~]# rpm -qa |grep openldap openldap-clients-2.3.43-3.el5openldap-2.3.43-3.el5openldap-devel-2.3.43-3.el5openldap-servers-2.3.43-3.el5openldap-servers-sql-2.3.43-3.el5openldap-servers-overlays-2.3.43-3.el5

 

1、安装LNMP 所需的安装包有点多,要耐心.......,下载的链接张老师的博客上有:

http://sysoev.ru/nginx/nginx-0.8.46.tar.gz

#nginx主程序包

http://www.php.net/get/php-5.2.14.tar.gz/from/this/mirror

#PHP主程序包

 http://php-fpm.org/downloads/php-5.2.14-fpm-0.5.14.diff.gz

#PHP的FastCGI进程管理补丁包

 http://dev.mysql.com/get/Downloads/MySQL-5.5/mysql-5.5.3-m3.tar.gz/from/http://mysql.he.net/

#mysql主程序包

http://ftp.gnu.org/pub/gnu/libiconv/libiconv-1.13.1.tar.gz

 

libiconv库是一个基于GNU协议的开源库,主要是解决多语言编码处理转换等应用问题;由于历史原因,国际化的文字常常由于语言或者国家的原因使用不同的编码。随着互联网时代的到来,通过互联网进行文字交流也逐渐增多:浏览外国的网站,这个时候字符编码的转换变得尤为重要。这带来了一个问题,就是许多字符在某一种编码方式中没有。为了解决这种混乱,Unicode的编码方式被建立。 Unicode是一种超级编码包含了所有这些编码的字符集,因此一些新的文本格式像XML的默认编码方式就是Unicode.但是很多老式的计算机还在使用当地的传统的字符编码方式。而一些程序,例如邮件程序和浏览器必须能在这些不同的用户编码之间作转换。其他的一些程序则内置支持Unicode,以顺利支持国际化的处理,但是仍然有在Unicode和其他的传统编码之间转换的需求。GNU的libiconv就是为这两种应用设计的编码转换库。libiconv库为需要做转换的应用提供了一个iconv()的函数,以实现一个字符编码到另一个字符编码的转换。

 

 

 

 

http://downloads.sourceforge.net/mcrypt/libmcrypt-2.5.8.tar.gz?modtime=1171868460&big_mirror=0

#安全线程加密库主程序包

http://downloads.sourceforge.net/mcrypt/mcrypt-2.6.8.tar.gz?modtime=1194463373&big_mirror=0

#Mcrypt是一个功能强大的加密算法扩展库,它包括有22种算法

http://pecl.php.net/get/memcache-2.2.5.tgz

#memcache是一个高性能的分布式的内存对象缓存系统,通过在内存里维护一个统一的巨大的hash表,它能够用来存储各种格式的数据,包括图像、视频、文件以及数据库检索的结果等。Memcache是danga.com的一个项目,最早是为 LiveJournal 服务的,最初为了加速 LiveJournal 访问速度而开发的,后来被很多大型的网站采用。目前全世界不少人使用这个缓存项目来构建自己大负载的网站,来分担数据库的压力。起初作者编写它可能是为了提高动态网页应用,为了减轻数据库检索的压力,来做的这个缓存系统。它的缓存是一种分布式的,也就是可以允许不同主机上的多个用户同时访问这个缓存系统, 这种方法不仅解决了共享内存只能是单机的弊端,同时也解决了数据库检索的压力,最大的优点是提高了访问获取数据的速度!基于memcache作者对分布式 cache的理解和解决方案。 memcache完全可以用到其他地方 比如分布式数据库, 分布式计算等领域。  

http://downloads.sourceforge.net/mhash/mhash-0.9.9.9.tar.gz?modtime=1175740843&big_mirror=0

#Mhash扩展库,Mhash扩展库支持12种混编算法

ftp://ftp.csx.cam.ac.uk/pub/software/programming/pcre/pcre-8.10.tar.gz

 

#正则表达式扩展主程序包

http://bart.eaccelerator.net/source/0.9.6.1/eaccelerator-0.9.6.1.tar.bz2

#eAccelerator是一个自由开放源码php加速器,优化和动态内容缓存,提高了php脚本的缓存性能,使得PHP脚本在编译的状态下,对服务器的开销几乎完全消除。 它还有对脚本起优化作用,以加快其执行效率。使您的PHP程序代码执效率能提高1-10倍;

http://pecl.php.net/get/PDO_MYSQL-1.0.2.tgz

#PDO 是 PHP 数据对象的缩写, 是一种访问数据库的更便捷、安全的途径。通过该方式,数据库开发者可以更方便地写出移植性较高的代码。PDO 并不是类似于 PearDB 的数据库抽象层,而 更像一种采用了统一 API (应用编程接口)的数据访问层。

如何启用PDO?要启用 PDO 配置,须打开 pdo 、pdo_sqlite、pdo_mysql等所的扩展模块

http://blog.s135.com/soft/linux/nginx_php/imagick/ImageMagick.tar.gz

#是一个免费的创建、编辑、合成图片的软件。它可以读取、转换、写入多种格式的图片。图片切割、颜色替换、各种效果的应用,图片的旋转、组合,文本,直线,多边形,椭圆,曲线,附加到图片伸展旋转。ImageMagick是免费软件:全部源码开放,可以自由使用,复制,修改,发布。它遵守GPL许可协议。它可以运行于大多数的操作系统。ImageMagick的大多数功能的使用都来源于命令行工具。通常来说,它可以支持以下程序语言: Perl, C, C++, Python, PHP, Ruby, Java

http://pecl.php.net/get/imagick-2.3.0.tgz

#一般用php处理图片都是使用GD库或者GD2的函数库,一般编译php环境都会搭上GD库,大多数开源程序也是用GD来处理图片的,但是它只能现实诸如调整大小、增加水印等基础功能,要想用GD来做复杂图形是非常困难的。基于命令行的图像处理软件ImageMagick,能实现非常丰富的功能。如果服务器上安装了ImageMagick,php脚本可以使用 shell命令来完成,也可以用php的原生函数库Imagick或者MagickWandForPHP函数来调用ImageMagick软件来实现。因为Linux系统下PHP往往没有执行shell的权限,直接用shell来操作ImageMagick不太可能,综合考虑,Imagick函数库连接到ImageMagick软件比较好,而且是面向对象方式的。

 

 

2、安装php(fastcgi模式)

 

(1)、安装php所需的支持库

 [root@mgmserver tar_packet]# tar -zxvf libiconv-1.13.1.tar.gz -C ../install_packet/[root@mgmserver libiconv-1.13.1]# ./configure --prefix=/usr/local[root@mgmserver libiconv-1.13.1]# make[root@mgmserver libiconv-1.13.1]# make install[root@mgmserver tar_packet]# tar -zxvf libmcrypt-2.5.8.tar.gz -C ../install_packet/[root@mgmserver libmcrypt-2.5.8]# ./configure[root@mgmserver libmcrypt-2.5.8]# make[root@mgmserver libmcrypt-2.5.8]# make install[root@mgmserver libltdl]# /sbin/ldconfig      (配置动态连接器(ld)运行时邦定)[root@mgmserver libltdl]# cd libltdl/[root@mgmserver libltdl]# ./configure --enable-ltdl-install[root@mgmserver libltdl]# make[root@mgmserver libltdl]# make install[root@mgmserver tar_packet]# tar -zxvf mhash-0.9.9.9.tar.gz -C ../install_packet/[root@mgmserver install_packet]# cd mhash-0.9.9.9/[root@mgmserver mhash-0.9.9.9]# ./configure[root@mgmserver mhash-0.9.9.9]# make[root@mgmserver mhash-0.9.9.9]# make install[root@server5 mhash-0.9.9.9]# ln -s /usr/local/lib/* /usr/lib     (这一步不用做了 ,做完成上面步骤后/usr/lib下面已经存在了)

[root@localhost install_packet]# ln -s /usr/local/lib/libmcrypt.la /usr/lib/libmcrypt.la[root@localhost install_packet]# ln -s /usr/local/lib/libmcrypt.so /usr/lib/libmcrypt.so[root@localhost install_packet]# ln -s /usr/local/lib/libmcrypt.so.4 /usr/lib/libmcrypt.so.4[root@localhost install_packet]# ln -s /usr/local/lib/libmcrypt.so.4.4.8 /usr/lib/libmcrypt.so.4.4.8

[root@localhost install_packet]# ln -s /usr/local/lib/libmhash.a /usr/lib/libmhash.a[root@localhost install_packet]# ln -s /usr/local/lib/libmhash.la /usr/lib/libmhash.la[root@localhost install_packet]# ln -s /usr/local/lib/libmhash.so /usr/lib/libmhash.so[root@localhost install_packet]# ln -s /usr/local/lib/libmhash.so.2 /usr/lib/libmhash.so.2[root@localhost install_packet]# ln -s /usr/local/lib/libmhash.so.2.0.1 /usr/lib/libmhash.so.2.0.1

[root@localhost install_packet]# ln -s /usr/local/bin/libmcrypt-config /usr/bin/libmcrypt-config

[root@mgmserver tar_packet]# tar -zxvf mcrypt-2.6.8.tar.gz -C ../install_packet/[root@mgmserver mcrypt-2.6.8]# /sbin/ldconfig[root@mgmserver mcrypt-2.6.8]# ./configure[root@mgmserver mcrypt-2.6.8]# make[root@mgmserver mcrypt-2.6.8]# make install

 

(2)、安装mysql

[root@mgmserver tar_packet]# groupadd mysql[root@mgmserver tar_packet]# useradd -g mysql mysql[root@mgmserver tar_packet]#tar -zxvf mysql-5.5.3-m3.tar.gz -C ../install_packet/[root@mgmserver mysql-5.5.3-m3]# ./configure --prefix=/usr/local/mysql --enable-assembler --with-charset=utf8 --with-extra-charsets=complex --enable-thread-safe-client --with-big-tables --with-readline --with-ssl --with-embedded-server --enable-local-infile --with-plugins=innobase --with-mysqld-ldflags=-all-static --with-client-ldflags=-all-static --with-unix-socket-path=/usr/local/mysql/tmp/mysql.sock

[root@mgmserver mysql-5.5.3-m3]# make[root@mgmserver mysql-5.5.3-m3]# make install[root@mgmserver mysql-5.5.3-m3]# cp support-files/my-large.cnf /etc/my.cnf[root@mgmserver mysql]# pwd/usr/local/mysql

 

 [root@mgmserver mysql]# bin/mysql_install_db --user=mysqlInstalling MySQL system tables...100903 13:30:41 [ERROR] /usr/local/mysql/libexec/mysqld: unknown variable 'thread_concurren                 cy=8'100903 13:30:41 [ERROR] Aborting100903 13:30:41 [Note] /usr/local/mysql/libexec/mysqld: Shutdown complete

.......

mysql 初始化报错,发现网上有哥们已经解决了这个问题,实在是强大,原因是my.cnf中有一行:

 

thread_concurrency = 8

thread_concurrency这个变量,意思是并发的线程数,并且根据给的解释是该参数取值为服务器逻辑CPU数量×2,而如果每颗物理CPU又支持H.T超线程,所以实际取值为4 × 2 = 8。而我这个机器是ADM闪龙3000 单核的CPU,并不符合它的要求,所以它提示“unknown variable ‘thread_concurrency=8′”是个未知变量。对my.cnf做一些修改,把’thread_concurrency=8′注释掉 

重新初始化OK

[root@mgmserver mysql]# bin/mysql_install_db --user=mysqlInstalling MySQL system tables...OKFilling help tables...OKTo start mysqld at boot time you have to copysupport-files/mysql.server to the right place for your system  ...........

[root@localhost mysql]# chown -R root .[root@localhost mysql]# chown -R mysql var[root@localhost mysql]# chgrp -R mysql . 

[root@mgmserver mysql]# cp share/mysql/mysql.server /etc/init.d/mysqld[root@mgmserver mysql]# chkconfig --add mysqld[root@mgmserver mysql]# cd /etc/init.d/[root@mgmserver init.d]# chmod +x mysqld[root@mgmserver init.d]# chkconfig --list mysqldmysqld          0:关闭  1:关闭  2:启用  3:启用  4:启用  5:启用  6:关闭[root@mgmserver init.d]# service mysqld startStarting MySQL                                             [确定][root@mgmserver init.d]# cp /usr/local/mysql/bin/* /sbin/[root@mgmserver init.d]# mysqlWelcome to the MySQL monitor.  Commands end with ; or \g.Your MySQL connection id is 1Server version: 5.5.3-m3-log Source distributionType 'help;' or '\h' for help. Type '\c' to clear the current input statement.mysql> show databases;+--------------------+| Database           |+--------------------+| information_schema || mysql              || performance_schema || test               |+--------------------+4 rows in set (0.00 sec)mysql> exitBye[root@mgmserver init.d]# mysqladmin -u root -h localhost password 'mysql'[root@mgmserver init.d]# mysqlERROR 1045 (28000): Access denied for user 'root'@'localhost' (using password: NO)[root@mgmserver init.d]#[root@mgmserver init.d]# mysql -u root -pEnter password:Welcome to the MySQL monitor.  Commands end with ; or \g.Your MySQL connection id is 4Server version: 5.5.3-m3-log Source distributionType 'help;' or '\h' for help. Type '\c' to clear the current input statement.mysql> show databases;

(3)、编译安装pHP (fastcgi模式)

[root@mgmserver tar_packet]# tar -zxvf php-5.2.14.tar.gz -C ../install_packet/

 

[root@mgmserver php-5.2.14]# pwd/home/install_packet/php-5.2.14

[root@localhost install_packet]# gzip -cd php-5.2.14-fpm-0.5.14.diff.gz |patch -d php-5.2.14 -p1

[root@mgmserver php-5.2.14]# ./configure --prefix=/usr/local/php --with-config-file-path=/usr/local/php/etc --with-mysql=/usr/local/mysql --with-mysqli=/usr/local/mysql/bin/mysql_config --with-iconv-dir=/usr/local --with-freetype-dir --with-jpeg-dir --with-png-dir --with-zlib --with-libxml-dir=/usr --enable-xml --disable-rpath --enable-discard-path --enable-safe-mode --enable-bcmath --enable-shmop --enable-sysvsem --enable-inline-optimization --with-curl --with-curlwrappers --enable-mbregex --enable-fastcgi --enable-fpm --enable-force-cgi-redirect --enable-mbstring --with-mcrypt --with-gd --enable-gd-native-ttf --with-openssl --with-mhash -enable-pcntl --enable-sockets --with-ldap --with-ldap-sasl --with-xmlrpc --enable-zip --enable-soap[root@mgmserver php-5.2.14]# make ZEND_EXTRA_LIBS='-liconv'[root@mgmserver php-5.2.14]# make install[root@mgmserver php-5.2.14]# cp php.ini-dist /usr/local/php/etc/php.ini

 (4)、安装PHP扩展

[root@mgmserver tar_packet]# tar -zxvf memcache-2.2.5.tgz -C ../install_packet/[root@mgmserver memcache-2.2.5]# /usr/local/php/bin/phpize[root@mgmserver memcache-2.2.5]# ./configure --with-php-config=/usr/local/php/bin/php-config[root@mgmserver memcache-2.2.5]# make[root@mgmserver memcache-2.2.5]# make installInstalling shared extensions:     /usr/local/php/lib/php/extensions/no-debug-non-zts-20060613/[root@mgmserver tar_packet]# tar -jxvf eaccelerator-0.9.6.1.tar.bz2 -C ../install_packet/[root@mgmserver install_packet]# cd eaccelerator-0.9.6.1/[root@mgmserver eaccelerator-0.9.6.1]# /usr/local/php/bin/phpize[root@mgmserver eaccelerator-0.9.6.1]# ./configure --enable-eaccelerator=shared --with-php-config=/usr/local/php/bin/php-config[root@mgmserver eaccelerator-0.9.6.1]# make[root@mgmserver eaccelerator-0.9.6.1]# make installInstalling shared extensions:     /usr/local/php/lib/php/extensions/no-debug-non-zts-20060613/[root@mgmserver tar_packet]# tar -zxvf PDO_MYSQL-1.0.2.tgz -C ../install_packet/[root@mgmserver install_packet]# cd PDO_MYSQL-1.0.2/[root@mgmserver PDO_MYSQL-1.0.2]# /usr/local/php/bin/phpize[root@mgmserver PDO_MYSQL-1.0.2]# ./configure --with-php-config=/usr/local/php/bin/php-config --with-pdo-mysql=/usr/local/mysql[root@mgmserver PDO_MYSQL-1.0.2]# make[root@mgmserver PDO_MYSQL-1.0.2]# make installInstalling shared extensions:     /usr/local/php/lib/php/extensions/no-debug-non-zts-20060613[root@mgmserver tar_packet]# tar -zxvf ImageMagick.tar.gz -C ../install_packet/[root@mgmserver ImageMagick-6.5.1-2]# ./configure[root@mgmserver ImageMagick-6.5.1-2]# make[root@mgmserver ImageMagick-6.5.1-2]# make install[root@mgmserver tar_packet]# tar -zxvf imagick-2.3.0.tgz -C ../install_packet/[root@mgmserver install_packet]# cd imagick-2.3.0/[root@mgmserver imagick-2.3.0]# /usr/local/php/bin/phpize[root@mgmserver imagick-2.3.0]# ./configure --with-php-config=/usr/local/php/bin/php-config[root@mgmserver imagick-2.3.0]# make[root@mgmserver imagick-2.3.0]# make installInstalling shared extensions:     /usr/local/php/lib/php/extensions/no-debug-non-zts-20060613/

(5)、修改php.ini文件

找到491行的extension_dir = "./"修改为  extension_dir = "/usr/local/php/lib/php/extensions/no-debug-non-zts-20060613" 指定模块所在的位置;在这行后面加上    493  extension = "imagick.so"    494  extension = " memcache.so"    495  extension = "pdo_mysql.so"在 101行处    修改 output_buffering = Off为 output_buffering = On把523 处的注释去掉, cgi.fix_pathinfo=0 防止nginx文件类型错误解析漏洞

6、配置php加速eaccelerator

创建缓存文件夹;

[root@mgmserver local]# mkdir eaccelerator_cache

在php.ini配置文件末尾加上如下:   1290 [eaccelerator]   1291   extension=/usr/local/php/lib/php/extensions/no-debug-non-zts-20060613/eaccelerator.so   1292   eaccelerator.shm_size="32"   1293   eaccelerator.cache_dir="/usr/local/eaccelerator_cache"   1294   eaccelerator.enable="1"   1295   eaccelerator.optimizer="1"   1296   eaccelerator.check_mtime="1"   1297   eaccelerator.debug="0"   1298   eaccelerator.filter=""   1299   eaccelerator.shm_max="0"   1300   eaccelerator.shm_ttl="3600"   1301   eaccelerator.shm_prune_period="360"   1302   eaccelerator.shm_only="0"   1303   eaccelerator.compress="1"   1304   eaccelerator.compress_level="9" 

(7)、悲剧了,空余的机器被拿去用了,只好换个机器,创建www 用户和组,及两个虚拟主机域名目录www.nginx.com与web.nginx.com

[root@mgmserver ~]# groupadd www[root@mgmserver ~]# useradd -g www www[root@nginx ~]# mkdir -p /web/htdocs/www.nginx.com[root@nginx ~]# chown -R www:www /web/htdocs/www.nginx.com[root@nginx ~]# mkdir -p /web/htdocs/web.nginx.com[root@nginx ~]# chown -R www:www /web/htdocs/web.nginx.com/

 8、修改php-fpm配置文件,黄色标记的是修改值

    1 <?xml version="1.0" ?>      2 <configuration>      3      4         All relative paths in this config are relative to php's install prefix      5      6         <section name="global_options">      7      8                 Pid file      9                 <value name="pid_file">/usr/local/php/logs/php-fpm.pid</value>     10     11                 Error log file     12                 <value name="error_log">/usr/local/php/logs/php-fpm.log</value>     13     14                 Log level     15                 <value name="log_level">notice</value>     16     17                 When this amount of php processes exited with SIGSEGV or SIGBUS ...     18                 <value name="emergency_restart_threshold">10</value>     19     20                 ... in a less than this interval of time, a graceful restart will be initiated.     21                 Useful to work around accidental curruptions in accelerator's shared memory.     22                 <value name="emergency_restart_interval">1m</value>     23     24                 Time limit on waiting child's reaction on signals from master     25                 <value name="process_control_timeout">5s</value>     26     27                 Set to 'no' to debug fpm     28                 <value name="daemonize">yes</value>     29     30         </section>     31     32         <workers>     33     34                 <section name="pool">     35     36                         Name of pool. Used in logs and stats.     37                         <value name="name">default</value>     38     39                         Address to accept fastcgi requests on.     40                         Valid syntax is 'ip.ad.re.ss:port' or just 'port' or '/path/to/unix/socket'     41                         <value name="listen_address">127.0.0.1:9000</value>     42     43                         <value name="listen_options">    44     45                                 Set listen(2) backlog     46                                 <value name="backlog">-1</value>     47     48                                 Set permissions for unix socket, if one used.     49                                 In Linux read/write permissions must be set in order to allow connections from web server.     50                                 Many BSD-derrived systems allow connections regardless of permissions.     51                                 <value name="owner"></value>     52                                 <value name="group"></value>     53                                 <value name="mode">0666</value>     54                         </value>     55     56                         Additional php.ini defines, specific to this pool of workers.     57                         <value name="php_defines">     58                 <!--            <value name="sendmail_path">/usr/sbin/sendmail -t -i</value>            -->     59                 <!--            <value name="display_errors">0</value>                                                          -->     60                         </value>     61     62                         Unix user of processes     63                 <!--    <value name="user">www</value>                          -->     64     65                         Unix group of processes     66                 <!--    <value name="group">www</value>         -->     67     68                         Process manager settings     69                         <value name="pm">     70     71                                 Sets style of controling worker process count.     72                                 Valid values are 'static' and 'apache-like'     73                                 <value name="style">static</value>     74     75                                 Sets the limit on the number of simultaneous requests that will be served.     76                                 Equivalent to Apache MaxClients directive.     77                                 Equivalent to PHP_FCGI_CHILDREN environment in original php.fcgi     78                                 Used with any pm_style.     79                                 <value name="max_children">64</value>(如果机器内存小于3G,可以设置64个进程)     80     81                                 Settings group for 'apache-like' pm style     82                                 <value name="apache_like">     83     84                                         Sets the number of server processes created on startup.     85                                         Used only when 'apache-like' pm_style is selected     86                                         <value name="StartServers">20</value>    87     88                                         Sets the desired minimum number of idle server processes.     89                                         Used only when 'apache-like' pm_style is selected     90                                         <value name="MinSpareServers">5</value>     91     92                                         Sets the desired maximum number of idle server processes.     93                                         Used only when 'apache-like' pm_style is selected     94                                         <value name="MaxSpareServers">35</value>     95     96                                 </value>     97     98                         </value>     99    100                         The timeout (in seconds) for serving a single request after which the worker process will be terminated    101                         Should be used when 'max_execution_time' ini option does not stop script execution for some reason    102                         '0s' means 'off'    103                         <value name="request_terminate_timeout">0s</value>    104    105                         The timeout (in seconds) for serving of single request after which a php backtrace will be dumped to slow.log file    106                         '0s' means 'off'    107                         <value name="request_slowlog_timeout">0s</value>    108    109                         The log file for slow requests    110                         <value name="slowlog">logs/slow.log</value>    111    112                         Set open file desc rlimit    113                         <value name="rlimit_files">65535</value>    114    115                         Set max core size rlimit    116                         <value name="rlimit_core">0</value>    117    118                         Chroot to this directory at the start, absolute path    119                         <value name="chroot"></value>    120    121                         Chdir to this directory at the start, absolute path    122                         <value name="chdir"></value>    123    124                         Redirect workers' stdout and stderr into main error log.    125                         If not set, they will be redirected to /dev/null, according to FastCGI specs    126                         <value name="catch_workers_output">yes</value>    127    128                         How much requests each process should execute before respawn.    129                         Useful to work around memory leaks in 3rd party libraries.    130                         For endless request processing please specify 0    131                         Equivalent to PHP_FCGI_MAX_REQUESTS    132                         <value name="max_requests">500</value>    133    134                         Comma separated list of ipv4 addresses of FastCGI clients that allowed to connect.    135                         Equivalent to FCGI_WEB_SERVER_ADDRS environment in original php.fcgi (5.2.2+)    136                         Makes sense only with AF_INET listening socket.    137                         <value name="allowed_clients">127.0.0.1</value>    138    139                         Pass environment variables like LD_LIBRARY_PATH    140                         All $VARIABLEs are taken from current environment    141                         <value name="environment">    142                                 <value name="HOSTNAME">$HOSTNAME</value>    143                                 <value name="PATH">/usr/local/bin:/usr/bin:/bin</value>    144                                 <value name="TMP">/tmp</value>    145                                 <value name="TMPDIR">/tmp</value>    146                                 <value name="TEMP">/tmp</value>    147                                 <value name="OSTYPE">$OSTYPE</value>    148                                 <value name="MACHTYPE">$MACHTYPE</value>    149                                 <value name="MALLOC_CHECK_">2</value>    150                         </value>    151    152                 </section>    153    154         </workers>    155    156 </configuration>

 

 

(9)、启动php-cgi进程,监听127.0.0.1的9000端口,进程数为64

把配置文件的63行和66行修改如下:

     62                         Unix user of processes     63                   <value name="user">www</value>                           64     65                         Unix group of processes     66                  <value name="group">www</value>      

切记要把63行和66行的注释符号去掉不然在启动时会出错的!

[ERROR] fpm_unix_conf_wp(), line 124: please specify user and group other than root, pool 'default'

[root@nginx ~]# /usr/local/php/sbin/php-fpm startStarting php_fpm . done

[root@nginx nginx]# netstat -ntplActive Internet connections (only servers)Proto Recv-Q Send-Q Local Address               Foreign Address             State       PID/Program nametcp        0      0 127.0.0.1:2208              0.0.0.0:*                   LISTEN      2630/hpiodtcp        0      0 0.0.0.0:833                 0.0.0.0:*                   LISTEN      2347/rpc.statdtcp        0      0 127.0.0.1:9000              0.0.0.0:*                   LISTEN      5285/php-cgi

........

3、安装nginx

(1)、安装nginx及所需要的pcre库

[root@nginx pcre-8.10]# ./configure[root@nginx pcre-8.10]# make[root@nginx pcre-8.10]# make install[root@nginx install_packet]# cd nginx-0.8.48/[root@nginx nginx-0.8.48]# ./configure --user=www --group=www --prefix=/usr/local/nginx --with-http_stub_status_module --with-http_ssl_module[root@nginx nginx-0.8.48]#make[root@nginx nginx-0.8.48]#make install

(2)、创建nginx的日志文件[root@nginx /]# mkdir -p web/nginxlogs[root@nginx /]# chmod +w web/nginxlogs/[root@nginx /]# chown -R www:www web/nginxlogs/

(3)、修改nginx的配置文件如下:

     1      2 user www www;      3 worker_processes  1;      4 error_log    /web/nginxlogs/error.log  crit;      5 pid        /usr/local/nginx/nginx.pid;      6 worker_rlimit_nofile 65535;      7 events {      8     use epoll;      9     worker_connections  1024;     10 }     11     12     13 http {     14     include       mime.types;     15     default_type  application/octet-stream;     16     17     server_names_hash_bucket_size 128;     18     client_header_buffer_size 32k;     19     large_client_header_buffers 4 32k;     20     client_max_body_size 8m;     21     22     23     sendfile        on;     24     tcp_nopush     on;     25     26     #keepalive_timeout  0;     27     keepalive_timeout  60;     28     tcp_nodelay    on;     29     30     fastcgi_connect_timeout 300;     31     fastcgi_send_timeout    300;     32     fastcgi_read_timeout     300;     33     fastcgi_buffer_size     64k;     34     fastcgi_buffers       4 64k;     35     fastcgi_busy_buffers_size 128k;     36     fastcgi_temp_file_write_size 128k;     37     38     gzip  on;     39     gzip_min_length        1k;     40     gzip_buffers      4    16k;     41     gzip_http_version      1.0;     42     gzip_comp_level  2;     43     gzip_types  text/plain application/x-javascript text/css application/xml;        44     gzip_vary on;     45     46     server {     47         listen       80;     48         server_name  www.nginx.com;     49         root   /web/htdocs/www.nginx.com;     50         index  index.html index.htm index.php;     51     52         location ~.*\.(php|php5)?$ {     53              fastcgi_pass   127.0.0.1:9000;     54              fastcgi_index  index.php;     55              include        fastcgi.conf;     56         }     57     58         location ~.*\.(gif|jpg|jpeg|png|bmp|swf)$     59         {     60             expires    30d;     61         }     62         location ~.*\.(js|css)$     63         {     64             expires    1h;     65         }     66         log_format  wwwaccess  '$remote_addr - $remote_user [$time_local] "$request" '     67                             '$status $body_bytes_sent "$http_referer" '     68                             '"$http_user_agent" $http_x_forwarded_for';     69         access_log  /web/nginxlogs/wwwaccess.log  wwwaccess;     70 }     71     72     73    server {     74          listen       80;     75          server_name  web.nginx.com;     76          root   /web/htdocs/web.nginx.com;     77          index  index.html index.htm index.php;     78          location ~.*\.(php|php5)?$     79          {     80          fastcgi_pass   127.0.0.1:9000;     81          fastcgi_index  index.php;     82          include        fastcgi.conf;     83          }     84     log_format  webaccess  '$remote_addr - $remote_user [$time_local] "$request"'

     85                         '$status $body_bytes_sent "$http_referer"'     86                         '"$http_user_agent" $http_x_forwarded_for';     87      access_log  /web/nginxlogs/webaccess.log  webaccess;     88     }     89 }(4)、保持conf/下fastcgi.conf配置文件不变就可以了

(5)、启动nginx

[root@nginx nginx]#/usr/

 [root@nginx nginx]# /usr/local/nginx/sbin/nginx(6)、开机启动nginx 与php

[root@nginx nginxlogs]# vi /etc/rc.local

ulimit -SHn 65535/usr/local/php/sbin/php-fpm start/usr/local/nginx/sbin/nginx 

(7)修改文件中先检查配置文件是否正确,然后在启动

[root@nginx nginxlogs]# /usr/local/nginx/sbin/nginx -tthe configuration file /usr/local/nginx/conf/nginx.conf syntax is okconfiguration file /usr/local/nginx/conf/nginx.conf test is successful 

[root@nginx nginxlogs]# kill -HUP `cat /usr/local/nginx/nginx.pid`或者

[root@nginx nginxlogs]# /usr/loca/nginx/sbin/nginx -s reload

4、测试

在www.nginx.com的文档目录中

[root@nginx www.nginx.com]# vi index.php/<?php  phpinfo(); ?>类似的在web.nginx.com中新建一个index.php文件:

 

 

 

 

基本上算是完成了涨老师的实验配置

转载于:https://www.cnblogs.com/jym-sunshine/p/4821335.html

最新回复(0)