环境:centos6.4 + php5.2.17(编译安装) + mysql5.5.30(rpm包安装) + nginx1.4.1(yum安装)
作用:提供用户注册
注:由于连接后台数据库,mysql只需安装相关组件即可,本文重点在php配置
系统初始化
groupadd -g 80 www
adduser -o --home /www --uid 80 --gid 80 -c "Web Application" www
cd /usr/local/src/
rpm --import http://apt.sw.be/RPM-GPG-KEY.dag.txt
rpm -K http://packages.sw.be/rpmforge-release/rpmforge-release-0.5.2-2.el6.rf.x86_64.rpm
rpm -i http://packages.sw.be/rpmforge-release/rpmforge-release-0.5.2-2.el6.rf.x86_64.rpm
yum install -y gcc gcc-c++ make automake autoconf patch curl-devel libmcrypt-devel mhash-devel gd-devel libjpeg-devel libpng-devel libXpm-devel libxml2-devel libxslt-devel openssl-devel recode-devel
软件包下载: http://down.51cto.com/data/824535
tar zxvf soft_myid.tar.gz
yum localinstall MySQL-*
tar zxvf curl-7.30.0.tar.gz
cd curl-7.30.0
./configure --prefix=/srv/curl-7.30.0/ --without-nss --with-ssl && make && make install
cd ..
tar zxvf libiconv-1.14.tar.gz
cd libiconv-1.14
./configure --prefix=/srv/libiconv-1.14
make && make install
cd ..
php安装
tar zxvf php-5.2.17.tar.gz
gzip -cd php-5.2.17-fpm-0.5.14.diff.gz | patch -d php-5.2.17 -p1
cd php-5.2.17
./configure --prefix=/srv/php-5.2.17 \
--with-config-file-path=/srv/php-5.2.17/etc \
--with-config-file-scan-dir=/srv/php-5.2.17/etc/conf.d \
--enable-fastcgi \
--enable-fpm \
--with-libdir=lib64 \
--with-pear \
--with-curl=/srv/curl-7.28.1 \
--with-iconv-dir=/srv/libiconv-1.14 \
--with-gd \
--with-jpeg-dir \
--with-png-dir \
--with-freetype-dir \
--with-zlib-dir \
--with-mcrypt \
--with-mhash \
--with-mysql \
--with-mysqli=/usr/bin/mysql_config \
--with-pdo-mysql \
--with-mysql-sock=/var/lib/mysql/mysql.sock \
--with-openssl \
--with-xsl \
--enable-sockets \
--enable-soap \
--enable-mbstring \
--enable-gd-native-ttf \
--enable-zip \
--enable-xml \
--enable-bcmath \
--enable-calendar \
--enable-shmop \
--enable-dba \
--enable-wddx \
--enable-sysvsem \
--enable-sysvshm \
--enable-sysvmsg \
--enable-pcntl \
--with-tsrm-pthreads \
--disable-debug
make && make install
当前路径/usr/local/src/
mkdir -p /srv/php-5.2.17/etc/conf.d/
cp php.ini-recommended /srv/php-5.2.17/etc/php.ini
cp /srv/php-5.2.17/etc/php-fpm.conf{,.original}
cp /srv/php-5.2.17/etc/pear.conf{,.original}
配置php-fpm启动
cp /usr/local/src/php-5.2.17/sapi/cgi/fpm/php-fpm /etc/init.d/php-fpm
chmod +x /etc/init.d/php-fpm
在头部第二行添加下面两行,以支持开机启动
vim /etc/init.d/php-fpm
# chkconfig: - 85 15
# description: nginx is a World Wide Web server. It is used to serve
添加开机启动
chkconfig --add php-fpm
chkconfig php-fpm on
chkconfig --list php-fpm
更改php-fpm.conf用户与组
vim /srv/php-5.2.17/etc/php-fpm.conf
用户: nobody 改为 www
组: nobody 改为 www
php.ini设置与优化
vim /srv/php-5.2.17/etc/php.ini <<EOF > /dev/null 2>&1
:254,254s$;open_basedir =$open_basedir = /www/:/tmp/:/var/tmp/:/srv/php-5.2.17/lib/php/:/srv/php-5.2.17/bin/$
:297,297s/expose_php = On/expose_php = Off/
:307,307s/memory_limit = 128M/memory_limit = 16M/
:525,525s!;include_path = ".:/php/includes"!include_path = ".:/srv/php-5.2.17/lib/php:/srv/php-5.2.17/share"!
:542,542s:extension_dir = "./":extension_dir = "/srv/php-5.2.17/lib/php/extensions/no-debug-non-zts-20060613":
:571,571s/; cgi.fix_pathinfo=1/cgi.fix_pathinfo=1/
:716,716s$;date.timezone =$date.timezone = Asia/Hong_Kong$
:1046,1046s:;session.save_path = "/tmp":session.save_path = "/dev/shm":
:1058,1058s/session.name = PHPSESSID/session.name = JSESSIONID/
:wq
EOF
安装apc扩展 (alternative php cache 用于缓存和优化php中间代码)
/srv/php-5.2.17/bin/pecl install apc
cat > /srv/php-5.2.17/etc/conf.d/apc.ini <<EOF
extension=apc.so
EOF
检测apc模块
php -m |grep apc
nginx安装
根据自己的实际环境配置(站点路径,优化,证书等),这里只作演示,也没有改网站权限
yum -y install nginx
chkconfig nginx on
创建测试页面
cat >> /usr/share/nginx/html/index.php <<PHP
<?php
phpinfo();
PHP
启动服务器
/etc/init.d/php-fpm start
/etc/init.d/nginx start
访问phpinfo
http://IP/index.php