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

尝试下Fastcgi nginx php配置安装

2010-10-14 18:02 537 查看
随配置随写,自己也在学习。在此感谢http://blog.s135.com/post/366/ ,不过某些细节说的也不是很清楚。

系统:CentOS release 5.4 32位

一、系统的一些库文件,升级下。

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

升级很快没用几分钟。

二、

tar zxvf libiconv-1.13.tar.gz

cd libiconv-1.13/

./configure --prefix=/usr/local

make

make install

cd ../

tar zxvf libmcrypt-2.5.8.tar.gz

cd libmcrypt-2.5.8/

./configure

make

make install

/sbin/ldconfig

### 进入

cd libmcrypt-2.5.8/libltdl/

./configure --enable-ltdl-install

make

make install

cd ../../

tar zxvf mhash-0.9.9.9.tar.gz

cd mhash-0.9.9.9/

./configure

make

make install

cd ../

ln -s /usr/local/lib/libmcrypt.la /usr/lib/libmcrypt.la

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/libmhash.la /usr/lib/libmhash.la

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

我直接编辑了/etc/ld.so.conf然后执行ldconfig,没有做软连接。

tar zxvf mcrypt-2.6.8.tar.gz

cd mcrypt-2.6.8/

/sbin/ldconfig

./configure

make

make install

cd ../

-----------------------------

编译安装MySQL 5.1.33

/usr/sbin/groupadd mysql

/usr/sbin/useradd -g mysql mysql

unzip mysql-5.1.33.zip

cd mysql-5.1.33/

./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 --with-plugins=innobase

make && make install

chmod +w /usr/local/webserver/mysql

chown -R mysql:mysql /usr/local/webserver/mysql

cp support-files/my-medium.cnf /usr/local/webserver/mysql/my.cnf

cd ../

附:以下为附加步骤,如果你想在这台服务器上运行MySQL数据库,则执行以下两步。如果你只是希望让PHP支持

MySQL扩展库,能够连接其他服务器上的MySQL数据库,那么,以下两步无需执行。

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

/usr/local/webserver/mysql/bin/mysql_install_db --basedir=/usr/local/webserver/mysql --

datadir=/usr/local/webserver/mysql/data --user=mysql

  ②、启动MySQL(最后的&表示在后台运行)

/bin/sh /usr/local/webserver/mysql/bin/mysqld_safe --defaults-

file=/usr/local/webserver/mysql/my.cnf &

错误处理

centos.err unknown option '--skip-federated'

[ERROR] Aborting

解决办法:

# Disable Federated by default

#skip-federated

说明:

--skip-federated 也是mysql的一种存储引擎。在mysql 5.0.3中就被支持,在mysql 5.0.64默认编译是不开启的

,在mysql5.1.29中你编译时需用--with-plugins指定,

你的编译参数中没有指定该存储引擎,而在 mysql的随带的配置文件中,该项是存在的,如果不需要,在配置文

件中注释就好了。

tar zxvf php-5.2.8.tar.gz

gzip -cd php-5.2.8-fpm-0.5.10.diff.gz | patch -d php-5.2.8 -p1

cd php-5.2.8/

./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 --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

cd ../

---------------------------------------------------------------------------

4.扩展模块

tar zxvf memcache-2.2.5.tgz

cd memcache-2.2.5/

/usr/local/webserver/php/bin/phpize # 需要autoconf来创建makefile配置文件

# phpize 命令是用来准备 PHP 外挂模块的编译环境的。

# 外挂模块路径:php/lib/php/extensions

./configure --with-php-config=/usr/local/webserver/php/bin/php-config

make

make install

cd ../

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/webserver/php/bin/php-config

# --enable-eaccelerator 效果一样

make

make install

cd ../

tar zxvf PDO_MYSQL-1.0.2.tgz

cd PDO_MYSQL-1.0.2/

/usr/local/webserver/php/bin/phpize

./configure --with-php-config=/usr/local/webserver/php/bin/php-config

--with-pdo-mysql=/usr/local/webserver/mysql

make

make install

cd ../

## 系统必须装ImageMagick

tar zxvf ImageMagick.tar.gz

cd ImageMagick-6.5.1-2/

./configure

make

make install

cd ../

tar zxvf imagick-2.3.0.tgz

cd imagick-2.3.0/

/usr/local/webserver/php/bin/phpize

./configure --with-php-config=/usr/local/webserver/php/bin/php-config

make

make install

cd ../

修改php.ini文件

  手工修改:查找/usr/local/webserver/php/etc/php.ini中的extension_dir = "./"

  修改为extension_dir = "/usr/local/webserver/php/lib/php/extensions/no-debug-non-zts-20060613/"

  并在此行后增加以下几行,然后保存:

  extension = "memcache.so"

  extension = "pdo_mysql.so"

  extension = "imagick.so"

  再查找output_buffering = Off

  修改为output_buffering = On

配置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/eaccelerator.so"

eaccelerator.shm_size="128"

eaccelerator.cache_dir="/usr/local/webserver/eaccelerator_cache"

eaccelerator.enable="1"

eaccelerator.optimizer="1"

eaccelerator.check_mtime="1"

eaccelerator.debug="0"

eaccelerator.filter=""

eaccelerator.shm_max="0"

eaccelerator.shm_ttl="300"

eaccelerator.shm_prune_period="120"

eaccelerator.shm_only="0"

eaccelerator.compress="1"

eaccelerator.compress_level="9"

修改配置文件:

vi /etc/sysctl.conf

输入以下内容:

kernel.shmmax = 134217728

sysctl -p

创建www用户和组:

/usr/sbin/groupadd www

/usr/sbin/useradd -g www www

mkdir -p /data0/htdocs/blog

chmod +w /data0/htdocs/blog

chown -R www:www /data0/htdocs/blog

创建php-fpm配置文件(php-fpm是为PHP打的一个FastCGI管理补丁,可以平滑变更php.ini配置而无需重启php-

cgi):

在/usr/local/webserver/php/etc/目录中创建php-fpm.conf文件:

rm -f /usr/local/webserver/php/etc/php-fpm.conf

vi /usr/local/webserver/php/etc/php-fpm.conf

输入以下内容(如果您安装 Nginx + PHP 用于程序调试,请将以下的<value name="display_errors">0</value>

改为<value name="display_errors">1</value>,以便显示PHP错误信息,否则,Nginx 会报状态为500的空白错

误页):见fast1.txt

PHP FastCGI子进程数:max_children,1G内存64,3G以上200

进程数在php-fpm.conf的“max_children” .

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

ulimit -SHn 51200

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

# 启动后会提示Starting php_fpm done

注:/usr/local/webserver/php/sbin/php-fpm还有其他参数,包括:

start|stop|quit|restart|reload|logrotate,修改php.ini后不重启php-cgi,重新加载配置文件使用reload
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: