您现在的位置: 主页 > 上位机技术 > centos > CentOS6.2服务器环境配置:源码编译PHP5.4
本文所属标签:
为本文创立个标签吧:

CentOS6.2服务器环境配置:源码编译PHP5.4

来源:centos 网络用户发布,如有版权联系网管删除 2018-08-29 

继前面两篇《Centos6.2_(64位)服务器环境配置:源码编译Mysql》和《Centos6.2_(64位)服务器环境配置:源码编译Nginx》之后,把PHP部分也写写,这篇主要还是针对编译安装过程中遇到的一些奇怪问题详解吧,其它安装都差不多的。

在 开始之前,先把关于libmcrypt库的问题再说说,我也是在安装过程遇到的,因为原本以为yum可以安装好一切依赖包的,但在Centos6.2 64位环境下就是这么奇怪,yum安装上的libmcrypt始终都在编译过程提示缺少一个.h文件,为此差点碰伤了头。经过过多试验,总算把 libmcrypt这块先弄好了,否则到了PHP的安装环境是做不来的。

安装PHP5.4.13要做的相关准备工作有除了下载PHP5.4.13的源码包之外,还需要下载Libmcrypt,mcrypt和mhash,后面两个为第一个的依赖包,而Libmcrypt又是PHP的相关依赖包,首先要把这一小部分安装好。

PHP5.4.13 源码下载地址 http://cn.php.net/get/php-5.4.13.tar.gz/from/cn2.php.net/mirror

Libmcrypt( libmcrypt-2.5.8.tar.gz ): http://sourceforge.net/project/showfiles.php?group_id=87941&package_id=91774&release_id=487459

http://downloads.sourceforge.net/project/mcrypt/Libmcrypt/Production/libmcrypt-2.5.7.tar.gz?r=http%3A%2F%2Fsourceforge.net%2Fprojects%2Fmcrypt%2Ffiles%2FLibmcrypt%2FProduction%2F&ts=1364009948&use_mirror=nchc

mcrypt( mcrypt-2.6.8.tar.gz ): http://sourceforge.net/project/showfiles.php?group_id=87941&package_id=91948&release_id=642101

mhash( mhash-0.9.9.9.tar.gz ): http://sourceforge.net/project/showfiles.php?group_id=4286&package_id=4300&release_id=645636

以上几个就是对应文件的下载链接,直接wget即可。

1、先安装Libmcrypt

#www.5ishare.com ,以/apps/setup为安装文件存放目录

#tar -zxvf libmcrypt-2.5.8.tar.gz

#cd libmcrypt-2.5.8

#./configure

#make & make install

说明:libmcript默认安装在/usr/local/lib

2.安装mhash

#tar -zxvf mhash-0.9.9.9.tar.gz

#cd mhash-0.9.9.9

#./configure

#make & make install

3.安装mcrypt

#tar -zxvf mcrypt-2.6.8.tar.gz

#cd mcrypt-2.6.8

#LD_LIBRARY_PATH=/usr/local/lib ./configure

#make & make install

说明:由于在配置Mcrypt时,会找不到libmcrypt的链接库,导致无法编译,需要手动指定 libmcrypt:LD_LIBRARY_PATH=/usr/local/lib 。而且实验证明,经过以上安装之后,可解决configure: error: mcrypt.h not found. Please reinstall libmcrypt.问题。

以下一段是PHP的安装配置参数,也是比较常用的,对于安装路径参数可以自行调整。

./configure --prefix=/apps/php5.4

--with-config-file-path=/apps/php5.4/etc

--with-mysql=/apps/mysql

--with-mysqli=/apps/mysql/bin/mysql_config

--with-mysql-sock=/tmp/mysql.sock

--with-gd

--with-iconv

--with-zlib

--enable-xml

--enable-magic-quotes

--enable-safe-mode

--enable-bcmath

--enable-shmop

--enable-sysvsem

--enable-inline-appsimization

--with-curlwrappers

--enable-mbregex

--enable-fpm

--with-fpm-user=www

--with-fpm-group=www

--enable-mbstring

--enable-ftp

--enable-gd-native-ttf

--enable-pcntl

--enable-sockets

--with-xmlrpc

--enable-zip

--enable-soap

--without-pear

--with-gettext

--enable-session

--with-mcrypt

--with-curl

细心的朋友可能已经发现参数里有两个www的参数,这个就是前边安装Nginx的时候添加的用户和用户组,因为Nginx负责前端,PHP是后端,所以使用同一组帐号就方便对目录的权限设置。

