经过前面学习,对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