LNMP开发环境搭建——PHP编译安装

2016-6-30 邪哥

CentOS 6.5 x86_64 编译安装 php 5.4.45

下载地址

http://cn2.php.net/distributions/php-5.4.45.tar.gz
选择此版本的初衷,之前已经说过了,如果你想装其他版本,ok  直接下载对应的安装包,然后留意本文相关操作过程中的版本号即可

[root@localhost ~]# cd soft/ 
[root@localhost soft]# wget http://cn2.php.net/distributions/php-5.4.45.tar.gz
[root@localhost soft]# tar -zxvf php-5.4.45.tar.gz 
[root@localhost soft]# cd php-5.4.45 
#注意这边的配置与之前编译安装nginx时小有差别,就是多定义了一层目录
#为了方便今后的php7学习及其他版本php测试
[root@localhost php-5.4.45]# ./configure --prefix=/usr/local/php/php5.4.45 \
            --with-config-file-path=/usr/local/php/php5.4.45/etc \
            --with-config-file-scan-dir=/usr/local/php/php5.4.45/etc/php.d \
            --enable-fpm --with-fpm-user=nobody --with-fpm-group=nobody \
            --enable-exif \
            --enable-ftp \
            --enable-intl \
            --enable-mbstring \
            --enable-pcntl \
            --enable-shmop \
            --enable-soap \
            --enable-sockets \
            --enable-zip \
            --enable-mysqlnd \
            --with-iconv-dir \
            --with-freetype-dir \
            --with-jpeg-dir \
            --with-png-dir \
            --with-libxml-dir \
            --with-curl \
            --with-curlwrappers \
            --with-mhash \
            --with-mcrypt \
            --with-zlib \
            --with-bz2 \
            --with-openssl \
            --with-pear \
            --with-mysql=mysqlnd \
            --with-mysqli=mysqlnd \
            --with-pdo-mysql=mysqlnd
[root@localhost php-5.4.45]# make ZEND_EXTRA_LIBS='-liconv' && make install
....
#等待编译安装完成  电脑配置及性能决定了这步的执行速度
#完成之后 拷贝默认配置文件
[root@localhost php-5.4.45]# cp php.ini-development /usr/local/php/php5.4.45/etc/php.ini
[root@localhost php-5.4.45]# cd /usr/local/php/php5.4.45/
[root@localhost php5.4.45]# bin/php -v
PHP 5.4.45 (cli) (built: Jun 30 2016 15:51:25) 
Copyright (c) 1997-2014 The PHP Group
Zend Engine v2.4.0, Copyright (c) 1998-2014 Zend Technologies
到这里php安装已经安装完毕
为了方便这一阶段的学习使用,同样,咱们将其设置到环境变量中
[root@localhost php5.4.45]# cd ~
[root@localhost ~]# vi /etc/profile
#与nginx mysql 类似,咱们在底部补充完善php的执行路径,补充后如下:
PATH=/usr/local/nginx/sbin:/usr/local/mysql/bin:/usr/local/php/php5.4.45/bin:$PATH
export PATH
#完成后 保存退出
[root@localhost ~]# source /etc/profile
#这样我们就可以在任意目录使用php命令了
[root@localhost ~]# php -v
PHP 5.4.45 (cli) (built: Jun 30 2016 15:51:25) 
Copyright (c) 1997-2014 The PHP Group
Zend Engine v2.4.0, Copyright (c) 1998-2014 Zend Technologies
ok 到这边算是基本完成安装及设置了 

你可能觉得到现在都没什么意思,从nginx 到 mysql 在到现在的php 无非就是  

下载 

configure ...

make

make install

之类的, 是的,像最开始说的,其实跟windows没什么差, 都是 下载  进入安装  设置安装目录   完成安装 

但回过头再看一下,或许你会发现各自安装的过程中,时不时的可能会出现一些小问题,如果漏掉其中一步,可能就会出现不明所以的异常

提一个跟本文相关的,我们在 ./configure中加入了参数 --with-config-file-scan-dir=/usr/local/php/php5.4.45/etc/php.d

这个有什么用呢(老手请不要笑...),没错,其实就是配置参数的字面意思,配置文件扫描目录 

咱们写一个简单的脚本测试一下:

[root@localhost ~]# mkdir test
[root@localhost ~]# cd test
[root@localhost test]# vi t.php
<?php
echo date("Y-m-d H:i:s");
echo PHP_EOL;
[root@localhost test]# php t.php 
# 没什么意外的话,这边会有一些警告提示信息,且显示的时间  非中国时区时间
2016-06-30 08:26:22
[root@localhost test]# 
ok,咱们现在去配置加载目录中 设置一下时区
[root@localhost test]# mkdir -p /usr/local/php/php5.4.45/etc/php.d/ 
[root@localhost test]# vi /usr/local/php/php5.4.45/etc/php.d/ext.ini 
#写入如下内容后 保存退出
date.timezone = PRC
[root@localhost test]# php t.php 
2016-06-30 16:33:16
#这边显示了当前正确的时间
[root@localhost test]# 
这样我们每次新增扩展 或需要添加修改配置时,直接在php.d目录中新建或修改配置文件即可,而不需要去修改php.ini文件了,至于为什么要这样做,不必深究,当然  你也可以直接修改php.ini   只要自己喜欢就好 .

ps: 如果实际项目中出现 rewrite  403 问题,请留意优先复核 php.ini 中的 cgi.fix_pathinfo 是否是正常开启的。然后再核查其他可能性


鉴于篇幅,就写到这边

后续咱们再介绍 nginx + php-fpm 的配置,以及 php扩展的安装使用  :)


运维 CentOS php

(0) (1358)

发表评论: