CentOS+Nginx+PHP+Mysql+安全指南全环境搭建笔记
centos7配置nginx+php5.6+mysql5.6+netcore2.0

Centos7配置.netcore+nginx+mysql+php 1 安装nginxyum install epel-releaseyum install nginx启动nginx服务systemctl restart nginx检查服务是否起来ps –ef|grep nginx修改配置文件cd /etc/nginxcp nginx.conf nginx.conf.bakcp nginx.conf.default nginx.conf浏览器访问,测试是否安装成功加入守护进程,使其开机自启动sytemctl enable nginx配置文件位置:/etc/nginx/nginx.conf网站位置:/usr/share/nginx/htm2 安装.net core 2.0检查系统安装glibc的版本cd /usr/lib64strings libstdc++.so.6|grep GLIBCGLIBCXX大于3.4.18sh -c 'echo -e "[packages-microsoft-com-prod]\nname=packages-microsoft-com-prod \nbaseurl=https:///yumrepos/microsoft-rhel7. 3-prod\nenabled=1\ngpgcheck=1\ngpgkey=https://packages.microsoft .com/keys/microsoft.asc" > /etc/yum.repos.d/dotnetdev.repo'yum updateyum install libunwind libicuyum install dotnet-sdk-2.0.0dotnet –version命令验证安装是否成功3 安装mysql5.6检查是否已经安装mysqlyum list installed | grep mysql给centos源,并选择较新的源wget /get/mysql-community-release-el7-5.noarch.rpmyum localinstall mysql-community-release-el7-5.noarch.rpmyum repolist all | grep mysql如果执行yum-config-manager报没有该命令,执行下面语句【yum -y install yum-utils】yum-config-manager --disable mysql55-communityyum-config-manager --disable mysql57-communityyum-config-manager --disable mysql57-community-dmr查看可以安装版本yum repolist enabled | grep mysqlyum install mysql-community-server启动myql数据库服务service mysqld start添加守护进程,使其可以开机自启动systemctl enable mysqld4 安装php5.6yum list installed | grep phpyum install epel-releaserpm -ivh /enterprise/remi-release-7.rpm查看5.6的可安装包yum list--enablerepo=remi--enablerepo=remi-php56|grep phpyum install --enablerepo=remi --enablerepo=remi-php56 php php-fpmphp-gd php-ldap php-odbc php-pear php-xml php-xmlrpc php-mbstring php-snmp php-soap curl curl-devel php-mysql启动php-fpmsystemctl start php-fpm添加php-fpm为守护进程systemctl enable php-fpm5 部署.net项目做一个测试项目创建一个项目文件夹mkdir /var/webtestdotnet new mvcdotnet restoredotnet publish –c release启动.net core项目[root@localhost publish]# dotnet webtest.dll在nginx配置方向代理编辑nginx配置文件server {listen 80;server_name ;location / {proxy_pass http://localhost:5000;proxy_http_version 1.1;proxy_set_header Upgrade $http_upgrade;proxy_set_header Connection keep-alive;proxy_set_header Host $host;proxy_cache_bypass $http_upgrade;}}测试访问如果出现网关502错误,因为selinux保护机制所导致yum install policycoreutils-pythonsudo cat /var/log/audit/audit.log | grep nginx | grep denied | audit2allow -M mynginxsudo semodule -i mynginx.pp6 配置.net core项目为守护进程目前存在三个问题问题1: Core应用程序运行在shell之中,如果关闭shell则会发现 Core应用被关闭,从而导致应用无法访问,这种情况当然是我们不想遇到的,而且生产环境对这种情况是零容忍的。
最详细全面的CENTOS5.5 MYSQL NGINX PHP5.3.3安全安装手册

CentOs5安装操作文档目录1.安装CentOs5操作系统 (1)1.1系统安装 (1)1.2后续配置 (21)1.2.1去掉启动图形界面 (21)1.2.2防火墙配置 (21)2.安装MYSQL (22)3.安装gd (25)4.安装Nginx (26)5.安装PHP (28)6.安装Zend FrameWork (32)注:本安装文档只是说明在安装CentOs5过程中的具体操作,并未涉及到安装过程的需要掌握的系统知识。
:)1.安装CentOs5操作系统1.1系统安装1.首先要设置计算机的BIOS启动顺序为光驱启动,保存设置后将安装光盘放入光驱,重新启动计算机。
2.进入启动画面,按回车键<Enter>3.进入选择选择安装过程语言界面Choose a Language:选择简体中文:Chinese(Simplified),按回车键继续。
4.会提示Language Unavailable:原因是目前是字符界面,无法显示中文。
要到后面图形界面启动时,才能显示中文。
直接按回车键继续。
5.键盘布局类型选择:一般选择默认的“us”即可,按回车继续。
6.安装介质选择:因为我们从光盘安装,所以选择:Local CDROM,按回车继续。
7.如下图所示,如果你确定你的DVD光碟没有问题的话,可以直接单击“Skip”按钮跳过,否则单击“OK”按钮检测安装盘的完整性,但这样会花费很长时间。
8.进入安装欢迎界面,如下图所示。
9.进入分区方式选择界面:一般我们希望自己定义硬盘分区结构,所以,选择“建立自定义的分区结构”。
10.如果是全新硬盘,可能会发生如下错误信息,这个信息仅提示你,安装程序找不到分区表。
此时,直接按下“Yes”按钮初始化这个设备,如下图所示。
11.点击下一步后,出现手工分区界面12.创建启动分区:点击“新建”,挂载点选择“/boot”,文件类型选择“ext3”,大小填“100MB”,点“确定”继续。
Centos7以上版本搭建Apache+PHP+Mysql+PhpMyAdmin环境搭建

[root@localhost ~]# yum -y install mysql
安装提示如下:
Installed:
mariadb.x86_64 1:5.5.50-1.el7_2
Dependency Updated:
mariadb-libs.x86_64 1:5.5.50-1.el7_2
2/etc/init.d/iptables stop关闭防火墙
3 开放端口
iptables -A INPUT -p tcp --dport 22 -j ACCEPT
iptables -A OUTPUT -p tcp --sport 22 -j ACCEPT
iptables -A INPUT -p tcp --dport 80 -m state --state NEW,ESTABLISHED -j ACCEPT
Centos7以上版本搭建Apache+PHP+Mysql+PhpMyAdmin环境
作为一家创业公司,盼客科技在开发Y米 App(一个撩妹纸的App)的时候,跟大多数创业团队一样,选择了阿里云作为公司网站和App的服务端。当时最新版的CentOS是7.2,我们毫不犹豫地选择这个最新的版本。但是对于一个新手来说,在阿里云上遇到了很多坑,完全按照阿里云上的帮助和使用说明,基本上是跑不起来的,特别是最后的两个步骤,是很多技术文章都没提到过的。废话少说,直接来实操的:
Dependency Installed:
php-pdo.x86_64 0:5.4.16-36.3.el7_2
Complete!
此时的提示即表示php-mysql安装成功了!
五、安装基本常用扩展包
1、安装Apache扩展包
CentOS6.3系统Yum安装php+spawn-fcgi+nginx和数据库mysql详细教程

