参与者:金浩然。
一、安装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(); ?> |
接下来就可以看到测试结果了。