一.安装常用命令

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 ~/soft

wget -c http://cn2.PHP.net/distributions/PHP-5.5.16.tar.gz
wget -c http://tengine.taobao.org/download/tengine-2.0.3.tar.gz

wget -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.tgz

wget 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.gz

yum 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

cp support-files/MysqL.server /etc/init.d/MysqL.server

#修改MysqL密码

bin/MysqLadmin -u root password 'new-password'
bin/MysqL -u root -p

注册系统服务

cp support-files/MysqL.server /etc/init.d/MysqLd

#把msql的脚本文件拷到系统的启动目录下

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文件,为了兼容这个情况可以建立一个链接:

ln -s /tmp/MysqL.sock /var/lib/MysqL/MysqL.sock

二.安装PHP

#cd ~/soft

1.首先安装iconv,否则安装PHP的时候会提示这个错误

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-pear

make 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

vi /usr/local/PHP/etc/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小时的问题.

在PHP.ini文件最后添加启用opcache功能的选项

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

//创建www用户,PHP-fpm和Nginx统一使用这个

groupadd www
useradd -g www www

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

/usr/local/PHP/sbin/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.conf配置文件

/usr/local/Nginx/sbin/Nginx -t

启用Nginx

/usr/local/Nginx/sbin/Nginx

重新加载配置文件

/usr/local/Nginx/sbin/Nginx -s reload

五.全局配置

vi /etc/rc.local

按shift+g快捷键,在末尾增加以下内容:

ulimit -SHn 65535
/usr/local/PHP/sbin/PHP-fpm
/usr/local/Nginx/sbin/Nginx

测试是否支持PHP

vi /usr/local/Nginx/html/PHPinfo.PHP

输入内容 <?PHP PHPinfo(); ?>

浏览http://ip地址/PHPinfo.PHP,可以看到PHP的相关信息,可以查看扩展是否支持.

以上使用的是Nginx的默认配置,为了充分发挥Nginx的性能,实际生产过程中,我们还需要对Nginx进行一些配置优化,请参考:Nginx优化配置(转)

参考文章:http://blog.haohtml.com/archives/6051

参考:http://hi.baidu.com/cfanbo/item/9482bf3ced39f0c11b969681

centos X64下安装php5.5.6的更多相关文章

  1. ios中的.dylib和.a lib有什么区别?

    我知道Objectivec中的编译和运行时是什么,但是我想知道是什么画了这两个库之间的界限?他们的目的是什么,除了陈述一个是静态的而另一个是动态的?我们何时需要一个而不是另一个?

  2. xamarin.ios – ShareKit与MonoTouch如何?

    有人可以验证ShareKit实际上是否可用于MonoTouch并指导我完成使其工作所需的步骤?解决方法您首先从getsharekit.com下载还是使用ShareKit2.0?

  3. ios – iPhone崩溃日志不能正确地符号化并且是双重间隔的

    任何建议超过欢迎.谢谢.解决方法当这件事发生在我身上时,它只是我通过电子邮件收到的日志.如果我记得,至少有一些是在.msg文件中,我不得不把它们拿出来.它可能是Exchange编码更改.如果你显示不可见的字符,你可能会看到每个字符之间的东西.您可以找到并替换它们以删除它们或更改编辑器中的编码.

  4. ios – Xcode 7 beta 2:LaunchScreen.storyboard无法打开文档

    我在两个不同的Mac(iMac和MacBookpro)上收到这个错误.不知道为什么人们不能再现它,但我需要一些帮助.在运行XX优胜美地10.10.4的Mac上运行Xcode7beta2(15六月’15).甚至无法编译和运行我的项目..我从创建菜单创建了一个视图应用程序项目,就是这样.编辑:我试图删除并重新添加storyboard文件(也可以打开Main.storyboard插件),我仍然得到相同的

  5. ios – 为具有多个目标和不同平台的项目编写Podfile

    如何让CocoaPods成功整合到我的项目和iOS/Mac目标?我已经阅读了Podfile文档,但发现它在这方面缺乏.解决方法得到它了!从我的每个目标和运行的pod安装中删除libPods-xxxx.a文件,再次执行了我的目标集成.

  6. ios – 在/usr/lib/system/libcache.dylib中,缺少必需的架构armv6

    在试图为iphoneos编写一个虚拟程序时,Xcode4,gcc似乎没有超出初始的sysroot目录如果我把sysroot,以下作品,但感觉非常干酪,而且不可伸缩.这里发生了什么?

  7. 从iOS应用程序发送帖子到PHP脚本不工作…简单的解决方案就像

    我之前已经做了好几次了但是由于某些原因我无法通过这个帖子…我尝试了设置为_POST且没有的变量的PHP脚本……当它们未设置为发布时它工作精细.这是我的iOS代码:这里是PHP的一大块,POST变量不在正确的位置?我想这对于更有经验的开发人员来说是一个相当简单的答案,感谢您的帮助!解决方法$_POST是一个数组,而不是一个函数.您需要使用方括号来访问数组索引:

  8. iOS中的CocoaPods是什么?

    任何人都可以详细说明iOS开发中的CocoaPods.我似乎无法理解它们是什么.提前致谢.解决方法CocoaPods是我在最近的iOS应用程序开发中发现的最好的东西之一.我用它来获取最新的Github开源项目作为框架和lib到我的项目中.最好的部分是它将自动管理依赖lib,因此无需拖放文件并下载文件夹blaablaaa只需一个简单的代码’podinstall即可!

  9. swift学习2 元组 tuples

    swift中出现了一种新的数据结构,非常牛掰的元组tuples如果懂PHP的猿,会发现这个元组和PHP的数组非常类似,同样是可以默认不指定key,也可以指定key目前的学习疑问是,如何进行元组的遍历?

  10. Swift 2/iOS 9 – libz.dylib找不到

    我在我的新的Swift2.0项目中使用一些来自google的外部代码,在早期版本中需要“libz.dylib”。更新到新的XCode/新的SDK后。