rpm 软件(yum 的命令详解请自行) yum 默认只提供了官方给出的软件仓库,如果要使用非官方的软件还需要安装非官方的 yum 仓库,yum 仓库的配置文件位于/etc/yum.repo.d/*.repo 推 荐 的 非 官 方 yum 仓 库 就 是 fadora 项 目 下 的 EPEL 仓 库 , 其 网 址 是 : /wiki/EPEL ,安装并配置此 yum 仓库后可以使用更多的非官方提供 的最新软件和新功能 下载此仓库的 rpm 安装文件并安装(注意选择跟自己系统对应的版本,目前是 centos5、 centos6 两个版本): [root@localhost /]# wget /fedora-e ... ease-6-7.noarch.rpm [root@localhost /]# rpm -ivh epel-release-6-7.noarch.rpm 此时 fadoraproject 的 yum 仓库就可以使用了,可以从中使用更多的软件了。
pid
/var/run/nginx.pid;
events { worker_connections 1024;
}
http {
include
/etc/nginx/mime.types;
default_type application/octet-stream;
log_format main '$remote_addr - $remote_user [$time_local] "$request" ' '$status $body_bytes_sent "$http_referer" ' '"$http_user_agent" "$http_x_forwarded_for"';
[lnmp(centos6.2+nginx+mysql+php)环境搭建系统教程--之第四步mysql安装]
![[lnmp(centos6.2+nginx+mysql+php)环境搭建系统教程--之第四步mysql安装]](https://img.taocdn.com/s3/m/614ef0c805087632311212fa.png)
mysql服务器安装将mysql-5.5.3-m3.tar.gz上传到/software#groupadd mysql#useradd -g mysql mysql#创建mysql用户与组#tar zxf mysql-5.5.3-m3.tar.gz#cd mysql-5.5.3-m3#./configure --prefix=/usr/local/mysql/ --with-extra-charsets=all #make#make install#cp support-files/f /etc/f#/usr/local/mysql/bin/mysql_install_db --user=mysql#chown -R root:mysql /usr/local/mysql/(/usr/local/mysql/var这个目录不存在)#chown -R mysql:mysql /var/lib/mysql/#/usr/local/mysql/bin/mysqld_safe --user=mysql &这样做就可以了:#mkdir /var/run/mysqld#cd /var/run/mysqld#touch mysqld.pid#cd ..#chown -R mysql mysqld .#cd /usr/local/mysql/# cd /var/lib/mysql/# ln -s /var/lib/mysql/mysql.sock /tmp/mysql.sock 为root设置密码:开机启动mysql#cp /usr/local/mysql/share/mysql/mysql.server /etc/rc.d/init.d/mysqld #chown root.root /etc/rc.d/init.d/mysqld#chmod 755 /etc/rc.d/init.d/mysqld#chkconfig --add mysqld#chkconfig --list mysqld#chkconfig --levels 245 mysqld off或者简单点:#echo "/usr/local/mysql/bin/mysqld_safe &" >>/etc/rc.local其它命令杀死进程如:killall -9 mysql。
NginxMySQLPHPZendWeb环境编译安装

Nginx+MySQL+PHP+Zend Web环境编译安装1、yum安装MySQL使用yum来安装MySQL,首先保证系统已经配置了正确的yum源。
# 安装系统组件,大都是一些编译环境、PHP扩展等等,如果这些都使用源代码安装,那应该是一个痛苦的过程。
shell> yum -y install gcc gcc-c++ autoconf makeshell> yum -y install libjpeg libjpeg-devel libpng libpng-devel freetype freetype-devel libxml2 libxml2-devel zlib zlib-devel glibc glibc-devel glib2 glib2-devel bzip2 bzip2-devel ncurses ncurses-devel curl curl-devel e2fsprogs e2fsprogs-devel krb5 krb5-devel libidn libidn-devel openssl openssl-devel openldap openldap-devel openldap-clients openldap-serversshell> yum -y install mysql mysql-devel mysql-server在安装过程中,使用了非官方源进行更新,通过这种方式安装的软件版本分别为: MySQL 5.1.50(截止到2010-09-16)。
2、MySQL 的启动与基本配置系统已经安装好了 MySQL 数据库,稍作配置后然后启动它,因为初次启动会安装数据库文件,所以要对f里的配置进行一些修改,尤其是数据库文件存放位置。
# 复制一个样本,/usr/share/mysql目录下有好多样本,请自主选择。
shell> cp /usr/share/mysql/f /etc/f修改配置文件:# 注:是在原有f基础上进行修改,没有的选项添加。
[lnmp(centos6.2+nginx+mysql+php)环境搭建系统教程--之第五步php安装]
php安装将libiconv-1.13.1.tar.gz上传至/software#tar zxf libiconv-1.13.1.tar.gz#cd libiconv-1.13.1#./configure --prefix=/usr/local/#make && make install#cd ..将libmcrypt-2.5.8.tar.gz 上传至/software#tar zxf libmcrypt-2.5.8.tar.gz#cd libmcrypt-2.5.8#./configure#make && make install#/sbin/ldconfig#cd libltdl#./configure --enable-ltdl-install#make && make install#cd ../../将mhash-0.9.9.9.tar.gz上传至/software#tar zxf mhash-0.9.9.9.tar.gz#cd mhash-0.9.9.9/#./configure#make && make install#cd ../#ln -s /usr/local/lib/ /usr/lib/#ln -s /usr/local/lib/libmcrypt.so /usr/lib/libmcrypt.so#ln -s /usr/local/lib/libmcrypt.so.4 /usr/lib/libmcrypt.so.4#ln -s /usr/local/lib/libmcrypt.so.4.4.8 /usr/lib/libmcrypt.so.4.4.8 #ln -s /usr/local/lib/libmhash.a /usr/lib/libmhash.a#ln -s /usr/local/lib/ /usr/lib/#ln -s /usr/local/lib/libmhash.so /usr/lib/libmhash.so#ln -s /usr/local/lib/libmhash.so.2 /usr/lib/libmhash.so.2#ln -s /usr/local/lib/libmhash.so.2.0.1 /usr/lib/libmhash.so.2.0.1 #ln -s /usr/local/bin/libmcrypt-config /usr/bin/libmcrypt-config将mcrypt-2.6.8.tar.gz上传至/software#tar zxvf mcrypt-2.6.8.tar.gz#cd mcrypt-2.6.8/#/sbin/ldconfig#./configure#make && make install#cd ../将php-5.4.3.tar.gz上传至/softwarephp5.3.3以后的版本源码不需要再打php-fpm补丁,该补丁已集成进php5.3.3, 在编译时,不需再–enable-fastcgi了,在php5.3.3中强制启用fastcgi了。
LNMP服务器配置详解
LNMP服务器配置详解CentOS+Nginx+MySQL+PHP服务器配置详解前言:0,更新163源cd/etc/yum.repos.dmv/etc/yum.repos.d/CentOS-Base.repo/etc/yum.repos.d/CentOS-Base.repo.backup wget /.help/CentOS6-Base-163.repo运行yum makecache生成缓存1,安装CentOS操作系统,本教程使用CentOS6.3版本,安装过程省略。
2,检测系统的编译环境是否已经安装,如:gcc,gcc-c++,make检测编译环境时候安装的命令:rpm-q gcc//检测GCC是否安装rpm-q gcc-c++//检测gcc-c++是否安装rpm-q cmake//检测cmake是否安装如果返回结果为:-bash:rem:command not found表示被检测的环境没有安装。
安装命令:yum-y install gccyum-y install gcc-c++yum-y install cmake//此安装方法必须保证电脑连接到互联网系统自动联网检测,并给出了依赖关系,根据提示按Y,回车,系统会自动下载并完成安装...提示:Complete!表示安装完成。
使用同样的方式安装gcc-c++,此处省略N个字。
3,查询系统是否安装过我们需要的软件检测命令:rpm-qa|grep httpd检测apacherpm-qa|grep php检测phprpm-qa|grep mysql检测mysql如果提示已经安装,需要卸载卸载命令:yum-y remove httpdyum-y remove phpyum-y remove mysql4,关闭selinuxvi/etc/sysconfig/selinux设置SELINUX=disabled5,关闭防火墙iptables-F或者配置vi/etc/sysconfig/iptables或者在系统启动里面关闭开机启动防火墙,当然这样很不安全查看防火墙的启动等级chkconfig--list将对应的启动等级关闭chkconfig--level2345iptables off重启防火墙#/etc/init.d/iptables restart看下状态#/etc/init.d/iptables status6,编写脚本解压tar文件,脚本如下://切换到tar文件夹下,保证源码包都放在一起cd/usr/src/ls*.tar.gz>tar.listfor TAR in`cat tar.list`dotar-zxvf$TARdone7,安装libxml2,系统已经安装2.7.6,可选择安装,需要安装libxml2-devel自动安装:yum install libxml2libxml2-devel手动安装:cd libxml2-2.9.1./configure--prefix=/usr/local/libxml2/make&&make install8,安装libiconvcd libiconv-1.14./configure--prefix=/usr/local/libiconv/make&&make install9,安装libmcrypt-2.5.8cd libmcrypt-2.5.8./configure--prefix=/usr/local/libmcrypt/make&&make installcd libltdl./configure--enable-ltdl-installmake&&make install10,安装zlib,系统已经安装1.2.3版本,需要安装装zlib-devel自动安装:yum install zlib zlib-devel手动安装:cd zlib-1.2.7./configuremake&&make install11,安装libpng,系统已经安装1.2.49版本,需要安装libpng-devel自动安装:yum install libpng libpng-devel手动安装:cd libpng-1.6.9./configure--prefix=/usr/local/libpng/make&&make install12,安装jpegcd jpeg-9a./configure--prefix=/usr/local/jpeg9/--enable-shared--enable-staticmake&&make install13,安装freetype,系统已经安装freetype-2.3.11,需要安装freetype-devel自动安装:yum install freetype freetype-devel手动安装:cd freetype-2.5.2./configure--prefix=/usr/local/freetype--without-pngmake注意:这里会提示:rmdir:删除"/usr/local/freetype/include/freetype2/freetype/internal"失败:没有那个文件或目录make:[install]错误1(忽略)处理方法:mkdir-p/usr/local/freetype/include/freetype2/freetype/internal然后make install14,安装autoconfyum install autoconf15,安装GD库cd gd-2.1.0./configure--prefix=/usr/local/gd2/--with-jpeg=/usr/local/jpeg9/--with-png --with-freetypemake&&make install16,安装pcre,系统已经安装pcre-7.8,需要安装pcre-devel自动安装:yum install pcre pcre-devel手动安装:cd pcre-8.34./configure--prefix=/usr/local/pcremake&&make install17,安装mhashcd mhash-0.9.9.9./configuremake&&make install18,安装mcrypt将libmcrypt库的库文件路径添加到系统变量路径export LD_LIBRARY_PATH=/usr/local/libmcrypt/lib/:$LD_LIBRARY_PATH需要进行一些文件的连接操作,相当于windows系统的快捷方式ln-s/usr/local/libmcrypt/lib//usr/lib/ln-s/usr/local/libmcrypt/lib/libmcrypt.so/usr/lib/libmcrypt.soln-s/usr/local/libmcrypt/lib/libmcrypt.so.4/usr/lib/libmcrypt.so.4ln-s/usr/local/libmcrypt/lib/libmcrypt.so.4.4.8/usr/lib/libmcrypt.so.4.4.8 ln-s/usr/local/libmcrypt/bin/libmcrypt-config/usr/bin/libmcrypt-configln-s/usr/local/lib/libmhash.a/usr/lib/libmhash.aln-s/usr/local/lib//usr/lib/ln-s/usr/local/lib/libmhash.so/usr/lib/libmhash.soln-s/usr/local/lib/libmhash.so.2/usr/lib/libmhash.so.2ln-s/usr/local/lib/libmhash.so.2.0.1/usr/lib/libmhash.so.2.0.1/sbin/ldconfigcd mcrypt-2.6.8/./configure--with-libmcrypt-prefix=/usr/local/libmcryptmake&&make install19,安装ncurses,系统已经安装ncurses-5.7,需要安装ncurses-devel自动安装:yum install ncurses ncurses-devel手动安装:cd ncurses-5.9./configure--with-shared--without-debug--without-ada--enable-overwrite make&&make install20,安装openssl自动安装:yum install openssl openssl-devel21,安装curl,系统已经安装curl-7.19.7,需要安装curl-devel自动安装:yum install curl curl-devel手动安装cd curl-7.30.0./configure--prefix=/usr/local/curl--with-ssl=/usr/local/sslmake&&make install23,安装bison,用来支持Mysql安装自动安装:yum-y install bison24,安装Bzip2,用来支持php安装自动安装:yum-y install bzip2bzip2-devel25,安装xmp,用来支持php安装自动安装:yum-y install libXpm libXpm-devel============================================================================== ================================================================================== ==============26,安装MariaDBcmake\-DCMAKE_INSTALL_PREFIX=/usr/local/mysql\-DMYSQL_DATADIR=/usr/local/mysql/data\-DSYSCONFDIR=/usr/local/mysql/\-DEXTRA_CHARSETS=all\-DDEFAULT_CHARSET=utf8\-DDEFAULT_COLLATION=utf8_general_ci\-DWITH_INNOBASE_STORAGE_ENGINE=1\-DWITH_ARCHIVE_STORAGE_ENGINE=1\-DWITH_BLACKHOLE_STORAGE_ENGINE=1\-DWITH_FEDERATED_STORAGE_ENGINE=1\-DWITH_PARTITION_STORAGE_ENGINE=1\-DWITH_PERFSCHEMA_STORAGE_ENGINE=1\-DMYSQL_UNIX_ADDR=/usr/local/mysql/var/mysqld.sock\-DMYSQL_TCP_PORT=3306\-DWITH_DEBUG=0\-DENABLED_LOCAL_INFILE=1重新cmake前,一定要执行rm-f CMakeCache.txtmakemake install27,配置MariaDBcd/usr/local/mysql因为我的内存是1G的,因此需要复制f文件为mysql的配置文件,内存大于4G,使用f512内存:cp./support-files/f/usr/local/mysql/f1G-2G内存:cp./support-files/f/usr/local/mysql/f2G以上内存:cp./support-files/f/usr/local/mysql/fvi/usr/local/mysql/f在[mysqld]段增加datadir=/usr/local/mysql/datamax_connections=512default-storage-engine=MyISAMcharacter-set-server=utf8#在[mysqld]段修改max_allowed_packet=16M#添加mysql运行的用户和用户组groupadd mysql//添加一个mysql标准组useradd-g mysql mysql//添加mysql用户并加到mysql组中chown-R root.chown-R mysql datachgrp-R mysql.#进入mysql安装目录下的脚本目录cd/usr/local/mysql/scripts#利用mysql_install_db脚本生成新的mysql授权表./mysql_install_db--basedir=/usr/local/mysql--datadir=/usr/local/mysql/data --user=mysql#mysql server在系统中的服务项设置复制服务文件并修改cp/usr/local/mysql/support-files/mysql.server/etc/init.d/mysqldvi/etc/init.d/mysqld修改basedir=/usr/local/mysqldatadir=/usr/local/mysql/datachmod755/etc/init.d/mysqldchkconfig--add mysqld#将mysql加到启动服务列表里chkconfig mysqld on#让系统启动时自动打开mysql服务启动mysqlservice mysqld start#设置root密码,必须先启动mysqlcd/usr/local/mysql/bin./mysqladmin-u root password"123456"./mysql-u root-p提示输入密码mysql>show variables like'%character%';#结果:character_set_database,character_set_server两项都变为utf8了修改密码use mysqlUPDATE user SET Password=PASSWORD('123456')where USER='root'; FLUSH PRIVILEGES;28,安装Nginx为nginx创建用户groupadd wwwuseradd-g www wwwcd nginx-1.4.4./configure\--prefix=/usr/local/nginx\--conf-path=/usr/local/nginx/conf/nginx.conf\--error-log-path=/usr/local/nginx/logs/error.log\--pid-path=/usr/local/nginx/nginx.pid\--lock-path=/usr/local/nginx/nginx.lock\--user=www\--group=www\--with-http_gzip_static_module\--with-http_stub_status_module\--http-fastcgi-temp-path=/usr/local/nginx/fcgi_temp/\--with-pcre=/usr/src/pcre-8.34如果要添加FastDFS模块,需要加入--add-module=/usr/src/fastdfs-nginx-module/srcmake&&make install将Nginx加入到service中vi/etc/init.d/nginxd新建的文件是空白的,需要加入脚本,脚本中部分配置信息需要根据上面写出的返回信息进行配置------------------------------------脚本区--------------------------------------------------------#!/bin/sh#chkconfig:23455525#Description:Startup script for nginx webserver on Debian.Place in/etc/init.d and#run'update-rc.d-f nginx defaults',or use the appropriate command on your #distro.For CentOS/Redhat run:'chkconfig--add nginx'###BEGIN INIT INFO#Provides:nginx#Required-Start:$all#Required-Stop:$all#Default-Start:2345#Default-Stop:016#Short-Description:starts the nginx web server#Description:starts nginx using start-stop-daemon###END INIT INFOPATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin DESC="Nginx Server"NAME=nginxDAEMON=/usr/local/nginx/sbin/$NAMECONFIGFILE=/usr/local/nginx/conf/$NAME.confPIDFILE=/usr/local/nginx/$NAME.pidSCRIPTNAME=/etc/init.d/$NAMEset-e[-x"$DAEMON"]||exit0do_start(){$DAEMON-c$CONFIGFILE||echo-n"Nginx Already Running"}do_stop(){kill-INT`cat$PIDFILE`||echo-n"Nginx Not Running"}do_reload(){kill-HUP`cat$PIDFILE`||echo-n"Nginx Can't Reload" }case"$1"instart)echo-n"Starting$DESC:$NAME"do_startecho".";;stop)echo-n"Stopping$DESC:$NAME"do_stopecho".";;reload|graceful)echo-n"Reloading$DESC configuration..."do_reloadecho".";;restart)echo-n"Restarting$DESC:$NAME"do_stopdo_startecho".";;*)echo"Usage:$SCRIPTNAME{start|stop|reload|restart}">&2 exit3;;esacexit0------------------------------------脚本区--------------------------------------------------------保存退出,然后需要给脚本权限chmod775/etc/init.d/nginxdchkconfig--add nginxd#让入开机启动服务中,相当于windows的servicechkconfig nginxd on#让其开机自动启动,相当于windows的服务设置为自动service nginxd start#立即启动nginx服务29,安装php因为这里需要安装oci8扩展,因此需要先安装oci8先安装,因为需要oci库的支持oracle-instantclient11.2-basic-11.2.0.3.0-1.x86_64.rpmoracle-instantclient11.2-devel-11.2.0.3.0-1.x86_64.rpmrpm-ivh oracle-instantclient*.rpmcd php-5.5.8经验总结:这里建议使用不包含OCI的编译语句,因为这样可以用PHP-OCI8来进行数据库的链接,这样不会出错。
CentOS+Nginx+PHP+MySQL标准生产环境搭建
轻松搞定CentOS+Nginx+PHP+MySQL标准生产环境PHP 5.3.1MySQL 5.0.89Nginx 0.8.33 或0.7.65 (可选)这个可比网上流传的什么一键安装包要好得多,强烈推荐此法安装,适合所有菜鸟和高手。
我服务器上全用的源代码编译安装,也好不到哪去,还很费劲。
我这个装完已经包含php 的一些常用扩展,PDO,eaccelerator,memcache,tidy等等。
CentOS 最小化安装,然后先新建一个repo# vi /etc/yum.repos.d/.repo放入如下内容[]name= Packages for Enterprise Linux 5 - $basearchbaseurl=/centos/5/$basearch/enabled=1gpgcheck=0protect=1启用EPEL repoCentOS i386 输入如下命令rpm -ihv /pub/epel/5/i386/epel-release-5-3.noarch.rpmCentOS x86_64 输入如下命令rpm -ihv /pub/epel/5/x86_64/epel-release-5-3.noarch.rpm然后导入keyrpm --import /etc/pki/rpm-gpg/RPM-GPG-KEY-EPEL复制代码OK,一键安装吧yum -y install nginx mysql-server php-fpm php-cli php-pdo php-mysql php-mcrypt php-mbstring php-gd php-tidy php-xml php-xmlrpc php-pear php-pecl-memcache php-eaccelerator最后yum -y update 一下,全是最新的如果nginx 你要用0.7.65 最新稳定版,把yum -y install nginx换成yum -y install nginx-stable就可以了装完你已经可以这样玩了service mysqld startservice php-fpm startservice nginx start别忘了设置开机启动chkconfig --level 345 mysqld onchkconfig --level 345 php-fpm onchkconfig --level 345 nginx on配置文件都在/etc 下自己找看看安装多自动Dependencies Resolved==========================================================Package Arch Version Repository Size==========================================================Installing:mysql x86_64 5.0.89-1.el5 3.5 Mmysql-server x86_64 5.0.89-1.el5 10 Mnginx x86_64 0.8.33-3.el5 422 kphp-cli x86_64 5.3.1-2.el5 2.4 Mphp-eaccelerator x86_64 2:0.9.6-1.el5 118 kphp-fpm x86_64 5.3.1-2.el5 1.2 Mphp-gd x86_64 5.3.1-2.el5 110 kphp-mbstring x86_64 5.3.1-2.el5 1.1 Mphp-mcrypt x86_64 5.3.1-2.el5 27 kphp-mysql x86_64 5.3.1-2.el5 84 kphp-pdo x86_64 5.3.1-2.el5 91 kphp-pear noarch 1:1.9.0-1.el5 420 kphp-pecl-memcache x86_64 2.2.5-3.el5 44 kphp-tidy x86_64 5.3.1-2.el5 31 kphp-xml x86_64 5.3.1-2.el5 115 kphp-xmlrpc x86_64 5.3.1-2.el5 48 kInstalling for dependencies:gmp x86_64 4.1.4-10.el5 base 201 klibXaw x86_64 1.0.2-8.1 base 329 klibXmu x86_64 1.0.2-5 base 63 klibXpm x86_64 3.5.5-3 base 44 klibedit x86_64 2.11-2.20080712cvs.el5 epel 80 klibmcrypt x86_64 2.5.8-4.el5.centos extras 105 klibtidy x86_64 0.99.0-14.20070615.el5 epel 140 kphp-common x86_64 5.3.1-2.el5 554 ksqlite2 x86_64 2.8.17-5.el5 165 kt1lib x86_64 5.1.1-7.el5 epel 208 kUpdating for dependencies:libevent x86_64 1.4.12-1.el5 129 kTransaction Summary==========================================================Install 26 Package(s)Update 1 Package(s)Remove 0 Package(s)点击下一页,查看Nginx + php-fpm Benchmark 性能测试以下分别测试我本地的虚拟机和VPS 上Nginx + php-fpm 的性能我的本机虚拟机测试,配置为PD930 双核3.0G,2G内存,给虚拟机分配的是1G 内存,安装的系统为CentOS 5.4 64bit测试内容为<?php phpinfo();?>500 并发测试,CPU使用率到了30%,系统负载在10左右,页面打开还是飞快[root@localhost ~]# webbench -c 500 -t 30http://127.0.0.1/Webbench - Simple Web Benchmark 1.5Copyright (c) Radim Kolar 1997-2004, GPL Open Source Software.Benchmarking: GET http://127.0.0.1/500 clients, running 30 sec.Speed=223504 pages/min, 21806556 bytes/sec.Requests: 111752 susceed, 0 failed.2000 并发测试,CPU使用率35%,系统负载在18左右,页面打开还是飞快[root@localhost ~]# webbench -c 2000 -t 30http://127.0.0.1/Webbench - Simple Web Benchmark 1.5Copyright (c) Radim Kolar 1997-2004, GPL Open Source Software.Benchmarking: GET http://127.0.0.1/2000 clients, running 30 sec.Speed=429494 pages/min, 39004788 bytes/sec.Requests: 214747 susceed, 0 failed.5000 并发测试,CPU使用率30%,系统负载到了35,页面打还速度还不错,看了这数据,前些天说的那个1500万PHP请求也没啥了[root@localhost ~]# webbench -c 5000 -t 30http://127.0.0.1/Webbench - Simple Web Benchmark 1.5Copyright (c) Radim Kolar 1997-2004, GPL Open Source Software.Benchmarking: GET http://127.0.0.1/5000 clients, running 30 sec.Speed=788986 pages/min, 66952700 bytes/sec.Requests: 394493 susceed, 0 failed.还不过瘾,变态一下,10000并发10000 并发,CPU使用还是不到30%,系统负载从60左右一直升到1000左右,晕死!居然还能打开!只是有点卡!负载到600多的时候居然不卡!疯了,我这还是虚拟机,webbench 还是在自己机上开的,汗,太强了[root@localhost ~]# webbench -c 10000 -t 30http://127.0.0.1/Webbench - Simple Web Benchmark 1.5Copyright (c) Radim Kolar 1997-2004, GPL Open Source Software.Benchmarking: GET http://127.0.0.1/10000 clients, running 30 sec.Speed=1513718 pages/min, -17973622 bytes/sec.Requests: 756859 susceed, 0 failed.而我的VPS , 2G内存,8核CPU测试,但我不是使用上面的yum 安装,而是全用源代码编译安装的,测试结果如下:500并发,CPU使用率20%,负载2左右# webbench -c 500 -t 30http://127.0.0.1/index.phpWebbench - Simple Web Benchmark 1.5Copyright (c) Radim Kolar 1997-2004, GPL Open Source Software.Benchmarking: GET http://127.0.0.1/index.php500 clients, running 30 sec.Speed=120520 pages/min, -36244332 bytes/sec.Requests: 60260 susceed, 0 failed.2000并发,CPU使用率20%左右,负载2左右,没啥变化webbench -c 2000 -t 30http://127.0.0.1/index.phpWebbench - Simple Web Benchmark 1.5Copyright (c) Radim Kolar 1997-2004, GPL Open Source Software.Benchmarking: GET http://127.0.0.1/index.php2000 clients, running 30 sec.Speed=111454 pages/min, -44285944 bytes/sec.Requests: 55727 susceed, 0 failed.开到3000并发也一样,但打开页面要等几秒,突然一下出来,说明我进程开少了,还有余地。
centos7中配置nginx+mysql+php环境
添加centos yum源。
sudo rpm -Uvh /packages/centos/7/noarch/RPMS/nginx-release-centos-7-0.el7.ngx.noarch.rpm
安装nginx
sudo yum install nginx
sudo systemctl start php-fpm
设置开机自动重启php-fpm
sudo systemctl enable php-fpm.service
4.第四步:配置nginx站点
编辑站点配置文件
sudo vi /etc/nginx/conf.d/default.conf
sudo mysql_secure_installation
接下来在命令行会提示设置mysql用户名和密码,全选yes。
设置开机自动重启mysql
sudo systemctl enable mariadb.service
3.第三步,安装PHP
安装Php和php 扩展
sudo yum install php php-mysql php-fpm php-mbstring php-gd php-pear php-mcrypt php-mhash php-eaccelerator php-cli php-imap php-ldap php-odbc php-pear php-xml php-xmlrpc php-mssql php-snmp php-soap php-tidy php-common php-devel php-pecl-xdebug -y
}
error_page 404 /404.html;
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
CentOS+Nginx+PHP+Mysql+安全指南全环境搭建笔记QQ群:117366848这是爱月在配置学校内部下载站服务器时候做的笔记参考了张宴大大和wangyu1314的教程,结合自己的实际情况写出的笔记一来记录下来未来如果需要还可以用到二来分享给大家,笔记里的部分初级内容上面所提到的两位大大没有写出来这是第一部分,< 系统安装后的初始环境设置>主要内容有:[用户管理与用户安全][设置系统时间及自动同步系统时间][关闭不需要的服务][系统更新][用OpenSSH构建SSH服务器]CentOS+Nginx+PHP+Mysql+安全指南全环境搭建笔记(1)- 系统安装后的初始环境设置[普通用户的建立与删除]# useradd lovemoon↑建立用户名为lovemoon 的普通用户# passwd lovemoon↑为用户lovemoon 设置密码Changing password for user lovemoon.New UNIX password:↑输入密码(密码不会被显示)Retype new UNIX password:↑再次输入密码确认两次密码一致passwd: all authentication tokens updated successfully.↑密码设置成功#userdel -r lovemoon↑删除用户名为lovemoon 的普通用户[将普通用户设置到不同的用户组中]# usermod -G wheel lovemoon↑将普通用户lovemoon 加在管理员组wheel组中# usermod -G wheel,www lovemoon↑将普通用户lovemoon 同时加在wheel和www组中[设置只有管理员wheel组才可以使用su命令进入root权限]# vi /etc/pam.d/su ←打开这个配置文件auth required /lib/security/$ISA/pam_wheel.so use_uid↑修改文件为此状态(大约在第6行的位置)# echo "SU_WHEEL_ONLY yes" >> /etc/login.defs↑添加语句到login.defs文件行末[设置系统时间及自动同步系统时间]# yum install –y ntp↑安装NTP官方的时间同步程序(NTP:中国国家授时中心)# /usr/sbin/ntpdate -s ↑以NTP官方服务器为准调整本地时间# crontab -e↑编辑计划任务列表0 3 * * * /usr/sbin/ntpdate -s ↑编辑文件到此状态,表示每天凌晨3点自动同步时间# /sbin/service crond reload↑重载计划任务配置[关闭不需要的服务]# setup↑开启图形设置界面选择System service 进入服务列表使用"空格"键选择"[*]"或取消"[ ]"服务只保留以下服务,未列出的服务一律关闭:crondirqbalance↑仅当服务器CPU为S.M.P架构或支持双核心、HT技术时,才需开启,否则关闭。
iptablesmicrocode_ctlnetworksshdsyslogvsftpdyum-updatesd[系统更新]# vi /etc/yum.repos.d/CentOS-Base.repo↑修改系统更新地址文件将所有"baseurl=/centos/$releasever/os/$basearch/"修改为"baseurl=/centos/$releasever/os/$basearch/"# yum -y upgrade↑更新系统文件[用OpenSSH构建SSH服务器]# vi /etc/ssh/sshd_config↑用vi打开SSH的配置文件将"#Protocol 2,1"修改为"Protocol 2"↑只允许SSH2方式的连接(Centos 5.2中已包含此设置)将"#ServerKeyBits 768"修改为"ServerKeyBits 1024"↑将ServerKey强度改为1024比特将"#PermitRootLogin yes"修改为"PermitRootLogin no"↑不允许用root进行登录(wheel组用户SSH登陆后可用su命令使用root权限)将"#PasswordAuthentication yes"修改为"PasswordAuthentication no"↑不允许密码方式的登录(SSH远程管理用密钥登陆会安全很多)将"#PermitEmptyPasswords no"修改为"PermitEmptyPasswords no"↑不允许空密码登录# vi /etc/hosts.deny↑修改屏蔽规则,在此限定仅有哪些IP地址可以SSH远程登陆本服务器sshd: ALL↑在文件末尾添加这一行,屏蔽所有的SSH连接请求# vi /etc/hosts.allow↑修改允许规则,在此限定仅有哪些IP地址可以SSH远程登陆本服务器sshd:222.17.177.sshd:10.3.92.25sshd:10.3.97.137↑在文件末尾添加这三行,只允许来自222.17.177网段、IP地址为10.3.92.25和IP地址为10.3.97.137的SSH连接请求# /etc/rc.d/init.d/sshd restart↑重新启动SSH服务器Stopping sshd:[ OK ]Starting sshd:[ OK ]↑SSH服务器重新启动成功# su -lovemoon↑用普通用户lovemoon 登陆服务器$ ssh-keygen -t rsa↑建立公钥与私钥Generating public/private rsa key pair.Enter file in which to save the key (/home/kaz/.ssh/id_rsa):↑钥匙的文件名,这里保持默认直接回车Created directory '/home/kaz/.ssh'Enter passphrase (empty for no passphrase):↑输入密钥口令(使用SSH远程软件时会用到)Enter same passphrase again:↑再次输入密钥口令(使用SSH远程软件时会用到)Your identification has been saved in /home/kaz/.ssh/id_rsa.↑建立了id_rsa私钥文件Your public key has been saved in /home/kaz/.ssh/id_rsa.pub.↑建立了id_rsa.pub公钥文件$ cd ~/.ssh↑进入lovemoon 用户SSH配置文件的目录(~/目录相当于/home/lovemoon/)$ cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys↑公钥内容输出到authorized_keys文件中$ rm -f ~/.ssh/id_rsa.pub↑删除原来的公钥文件$ chmod 400 ~/.ssh/authorized_keys↑将新建立的公钥文件属性设置为400$ exit↑退出普通用户的登录登陆为root用户,插入U盘# fdisk -l↑显示目前所有硬盘,找到U盘设备名为sdb1 (具体情况具体对待,这里各服务器有所不同)# mount /dev/sdb1 /mnt↑挂载U盘设备到/mnt目录# mv /home/lovemoon/.ssh/id_rsa /mnt/↑移动id_rsa私钥文件到U盘中# umount /mnt/↑卸载U盘-Nginx+PHP+MySQL环境搭建[利用yum命令配置、升级所需程序库]# sudo -s# LANG=C# yum -y install gcc gcc-c++ autoconf libjpeg libjpeg-devel libpng libpng-devel freetype freetype-devel libxml2 libxml2-devel zlib zlib-devel glibc glibc-devel glib2 glib2-devel bzip2 bzip2-devel ncurses ncurses-devel curl curl-devel↑安装、升级这些程序库[下载环境所需文件到指定目录]# mkdir -p /software↑在根目录建立software文件夹# cd /software↑进入software文件夹# wget http://sysoev.ru/nginx/nginx-0.7.19.tar.gz# wget /get/php-5.2.6.tar.gz/from/this/mirror# wget /downloads/head/php-5.2.6-fpm-0.5.9.diff.gz# wget /soft/linux/mysql/mysql-5.1.26-rc.tar.gz# wget /pub/gnu/libiconv/libiconv-1.12.tar.gz# wget /sourceforge/m/mc/mcrypt/libmcrypt-2.5.8.tar.gz# wget /sourceforge/m/mc/mcrypt/mcrypt-2.6.7.tar.gz# wget /get/memcache-2.2.3.tgz# wget /sourceforge/m/mh/mhash/mhash-0.9.9.tar.gz# wget ftp:///pub/software/programming/pcre/pcre-7.7.tar.gz# wget /source/0.9.5.3/eaccelerator-0.9.5.3.tar.bz2↑下载这些文件到software目录[编译安装PHP 5.2.6所需的支持库]# tar zxvf libiconv-1.12.tar.gz↑解压(tar) 参数(zxvf) 文件名(libiconv-1.12.tar.gz)# cd libiconv-1.12/↑进入解压出来的文件的文件夹(libiconv-1.12)# ./configure --prefix=/usr/local↑配置安装信息指定安装目录为/usr/local# make↑make安装文件# make install↑开始安装# cd ../↑返回上级目录(此处即software目录)# tar zxvf libmcrypt-2.5.8.tar.gz# cd libmcrypt-2.5.8/# ./configure# make# make install# /sbin/ldconfig# cd libltdl/# ./configure --enable-ltdl-install# make# make install# cd ../../# tar zxvf mhash-0.9.9.tar.gz# cd mhash-0.9.9/# ./configure# make# make install# cd ../# cp /usr/local/lib/libmcrypt.* /usr/lib# ln -s /usr/local/lib/libmhash.so.2 /usr/lib/libmhash.so.2# tar zxvf mcrypt-2.6.7.tar.gz# cd mcrypt-2.6.7/# ./configure# make# make install# cd ../[编译安装MySQL 5.1.26-rc]# /usr/sbin/groupadd mysql↑建立mysql用户组# /usr/sbin/useradd -g mysql mysql↑建立mysql用户到mysql用户组中# tar zxvf mysql-5.1.26-rc.tar.gz# cd mysql-5.1.26-rc/# ./configure --prefix=/usr/local/webserver/mysql/ --enable-assembler --with-extra-charsets=complex --enable-thread-safe-client --with-big-tables --with-readline --with-ssl --with-embedded-server --enable-local-infile# make && make install# chmod +w /usr/local/webserver/mysql# chown -R mysql:mysql /usr/local/webserver/mysql# cp support-files/f /usr/local/webserver/mysql/f# cd ../# /usr/local/webserver/mysql/bin/mysql_install_db --defaults-file=/usr/local/webserver/mysql/f --basedir=/usr/local/webserver/mysql --datadir=/usr/local/webserver/mysql/data --user=mysql --pid-file=/usr/local/webserver/mysql/mysql.pid --skip-locking --port=3306 --socket=/tmp/mysql.sock↑以mysql用户帐号的身份建立数据表# /bin/sh /usr/local/webserver/mysql/bin/mysqld_safe --defaults-file=/usr/local/webserver/mysql/f &↑启动MySQL(最后的&表示在后台运行)[编译安装PHP(FastCGI模式)]# tar zxvf php-5.2.6.tar.gz# gzip -cd php-5.2.6-fpm-0.5.9.diff.gz | patch -d php-5.2.6 -p1# cd php-5.2.6/# ./configure --prefix=/usr/local/webserver/php --with-config-file-path=/usr/local/webserver/php/etc --with-mysql=/usr/local/webserver/mysql --with-mysqli=/usr/local/webserver/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# sed -i 's#-lz -lm -lxml2 -lz -lm -lxml2 -lz -lm -lcrypt#& -liconv#' Makefile# make# make install# cp php.ini-dist /usr/local/webserver/php/etc/php.ini# cd ../[编译安装PHP5扩展模块]# tar zxvf memcache-2.2.3.tgz# cd memcache-2.2.3/# /usr/local/webserver/php/bin/phpize# ./configure --with-php-config=/usr/local/webserver/php/bin/php-config# make# make install# cd ../# tar jxvf eaccelerator-0.9.5.3.tar.bz2# /usr/local/webserver/php/bin/phpize# ./configure --enable-eaccelerator=shared --with-php-config=/usr/local/webserver/php/bin/php-config# make# make install# cd ../[修改php.ini文件]手工修改:# vi /usr/local/webserver/php/etc/php.ini将" extension_dir = "./" "修改为" extension_dir = "/usr/local/webserver/php/lib/php/extensions/no-debug-non-zts-20060613/" "将"output_buffering = Off"修改为" output_buffering = On "extension = "memcache.so"↑文件末尾增加此行自动修改(已使用手动修改的跳过):# sed -i 's#extension_dir = "./"#extension_dir = "/usr/local/webserver/php/lib/php/extensions/no-debug-non-zts-20060613/"\nextension = "memcache.so"\n#' /usr/local/webserver/php/etc/php.ini# sed -i 's#output_buffering = Off#output_buffering = On#' /usr/local/webserver/php/etc/php.ini[配置eAccelerator加速PHP]# mkdir -p /usr/local/webserver/eaccelerator_cache# vi /usr/local/webserver/php/etc/php.ini按shift+g键跳到配置文件的最末尾,加入以下配置信息:[eaccelerator]zend_extension="/usr/local/webserver/php/lib/php/extensions/no-debug-non-zts-20060613/eac celerator.so"eaccelerator.shm_size="128"eaccelerator.cache_dir="/usr/local/webserver/eaccelerator_cache"eaccelerator.enable="1"eaccelerator.optimizer="1"eaccelerator.check_mtime="1"eaccelerator.filter=""eaccelerator.shm_max="0"eaccelerator.shm_ttl="300"eaccelerator.shm_prune_period="120"eaccelerator.shm_only="0"press="1"press_level="9"# vi /etc/sysctl.conf↑修改配置文件将"kernel.shmmax = **********"修改为"kernel.shmmax = 134217728"# /sbin/sysctl -p↑执行此命令使配置生效[创建www用户和组]# /usr/sbin/groupadd www -g 48↑创建www用户组并指定组ID为48# /usr/sbin/useradd -u 48 -g www www↑创建www用户到www用户组中# mkdir -p /wwwroot↑在根目录中创建wwwroot网站目录# chmod +w /wwwroot↑给wwwroot目录增加可写权限# chown -R www:www /wwwroot↑使wwwroot目录所属用户组为www,所属用户为www[创建php-fpm配置文件]php-fpm是为PHP打的一个FastCGI管理补丁,可以平滑变更php.ini配置而无需重启php-cgi# rm -f /usr/local/webserver/php/etc/php-fpm.conf↑删除原有php-fpm.conf文件# vi /usr/local/webserver/php/etc/php-fpm.conf↑建立新的php-fpm.conf文件并启动vi编辑器编辑该文件输入以下内容(请注意以下内容中"↑"标志后的内容不能出现在实际文件中):<?xml version="1.0" ?><configuration>All relative paths in this config are relative to php's install prefix<section name="global_options">Pid file<value name="pid_file">/usr/local/webserver/php/logs/php-fpm.pid</value>Error log file<value name="error_log">/usr/local/webserver/php/logs/php-fpm.log</value>Log level<value name="log_level">notice</value>When this amount of php processes exited with SIGSEGV or SIGBUS ...<value name="emergency_restart_threshold">10</value>... in a less than this interval of time, a graceful restart will be initiated.Useful to work around accidental curruptions in accelerator's shared memory. <value name="emergency_restart_interval">1m</value>Time limit on waiting child's reaction on signals from master<value name="process_control_timeout">5s</value>Set to 'no' to debug fpm<value name="daemonize">yes</value></section><workers><section name="pool">Name of pool. Used in logs and stats.<value name="name">default</value>Address to accept fastcgi requests on.Valid syntax is 'ip.ad.re.ss:port' or just 'port' or '/path/to/unix/socket'<value name="listen_address">127.0.0.1:9000</value><value name="listen_options">Set listen(2) backlog<value name="backlog">-1</value>Set permissions for unix socket, if one used.In Linux read/write permissions must be set in order to allow connections from web server.Many BSD-derrived systems allow connections regardless of permissions.<value name="owner"></value><value name="group"></value><value name="mode">0666</value></value>Additional php.ini defines, specific to this pool of workers.<value name="php_defines"><value name="sendmail_path">/usr/sbin/sendmail -t -i</value><value name="display_errors">0</value>↑如果安装Nginx + PHP 用于程序调试,则此处应设置为"1"以显示PHP错误信息,设置为"0" Nginx 会报状态为500的空白错误页</value>Unix user of processes<value name="user">www</value>Unix group of processes<value name="group">www</value>Process manager settings<value name="pm">Sets style of controling worker process count.Valid values are 'static' and 'apache-like'<value name="style">static</value>Sets the limit on the number of simultaneous requests that will be served.Equivalent to Apache MaxClients directive.Equivalent to PHP_FCGI_CHILDREN environment in original php.fcgiUsed with any pm_style.<value name="max_children">64</value>↑进程数为64,如果服务器内存大于3GB,可以只开启128-200个进程Settings group for 'apache-like' pm style<value name="apache_like">Sets the number of server processes created on startup.Used only when 'apache-like' pm_style is selected<value name="StartServers">20</value>Sets the desired minimum number of idle server processes.Used only when 'apache-like' pm_style is selected<value name="MinSpareServers">5</value>Sets the desired maximum number of idle server processes.Used only when 'apache-like' pm_style is selected<value name="MaxSpareServers">35</value></value></value>The timeout (in seconds) for serving a single request after which the worker process will be terminatedShould be used when 'max_execution_time' ini option does not stop script execution for some reason'0s' means 'off'<value name="request_terminate_timeout">0s</value>The timeout (in seconds) for serving of single request after which a php backtrace will be dumped to slow.log file'0s' means 'off'<value name="request_slowlog_timeout">0s</value>The log file for slow requests<value name="slowlog">logs/slow.log</value>Set open file desc rlimit<value name="rlimit_files">51200</value>Set max core size rlimit<value name="rlimit_core">0</value>Chroot to this directory at the start, absolute path<value name="chroot"></value>Chdir to this directory at the start, absolute path<value name="chdir"></value>Redirect workers' stdout and stderr into main error log.If not set, they will be redirected to /dev/null, according to FastCGI specs<value name="catch_workers_output">yes</value>How much requests each process should execute before respawn.Useful to work around memory leaks in 3rd party libraries.For endless request processing please specify 0Equivalent to PHP_FCGI_MAX_REQUESTS<value name="max_requests">10240</value>Comma separated list of ipv4 addresses of FastCGI clients that allowed to connect.Equivalent to FCGI_WEB_SERVER_ADDRS environment in original php.fcgi (5.2.2+) Makes sense only with AF_INET listening socket.<value name="allowed_clients">127.0.0.1</value>Pass environment variables like LD_LIBRARY_PATHAll $VARIABLEs are taken from current environment<value name="environment"><value name="HOSTNAME">$HOSTNAME</value><value name="PATH">/usr/local/bin:/usr/bin:/bin</value><value name="TMP">/tmp</value><value name="TMPDIR">/tmp</value><value name="TEMP">/tmp</value><value name="OSTYPE">$OSTYPE</value><value name="MACHTYPE">$MACHTYPE</value><value name="MALLOC_CHECK_">2</value></value></section></workers></configuration>[启动php-cgi进程,监听127.0.0.1的9000端口]# ulimit -SHn 51200# /usr/local/webserver/php/sbin/php-fpm start[安装Nginx所需的pcre库]# tar zxvf pcre-7.7.tar.gz# cd pcre-7.7/# ./configure# make && make install# cd ../[安装Nginx 0.7.19]# tar zxvf nginx-0.7.19.tar.gz# cd nginx-0.7.19/# ./configure --user=www --group=www --prefix=/usr/local/webserver/nginx --with-http_stub_status_module --with-http_ssl_module# make# make install# cd ../[创建Nginx日志目录]# mkdir -p /logs# chmod +w /logs# chown -R www:www /logs[创建nginx.conf配置文件]# rm -f /usr/local/webserver/nginx/conf/nginx.conf# vi /usr/local/webserver/nginx/conf/nginx.conf输入以下内容(请注意以下内容中"↑"标志后的内容不能出现在实际文件中):user www www;worker_processes 8;↑Nginx每个进程耗费10M~12M内存error_log /logs/nginx_error.log warn;pid /usr/local/webserver/nginx/nginx.pid;#Specifies the value for maximum file descriptors that can be opened by this process.worker_rlimit_nofile 51200;events{use epoll;worker_connections 51200;}http{include mime.types;default_type application/octet-stream;#charset gb2312;server_names_hash_bucket_size 128;client_header_buffer_size 32k;large_client_header_buffers 4 32k;sendfile on;tcp_nopush on;keepalive_timeout 60;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 application/x-javascript text/css application/xml;gzip_vary on;limit_zone crash $binary_remote_addr 10m;↑定义一个叫“crash”的记录区,总容量为10M,以变量$binary_remote_addr 作为会话的判断基准(即一个地址一个会话),当区的大小为1M 的时候,大约可以记录32000 个会话信息(一个会话占用32 bytes)server{listen 80;server_name 222.17.177.205;index index.html index.htm index.php;root /wwwroot;#limit_conn crash 5;↑*此处已被#注释掉了,即不起作用*定义整个网站的限制。