配置完毕之后,就可以执行

#make & make install进行安装了,这个环节要花费的时候比较长,可能是自己的机器配置不太高吧(2核4G内存),足足make了将近20分钟。最近还可以对所有 功能模块进行测试,这个更长时间了,30分钟以上,这一步不是必须的,只是闲着蛋痛的时候玩的。

编译安装完毕,还需要一些设置:

#cp php.ini-production /apps/php5.4/etc/php.ini //复制php配置文件到安装目录

#rm -rf /etc/php.ini //删除系统自带配置文件

#ln -s /apps/php5.4/etc/php.ini /etc/php.ini //添加软链接

#cp /apps/php5.4/etc/php-fpm.conf.default /apps/php5.4/etc/php-fpm.conf //拷贝模板文件为php-fpm配置文件

#vi apps/php5.4/etc/php-fpm.conf

pid = /tmp/php-fpm.pid //取消前面的分号

经过以上操作,PHP-FPM已经可以运行了,但是这样不宵完美,因为php-fpm本身没提供方便用户启动或者重启的脚本,要自己弄一个,内容如下:

#!/bin/bash

# www.5ishare.com

# create by gesion

# php-fpm - This shell script takes care of starting and stopping php-fpm.#

# chkconfig: - 60 50

# description: php-fpm is a php-cgi service.

# processname: php-fpm

# config: /etc/php-fpm.ini

php_fpm_path="/apps/php5.4/sbin/php-fpm"

php_fpm_conf="/apps/php5.4/etc/php-fpm.conf"

php_fpm_pid="/tmp/php-fpm.pid"

# Source function library.

. /etc/rc.d/init.d/functions

# Source networking configuration.

. /etc/sysconfig/network

# Check that networking is up.

[ ${NETWORKING} = "no" ] && exit 0

[ -x $php_fpm_path ] || exit 0

RETVAL=0

prog="php-fpm"

# Start daemons.

start() {

if [ ! -s $php_fpm_pid ]; then

rm -f $php_fpm_pid

fi

if [ -e $php_fpm_pid -a ! -z $php_fpm_pid ]; then

echo $"$prog already running..."

exit 1

fi

if [ -e $php_fpm_conf ]; then

echo -n $"Starting $prog: "

$php_fpm_path -y $php_fpm_conf &

RETVAL=$?

[ $RETVAL -eq 0 ] && success $"$prog"

echo

[ $RETVAL -eq 0 ] && return $RETVAL

pid created $php_fpm_pid

if [ -n "$try" ]; then

RETVAL=1

else

RETVAL=0

fi

else

RETVAL=1

fi

return $RETVAL

}

# Stop daemons.

stop() {

echo -n $"Stopping $prog: "

killproc $php_fpm_path -TERM

RETVAL=$?

pid removed $php_fpm_pid

if [ -n "$try" ]; then

RETVAL=1

failure

else

RETVAL=0

success

fi

echo

[ $RETVAL = 0 ] && rm -f $php_fpm_pid

return $RETVAL

}

pid () {

try=0

while test $try -lt 35; do

case "$1" in

'created')

if [ -f "$2" ]; then

try=""

break

fi

;;

'removed')

if [ ! -f "$2" ]; then

try=""

break

fi

;;

esac

try=$(expr $try + 1)

sleep 1

done

}

# See how we were called.

case "$1" in

start)

start

;;

stop)

stop

;;

restart)

stop

start

;;

status)

status $prog

RETVAL=$?

;;

*)

echo $"Usage: $0 {start|stop|restart|status}"

exit 1

esac

exit $RETVAL

------------------------分隔线--------

以上内容保存到/etc/init.d/php-fpm,并加入执行权限,chkconfig php-fpm on 加入开机自动启动。

虽然此脚本也是转载网友的,经过昨天的遭遇发现此脚本还有个不完美的地方,如果由于服务器意外重启或者其它原因产生一个空的pid文件,那么就会造成启动失败,所以在启动命令执行之前检查pid文件是否为空,空的就把它删除,这样方可正常。

至此就已经介绍完了。我相信对于很多刚接触Linux的朋友通过阅读三篇简单的教程就可以轻松配置一台具体PHP+Mysql+Nginx的Web服务器。



              查看评论 回复



嵌入式交流网主页 > 上位机技术 > centos > CentOS6.2服务器环境配置:源码编译PHP5.4
 安装 ---- 以上

"CentOS6.2服务器环境配置:源码编译PHP5.4"的相关文章

网站地图

围观()