分类: 系统运维
2013-02-28 18:20:09
前面整理了下nginx和php之间两种不同的通讯方式。《nginx和php之间通讯方式之unix socket》
这次主要记录下挂载在/dev/shm下的socket方式
1./dev/shm介绍
<1>tmpfs是一个虚拟文件系统,它的存储空间都在内存中,系统默认挂载点/dev/shm
默认大小是RAM(内存)的一半。
<2>所以我们可以直接在/dev/shm下使用创建文件,而不用再mkfs格式化文件系统
因为都是在内存中操作。所以/dev/shm下的文件I/O速度相对很快
利用这点。我们可以把php.socket放在/dev/shm下加速工作效率
下面是nginx和php的编译安装步骤:
一。编译安装nginx
<1>安装nginx所需的pcre库 //服务器中如果已经安装,忽略此步骤
tar zxvf pcre-8.10.tar.gz
cd
pcre-8.10/
./configure
make && make install
<2>安装nginx
tar zxvf nginx-0.8.46.tar.gz
cd nginx-0.8.46/
./configure --user=www --group=www --prefix=/usr/local/nginx --with-http_stub_status_module --with-http_ssl_module
make && make install
<3>修改nginx.conf
点击(此处)折叠或打开
点击(此处)折叠或打开
<5>启动 nginx
/etc/init.d/nginx start
Starting nginx: [ OK ]
二。编译安装php(fastcgi,php-fpm)
<1>检查安装所需要的库
libiconv libmcrypt mhash mcrypt
<2>编译php
tar zxvf php-5.2.14.tar.gz
gzip -cd php-5.2.14-fpm-0.5.14.diff.gz | patch -d php-5.2.14 -p1
cd 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
make ZEND_EXTRA_LIBS='-liconv'
make install
cp php.ini-dist /usr/local/webserver/php/etc/php.ini
<3>安装php扩展模块,php加速器 //根据自己的需求
tar jxvf eaccelerator-0.9.6.1.tar.bz2
cd eaccelerator-0.9.6.1/
/usr/local/webserver/php/bin/phpize
./configure --enable-eaccelerator=shared --with-php-config=/usr/local/php/bin/php-config
make&&make install
<4>修改php.ini php-fpm.conf
php-fpm.conf中主要修改:
<5>启动php
/usr/local/php/sbin/php-fpm restart
Shutting down php_fpm . done
Starting php_fpm done
三。修改配置文件 使用/dev/shm/php.socket方式通讯
<1>修改nginx.conf
点击(此处)折叠或打开
点击(此处)折叠或打开
/etc/init.d/nginx reload [ OK ]
/usr/local/php/etc/php-fpm restart [ OK ]
<4>此时可看到/dev/shm/目录下多了个php.socket文件
修改此文件的属主,和nginx、php-cgi一致
chown www. /dev/shm/php.socket
四。通过压力测试对比nginx和php-cgi的三种通讯方式:http、放在普通目录下的php.socket、放在/dev/shm/下的php.socket
测试结果可通过下面的链接查看-->nginx和php之间通讯方式(压力测试性能比较)