随机推荐

  1. 在airgapped(离线)CentOS 6系统上安装yum软件包

    我有一个CentOS6系统,出于安全考虑,它已经被空气泄漏.它可能从未连接到互联网,如果有,它很长时间没有更新.我想将所有.rpm软件包放在一个驱动器上,这样它们就可以脱机安装而无需查询互联网.但是,我在测试VM上遇到的问题是,即使指定了本地路径,yum仍然会挂起并尝试从在线存储库进行更新.另外,有没有办法使用yum-utils/yumdownloader轻松获取该包的所有依赖项和所有依赖项?目前

  2. centos – 命名在日志旋转后停止记录到rsyslog

    CentOS6.2,绑定9.7.3,rsyslog4.6.2我最近设置了一个服务器,我注意到在日志轮换后,named已停止记录到/var/log/messages.我认为这很奇怪,因为所有日志记录都是通过rsyslog进行的,并且named不会直接写入日志文件.这更奇怪,因为我在更新区域文件后命名了HUPed,但它仍然没有记录.在我停止并重新启动命名后,记录恢复.这里发生了什么?

  3. centos – 显示错误的磁盘大小

    对于其中一个磁盘,Df-h在我的服务器上显示错误的空白区域:Cpanel表明它只有34GB免费,但还有更多.几分钟前,我删除了超过80GB的日志文件.所以,我确信它完全错了.fdisk-l/dev/sda2也显示错误:如果没有格式化,我该怎么做才能解决这个问题?并且打开文件描述符就是它需要使用才能做到这一点.所以…使用“lsof”并查找已删除的文件.重新启动写入日志文件的服务,你很可能会看到空间可用.

  4. 如何在centos 6.9上安装docker-ce 17?

    我目前正在尝试在centOS6.9服务器上安装docker-ce17,但是,当运行yuminstalldocker-ce时,我收到以下错误:如果我用跳过的标志运行它我仍然得到相同的消息,有没有人知道这方面的方法?

  5. centos – 闲置工作站的异常负载平均值

    我有一个新的工作站,具有不寻常的高负载平均值.机器规格是:>至强cpu>256GB的RAM>4x512GBSSD连接到LSI2108RAID控制器我从livecd安装了CentOS6.564位,配置了分区,网络,用户/组,并安装了一些软件,如开发工具和MATLAB.在启动几分钟后,工作站负载平均值的值介于0.5到0.9之间.但它没有做任何事情.因此我无法理解为什么负载平均值如此之高.你能帮我诊断一下这个问题吗?

  6. centos – Cryptsetup luks – 检查内核是否支持aes-xts-plain64密码

    我在CentOS5上使用cryptsetupluks加密加密了一堆硬盘.一切都很好,直到我将系统升级到CentOS6.现在我再也无法安装磁盘了.使用我的关键短语装载:我收到此错误:在/var/log/messages中:有关如何装载的任何想法?找到解决方案问题是驱动器使用大约512个字符长的交互式关键短语加密.出于某种原因,CentOS6中的新内核模块在由旧版本创建时无法正确读取512个字符的加密密钥.似乎只会影响内核或cryptsetup的不同版本,因为在同一系统上创建和打开时,512字符的密钥将起作用

  7. centos – 大量ssh登录尝试

    22个我今天登录CentOS盒找到以下内容这是过去3天内的11次登录尝试.WTF?请注意,这是我从我的提供商处获得的全新IP,该盒子是全新的.我还没有发布任何关于此框的内容.为什么我会进行如此大量的登录尝试?是某种IP/端口扫描?基本上有4名匪徒,其中2名来自中国,1名来自香港,1名来自Verizon.这只发生在SSH上.HTTP上没有问题.我应该将罪魁祸首子网路由吗?你们有什么建议?

  8. centos – kswap使用100%的CPU,即使有100GB的RAM也可用

    >Linux内核是否应该足够智能,只需从内存中清除旧缓存页而不是启动kswap?

  9. centos – Azure将VM从A2 / 3调整为DS2 v2

    我正在尝试调整前一段时间创建的几个AzureVM,从基本的A3和标准A3到标准的DS2v2.我似乎没有能力调整到这个大小的VM.必须从头开始重建服务器会有点痛苦.如果它有所不同我在VM中运行CentOS,每个都有一个带有应用程序和操作系统的磁盘.任何人都可以告诉我是否可以在不删除磁盘的情况下删除VM,创建新VM然后将磁盘附加到新VM?

  10. centos – 广泛使用RAM时服务器计算速度减慢

    我在非常具体的情况下遇到服务器速度下降的问题.事实是:>1)我使用计算应用WRF>2)我使用双XeonE5-2620v3和128GBRAM(NUMA架构–可能与问题有关!

返回
顶部