一.安装常用命令
yum -y install wget make zip unzippatch
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 libidn libidn-devel openssl openssl-devel openldap openldap-devel nss_ldap openldap-clients openldap-servers libevent libevent-devel
下载软件
mkdir ~/soft
cd ~/softwget -c http://cn2.PHP.net/distributions/PHP-5.5.16.tar.gz
wget -c http://tengine.taobao.org/download/tengine-2.0.3.tar.gzwget -c http://dev.MysqL.com/get/Downloads/MysqL-5.5/MysqL-5.5.39-linux2.6-x86_64.tar.gz
wget http://www.imagemagick.org/download/ImageMagick-6.8.9-7.tar.gz
wget http://pecl.PHP.net/get/imagick-3.1.2.tgzwget http://ftp.gnu.org/pub/gnu/libiconv/libiconv-1.13.1.tar.gz
wget http://pecl.PHP.net/get/memcache-2.2.7.tgz
wgetftp://ftp.csx.cam.ac.uk/pub/software/programming/pcre/pcre-8.35.tar.gzyum install libmcrypt libmcrypt-devel mcrypt mhash
或者从下面下载包编译安装
wget "http://downloads.sourceforge.net/mhash/mhash-0.9.9.9.tar.gz?big_mirror=0"
wget "http://downloads.sourceforge.net/mcrypt/libmcrypt-2.5.8.tar.gz?big_mirror=0"
wget "http://downloads.sourceforge.net/mcrypt/mcrypt-2.6.8.tar.gz?big_mirror=0"
一.安装MysqL
cd ~/soft/
groupadd MysqL
useradd -g MysqL -d /usr/local/MysqL -s /sbin/nologin MysqL
需要先安装libaio库
#yum -y install libaio
tar zxvf MysqL-5.5.39-linux2.6-x86_64.tar.gz
mv MysqL-5.5.39-linux2.6-x86_64 /usr/local/MysqL
cd /usr/local/MysqL
chown -R MysqL .
chgrp -R MysqL .scripts/MysqL_install_db --user=MysqL
chown -R root .
chown -R MysqL data
修改 /etc/my.cnf 文件,将socket文件位置修改如下
socket=/tmp/MysqL.sock
# create MysqL pid work dir
mkdir /var/run/MysqLd/
chown -R MysqL:MysqL /var/run/MysqLd/
bin/MysqLd_safe --user=MysqL &
# Next command is optional
bin/MysqLadmin -u root password 'new-password'
bin/MysqL -u root -p
注册系统服务
cd /etc/init.d/
chkconfig --add MysqLd #将MysqL加到启动服务列表里
chkconfig MysqLd on #让系统启动时自动打开MysqL服务,如果指定级别,用--level参数
这里为了以后维护的时候,不用输入完整的路径,做了软链接
ln -s /usr/local/MysqL/bin/MysqLdump /usr/sbin/MysqLdump
ln -s /usr/local/MysqL/bin/MysqLd_safe /usr/sbin/MysqLd_safe
ln -s /usr/local/MysqL/bin/MysqLslap /usr/sbin/MysqLslap
ln -s /usr/local/MysqL/bin/MysqL /usr/sbin/MysqL
ln -s /usr/local/MysqL/bin/MysqLadmin /usr/sbin/MysqLadmin
我们这里将sock放在了/tmp目录里.有时候系统会使用默认的/var/lib/MysqL/MysqL.sock文件,为了兼容这个情况可以建立一个链接:
二.安装PHP
#cd ~/soft
cd ~/soft/
tar zxvf libiconv-1.13.1.tar.gz
cd libiconv-1.13.1/
./configure --prefix=/usr/local
make
make install
cd ../
#####################################################################
#yum install libmcrypt libmcrypt-devel mcrypt mhash
或者使用下面源包编译安装
下载地址
http://sourceforge.net/projects/mcrypt/files/Libmcrypt/
http://sourceforge.net/projects/mcrypt/files/MCrypt/
http://sourceforge.net/projects/mhash/files/mhash/
先安装Libmcrypt,再安装mhash,再安装mcrypt
2 .先安装Libmcrypt
tar -zxvf libmcrypt-2.5.8.tar.gz
cd libmcrypt-2.5.8
./configure
#make
#make install 说明:libmcript默认安装在/usr/local
#cd ../
3.安装mhash
tar -zxvf mhash-0.9.9.9.tar.gz
cd mhash-0.9.9.9
./configure
make
make install
cd ../
4.安装mcrypt
tar -zxvf mcrypt-2.6.8.tar.gz
cd mcrypt-2.6.8
LD_LIBRARY_PATH=/usr/local/lib ./configure
make
make install
cd ../
最后,还是检查下,是否安装成功
如果configure mcrypt时提示找不到libmcrypt的库,给个参考的解决方法
export LD_LIBRARY_PATH=/usr/local/lib: LD_LIBRARY_PATH
######################################################################
tar zxvf PHP-5.5.16.tar.gz
cd PHP-5.5.16
./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-bcmath --enable-shmop --enable-sysvsem --enable-inline-optimization --with-curl --enable-mbregex --enable-fpm --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 --without-pearmake ZEND_EXTRA_LIBS='-liconv'
make install
cp PHP.ini-production /usr/local/PHP/etc/PHP.ini
cd ../
在configure过程中如果出现以下错误:
configure: error: Cannot find ldap libraries in /usr/lib.
解决办法:
cp -frp /usr/lib64/libldap* /usr/lib
如果出现“configure: error: Don't know how to define struct flock on this system,set --enable-opcache=no”之类的错误
解决办法:
sudo ln -s /usr/local/MysqL/lib/libMysqLclient.so /usr/lib/
sudo ln -s /usr/local/MysqL/lib/libMysqLclient.so.18 /usr/lib/libMysqLclient.so.18
在/etc/ld.so.conf.d中添加local.conf文件:
#echo "/usr/local/lib">> /etc/ld.so.conf.d/local.conf
更新动态库:
#ldconfig -v
如果在make的过程中出现以下错误:
/root/dev/PHP-5.*.*/sapi/cli/PHP: error while loading shared libraries: libMysqLclient.so.18: cannot open shared object file: No such file or directory
make: *** [ext/phar/phar.PHP] Error 127
解决办法 (http://blog.haohtml.com/archives/12479)
ln -s /usr/local/MysqL/lib/libMysqLclient.so.18 /usr/lib64/
如果按上面的操作,再次执行 make ZEND_EXTRA_LIBS='-liconv' 后提示以下错误:
"chmod: cannot access `ext/phar/phar.phar': No such file or directory"
只需要重装执行上面的configure命令即可.只需要在./configure的后面加上--without-pear即可解决办法:http://blog.haohtml.com/archives/12482
如果在make install的时候还提示上面类似的错误,只需要重新从./configure开始再执行一下就可以了.
其它错误参考:http://hi.baidu.com/cfanbo/item/8ff7d41f4fde6c001994ec43
三.安装PHP扩展
tar zxvf memcache-2.2.7.tgz
cd memcache-2.2.7/
/usr/local/PHP/bin/PHPize
./configure --with-PHP-config=/usr/local/PHP/bin/PHP-config
make
make install
cd ../
########################################
tar zxvf ImageMagick-6.8.9-7.tar.gz
cd ImageMagick-6.8.9-7/
./configure
make
make install
cd ../
tar zxvf imagick-3.1.2.tgz
cd imagick-3.1.2/
/usr/local/PHP/bin/PHPize
./configure --with-PHP-config=/usr/local/PHP/bin/PHP-config
make
make install
cd ../
可是出错了一个问题.就是死说找不到MagickWand.h:
checking for MagickWand.h header file... configure: error: Cannot locate header file MagickWand.h
可是我明明正确安装了ImageMagick的呀.GOOGLE了半天,也解决不了这个问题.后面对照另一个服务器上的ImageMagick才发现,原来ImageMagick 6.8这个版后的目录结构变了,旧版本头文件是放在/usr/local/include/ImageMagick目录的,而ImageMagick 6.8则是放在/usr/local/include/ImageMagick-6
添加软连接,命令如下:
ln -s /usr/local/include/ImageMagick-6 /usr/local/include/ImageMagick
make && make && install
编译通过!
#############################################
安装pdo_MysqL扩展
cd ~/soft/PHP-5.5.16/ext/
cd pdo_MysqL
/usr/local/PHP/bin/PHPize
./configure --with-PHP-config=/usr/local/PHP/bin/PHP-config --with-pdo-MysqL=/usr/local/MysqL
make
make install
#如果这里的方法不行,需要使用独立的安装包来编译了http://pecl.php.net/get/PDO_MYSQL-1.0.2.tgz,这里使用这种方法有问题。
//配置PHP.ini
找到extension_dir,删除前面的;,在后面指定为下面的目录位置
/usr/local/PHP/lib/PHP/extensions/no-debug-non-zts-20121212/
并在此行后增加以下几行,然后保存:
extension = "memcache.so"
extension = "imagick.so"
extension = "pdo_MysqL.so"
1.再查找output_buffering = Off,修改为 output_buffering = On.
2.为了安装起见,隐藏http头信息里的PHP信息,查找 expose_PHP = on 修改为expose_PHP = off
3.再查找; cgi.fix_pathinfo=0,把前面的;注释符号删除,改为cgi.fix_pathinfo=0,预防方法:防止Nginx文件类型错误解析漏洞。
4.找到;date.timezone= 修改为date.timezone = PRC,修正PHP中于真实时间相关8小时的问题.
zend_extension=opcache.so
[opcache]
opcache.memory_consumption=128
opcache.interned_strings_buffer=8
opcache.max_accelerated_files=4000
opcache.revalidate_freq=60
opcache.fast_shutdown=1
opcache.enable=1
opcache.enable_cli=1
配置PHP-fpm
groupadd www
useradd -g www wwwcp /usr/local/PHP/etc/PHP-fpm.conf.default /usr/local/PHP/etc/PHP-fpm.conf
vi /usr/local/PHP/etc/PHP-fpm.conf
修改以下两行,并将服务用户名和用户所在组(nobody),修改为www
user = www
group = www
启用PHP-fpm
停止的话,用
killall PHP-fpm
四 安装Nginx
#安装正则表达式库,支持rewite
cd ~/soft
tar zxvf pcre-8.35.tar.gz
cd pcre-8.35/
./configure
make && make install
cd ../tar zxvftengine-2.0.3.tar.gz
cdtengine-2.0.3/
./configure --user=www --group=www --prefix=/usr/local/Nginx --with-http_stub_status_module --with-http_ssl_module
make && make install
cd ../
vi /usr/local/Nginx/conf/Nginx.conf
修改 /usr/local/Nginx/conf/Nginx.conf,删除user nobody;行前面的注释,并修改为userwww www;
将以下几行前面的注释删除,将修改fastcgi_param后面的路径
location ~ \.PHP$ {
root html;
fastcgi_pass 127.0.0.1:9000;
fastcgi_index index.PHP;
fastcgi_param SCRIPT_FILENAME /usr/local/Nginx/html$fastcgi_script_name;
include fastcgi_params;
}
启用Nginx
重新加载配置文件
五.全局配置
vi /etc/rc.local
ulimit -SHn 65535
/usr/local/PHP/sbin/PHP-fpm
/usr/local/Nginx/sbin/Nginx
浏览http://ip地址/PHPinfo.PHP,可以看到PHP的相关信息,可以查看扩展是否支持.
以上使用的是Nginx的默认配置,为了充分发挥Nginx的性能,实际生产过程中,我们还需要对Nginx进行一些配置优化,请参考:Nginx优化配置(转)