您的位置:首页 > 运维架构 > Nginx

nginx与php,mysql的安装,配置与优化

2011-11-01 11:12 579 查看
FastCGI是语言无关的、可伸缩架构的CGI开放扩展,其主要行为是将CGI解释器进程保持在内存中并因此获得较高的性能。众所周知,CGI解释器的反复加载是CGI性能低下的主要原因,

FastCGI的工作原理是:

(1) FastCGI进程管理器自身初始化,启动多个CGI解释器进程(多个php-cgi进程)并等待来自Web Server的连接。启动php-cgi FastCGI进程的两种方式:TCP和UNIX套接字。

(2)当客户端请求到达Web服务器(Nginx)时,Web服务器将请求采用TCP协议或UNIX套接字方式转发到FastCGI主进程,FastCGI主进程选择并连接到一个CGI解释器(子进程)。Web服务器将CGI环境变量和标准输入发送到FastCGI子进程php-cgi。

(3) FastCGI子进程完成处理后将标准输出和错误信息从同一连接返回Web服务器(Nginx)。当FastCGI子进程关闭连接时,请求便告知处理完成。FastCGI子进程接着等待并处理来自FastCGI进程管理器的下一个连接。而在一般的普通CGI模式中,php-cgi在此便退出了。

所以,你可以想象普通的CGI模式有多慢。每一个Web请求PHP都必须重新解析php.ini,重新载入全部扩展并重新初始化全部数据结构。使用FastCGI,所有这些都只在进程启动时发生一次。 PHP FastCGI的优点:

(1) PHP脚本运行速度更快。PHP解释程序被载入内存而不用每次需要时从存储器读取,此举极大提升了依靠脚本运行站点的性能。

(2)须要使用的系统资源更少。由于服务器不用在每次需要时都载入PHP解释程序,你可以将站点的传输速度提升很多而不必增加CPU负担。

(3)不需要对现有的代码作任何改变。运行在Apache+PHP上的程序,无须修改印可适用于PHP的FastCGI。

安装 php

(1)若服务器为centos,升级以下软件包

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 e2fsprogs e2fsprogs-devel krb5 krb5-devel libidn libidn-devel openssl openssl-devel openldap openldap-devel nss_ldap openldap-clients openldap-servers

(2)编译安装 php5.2.10 所需的支持库

libiconv-1.13.tar.gz

libmcrypt-2.5.8.tar.gz

mhash-mhash-0.9.9.9.tar.gz

mcrypt-2.6.8.tar.gz

(3)编译安装php5.2.10(fastCGI模式)

php-5.2.10.tar.gz

(4)编译安装php5扩展模块

memcache-2.2.5.tgz

eaccelerator-0.9.5.3.tar.bz2

PDO_MYSQL-1.0.2.tgz

ImageMagick.tar.gz

imagick-2.2.2.tgz

(5)修改php.ini文件:





增加以下几行并保存





(6)配置eaccelerator加速php

(7)创建www用户和组,以及供blog.domain.com和www.domian.com虚拟主机使用的目录





(8)创建php-fpm配置文件(php-fpm是php的一个fastCGI管理补丁,可以平滑变更php.ini配置而无须重启php-cgi)

(9)启动php-cgi进程,监听127.0.0.1的9000端口,进程数为128(如果服务器内存小于3GB,可以只开启64个进程),用户为www

ulimit -SHn 65535

/usr/local/php/sbin/php-fpm start

编译安装mysql

如果你想在这台服务器上运行MySQL数据库,则执行以下几步。如果你只是希望让PHP支持MySQL扩展库,能够连接其他服务器上的MySQL数据库,那么,以下几步无需执行。

1、创建MySQL数据库存放目录

2、以mysql用户帐号的身份建立数据表:

3、创建my.cnf配置文件:

4、创建管理mysql数据库的shell脚本

5、赋予shell脚本可执行的权限

6、启动mysql

7、通过命令行登陆管理mysql服务器(提示输入密码时直接回车)

8、输入以下SQL语句,创建一个具有root权限的用户(admin)和密码(12345678):

GRANT ALL PRIVILEGES ON *.* TO 'admin'@'localhost' IDENTIFIED BY '12345678';

GRANT ALL PRIVILEGES ON *.* TO 'admin'@'127.0.0.1' IDENTIFIED BY '12345678';

9、(可选)停止mysql

编译安装nginx

1)安装Nginx所需的pcre库:

pcre-8.10.tar.gz

2)安装Nginx

nginx-0.8.46.tar.gz

3) 创建Nginx日志目录

mkdir -p /data1/logs

chmod +w /data1/logs

chown -R www:www /data1/logs

4) 创建Nginx配置文件

1、在/usr/local/nginx/conf/目录中创建nginx.conf文件:

2、在/usr/local/nginx/conf/目录中创建fcgi.conf文件:

5)启动Nginx

ulimit -SHn 65535

/usr/local/nginx/sbin/nginx
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息