10-编译安装PHP

10-编译安装PHP

  • 最近更新2018年07月12日

参与者:金浩然。

一、安装PHP所需的lib库

PHP作为一种用于Web开发的语言,在开发过程中,需要对多种文件格式的支持,    因此,在搭建php环境时,也需要准备相关的库文件,来保证搭建出来的Web界面    不出现裂图或是乱码。

# 检查安装PHP所需的lib库

rpm -qa zlib-devel libxml2-devel libjpeg-devel libjpeg-turbo-devel libicon-devel
rpm -qa freetype-devel libpng-devel gd-devel libcurl-devel libxslt-devel

 

zlib库:数据压缩支持库

libxml2库:xml(可拓展标记语言)支持库

libjpeg库:jpeg(图片格式)支持库

libicon库:icon(图标格式)支持库

libpng库:png(图片格式)支持库

gd库:图片生成(如水印)与裁剪等编辑功能支持库

freetype库:多字体支持库

libcurl库:http,https,post,ftp等网络协议的支持库

libxslt库:xml文档转换格式支持库

# 安装PHP相关的lib库

yum install zlib-devel libxml2-devel libjpeg-devel libjpeg-turbo-devel libicon-devel -y
yum install freetype-devel libpng-devel gd-devel libcurl-devel libxslt-devel -y

 

二、安装libiconv库

libiconv库的功能是实现多语言的支持,即在网页中可以实现不同语言的访问,libiconv库为需要做转换的应用提供了一个iconv()的函数,以实现一个字符编码到另一个字符编码的转换。

# 切换目录(如果目录不存在,需要创建)

cd /home/tools

 

# 下载libiconv源码(如果wget命令不存在,需要自行安装)

wget http://10.70.10.131/software/libiconv-1.14.tar.gz

 

# 解压软件
tar -zxvf libiconv-1.14.tar.gz

# 切换到解压后的目录
cd libiconv-1.14

# 配置安装目录(注意:配置之后,不要切换目录)
./configure --prefix=/usr/local/libiconv

# 编译并安装
make && make install

 

三、安装libmcrypt

libmcrypt库是在程序运行时添加或移除算法时是有用的。由于limcrypt不再被官方支持,所以需要更改yum源来进行安装。如果你在家里或其他地方(除学校外)则需要执行命令”wget -O /etc/yum.repo.d/epel.repo http://mirrors.aliyun.com/repo/epel-6.repo”,来更新本地yum源配置信息,如果你在北软校园内,只要直接执行下面的命令即可。

yum install libmcrypt libmcrypt-devel -y

 

四、安装mhash加密扩展库

mhash是基于离散数学原理的不可逆向的PHP加密方式扩展库,在默认情况下不会开启。PHP常用的散列算法有:MD5、SHA1、GOST等。

# 安装mhash
yum install mhash -y

 

五、安装mcrypt加密扩展库

我们在编写代码程序时,除了要保证代码的高性能,还有一个非常重要的,就是数据的安全。对于PHP而言,它本身提供了几种加密数据的办法,不过还是有限,对于满足特殊数据加解密方面有些欠缺,所以这里推荐使用的第三方拓展mcrypt库,它提供了类型、算法及模式繁多的加、解密功能(mcrypt库支持20多种加密算法、8种加密模式)。

# 安装mcrypt
yum install mcrypt -y

 

六、安装php

安装完php拓展环境之后,终于开始安装php本体了!首先下载php的tar包。

# 切换目录
cd /home/tools

# 下载php
# 书中版本5.3.27 (也可下载7.0.11最新版)
wget http://10.70.10.131/software/php-5.3.27.tar.gz

# 解压tar包
tar -zxvf php-5.3.27.tar.gz

# 进入安装程序文件夹
cd php-5.3.27

 

# 配置php安装选项,一行打不下时在行末用’\’加回车表示换行

./configure --prefix=/data/application/php-5.3.27 \
--with-config-file-path=/data/application/php-5.3.27/etc \
--sysconfdir=/data/application/php-5.3.27/etc \
--with-mysql=/data/application/mysql \
--with-iconv-dir=/usr/local/libiconv \
--with-freetype-dir --with-jpeg-dir --with-png-dir --with-zlib \
--with-libxml-dir=/data/application/php-5.3.27 \
--enable-xml --disable-rpath --enable-safe-mode --enable-bcmath \
--enable-shmop --enable-sysvsem --enable-inline-optimization \
--with-curl --with-curlwrappers --enable-mbregex --enable-fpm \
--enable-mbstring --with-mcrypt --with-gd --enable-gd-native-ttf \
--with-openssl --with-mhash --enable-pcntl --enable-sockets \
--with-xmlrpc --enable-zip --enable-soap --enable-short-tags \
--enable-static --with-xsl --enable-zend-multibyte \
--with-fpm-user=nginx --with-fpm-group=nginx --enable-ftp

 

配置成功后会出现下图。

在编译之前,需要进行一些配置。

# 创建libmysqlclient库的软链接

ln -s /data/application/mysql/lib/libmysqlclient.so.18 /usr/lib64/

 

# 使用touch命令创建phar.phpr文件(当前工作路径为:/data/tools/php-5.3.27)

touch ext/phar.phar

 

# 编译并安装

make && make install

 

# 设置PHP软链接
ln -s /data/application/php-5.3.27 /data/application/php

# 查看链接文件是否创建成功
ls -l | grep php

 

php在源码包中有php.ini-development和php.ini-production两个配置文件,分别对应开发环境和应用环境,可以使用一下命令查看区别,这里我们使用应用环境配置。

# 比较配置文件不同
cd /data/tools/php-5.3.27
diff php.ini-development php.ini-production

# 拷贝php配置文件
cp php.ini-production /data/application/php/lib/php.ini

 

七、启动php服务

# 切换目录
cd /data/application/php/etc

# 复制配置文件
cp php-fpm.conf.default php-fpm.conf

# 启动php-fpm
/data/application/php/sbin/php-fpm

 

# 检查进程及端口情况
/data/application/php/sbin/php-fpm
lsof –I :9000

 

八、配置Nginx支持PHP请求访问

# 切换目录
cd /data/application/nginx/conf/

# 修改配置文件信息
vi nginx.conf

 

修改第45行内容为:
index index.php index.html index.htm;
修改63-71行的结果为:
63 # pass the PHP scripts to FastCGI server listening on 127.0.0.1:9000
64 #
65 location ~ \.php$ {
66 root html;
67 fastcgi_pass 127.0.0.1:9000;

68 fastcgi_index index.php;

69 fastcgi_param SCRIPT_FILENAME /data/application/nginx/html$fastcgi_script_name;

70 include fastcgi_params;

71 }

# 结束Nginx进程

pkill nginx

 

# 重新启动Nginx

/data/application/nginx/sbin/nginx

 

# 建立测试页面

vi /data/application/nginx/html/index.php

 

# index.php文件内容如下:
<?php
phpinfo();
?>

接下来就可以看到测试结果了。

分享到 :
相关推荐

发表回复

登录... 后才能评论