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 Technologiesok 到这边算是基本完成安装及设置了
你可能觉得到现在都没什么意思,从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扩展的安装使用 :)