如何让网站不同页面调用不同PHP版本

写在写在前面的前面

是的,知道我的朋友应该都清楚,前述我提到了,我会停笔到下一个学术论文投出。不过这几天我一直在考虑一个问题,手上确实有一些想写的,那么是不是确实值得写写?今天发现身边的人几乎都放假了,我的工作时间也从正常工作时间缩短为三分之二不到,一个人似乎确实有些事情做不动。于是我开始考虑,是不是我也正式放假,也就是说,不做课题的,也不做学校的事情,做一些自己感兴趣的事情,比如coding,或者录制一些值得录制的教程,这些似乎会有趣一些。当然,或许学一门新的语言也是一个选择。还是没决定下来,所以继续停笔。不过,我在犹豫是不是休假,而我却有一个不休假的师弟。。。刚才收到他的投稿,于是推出,希望对有需要的朋友有一定的帮助。

很久很久以前,在这个公众号早些时候,我提到过,我个人的认知里,自称搞生信的,基本是两个主要方向:

  1. 往上走,搞算法,搞数学,搞大型机

  2. 往下走,搞生物学问题

而随着这几年测序价格的不断下跌,以上两块能做好的人,寥寥无几。主要原因,其实每个人自己清楚。既然都做不到,那么就会存在新的市场缺口:

  1. 所谓的个性化分析,提供服务的,累死狗的

  2. 云平台数据分析,极其简便的界面化数据分析工具

  3. 符合特定需求的数据库或网站

我想,对于经费充足,且一心关注生物学问题的,那么应该确实不会花时间在技术上折腾,而会选择购买以上三种服务。其他的就不说了。还是看看师弟的推文吧。

写在前面

我目前的网站开发环境是用lampp搭建的(PHP7+Apache+MySQL)。
最近在用一个开源的网页工具,但是该工具是php5.3写的。。。直接导致我目前的环境运行不了该工具 ,因为php5和php7差异太大,比如php7直接废弃了mysql 扩展库,而使用mysqli扩展库。。

那么如何使不同的网站调用不同的php版本呢?

可以使用宝塔一键安装开发环境,在宝塔中是可以随意切换php版本的,或者是PHPstudy也可以。但是我并没有这么做。。。因为我调试nginx到一半才发现可以用宝塔。。。可是又不想放弃,总感觉放弃会很不爽 ,好在最终还是调试成功了。

我的解决办法:既然我已有的开发环境是 PHP7+Apache ,那么我完全可以再手动搭建一个nginx+php5的环境要调用php7的网站就放到Apache,调用php5的就放到nginx然后共用一个MySQL。完美

  • 注意,配置的过程需要root权限


安装 Nginx

  • 首先先请确认gcc g++开发类库是否装好(默认已经安装)

yum -y install gcc automake autoconf libtool makeyum install gcc gcc-c++
  • 安装PCRE库
    可以自定义一个安装路径

cd /usr/local/srcwget ftp://ftp.csx.cam.ac.uk/pub/software/programming/pcre/pcre-8.39.tar.gztar -xzvf pcre-8.39.tar.gzcd pcre-8.39./configuremakemake install


  • 安装zlib库
    可以自定义一个安装路径

cd /usr/local/src wget http://zlib.net/zlib-1.2.11.tar.gztar -xzvf zlib-1.2.11.tar.gzcd zlib-1.2.11./configuremakemake install


  • 安装nginx

wget http://nginx.org/download/nginx-1.1.10.tar.gztar -zxvf nginx-1.1.10.tar.gzcd nginx-1.1.10./configuremakemake install
  • 启动nginx
    因为之前安装的Apache占用的是80端口,所以一般我们修改nginx的端口,可以改成 8089

  • 启动 nginx

/usr/local/nginx/sbin/nginx -c /usr/local/nginx/conf/nginx.conf

然后就可以通过 ip:端口 访问啦
格式为:你的IP:8089
将网页文件放在 /usr/local/nginx/html/ 目录下就可以正常访问网页了。

参考:https://www.cnblogs.com/wyd168/p/6636529.html


安装php

  • 下载所需的php版本
    到php官网下载所需版本(这里以5.3为例)
    下载地址:https://www.php.net/releases/

  • 解压

tar -xzvf php-5.3.20.tar.gzcd php-5.3.20
  • 编译PHP
    编译参数如下,注意,这里 php的编译参数只配置了目前我所需要的几个php扩展功能而已,如需其他参数 可以自行增加配置。

./configure --enable-fpm --enable-mysqlnd --with-mysql=/opt/lampp/ --without-sqlite --without-pdo-sqlite --with-gd --with-freetype-dir=/usr/include/freetype2/freetype/ make make install
  • 在centos编译php的时候,经常会遇到一些报错信息,这些报错基本上都可以通过yum安装相应的库来解决,即报错缺少哪个库就yum install 哪个库 (如果是Ubuntu 那就apt-get install)
    详情请参考:https://www.cnblogs.com/ningskyer/articles/5639292.html

  • 编译成功之后,创建配置文件

cp php.ini-development /usr/local/php-5.3.20/php.ini
  • 然后可以根据需求修改php.ini文件,即增加需要的php扩展等。


配置nginx,使网页能够调用刚刚安装的php5

Nginx是通过PHP-FastCGI与PHP交互的。而PHP-FastCGI运行后会通过文件、或本地端口两种方式进行监听,在Nginx中配置相应的FastCGI监听端口或文件即实现Nginx请求对PHP的解释,并配置来保证对于 .php 文件的请求将被传送到后端的 PHP-FPM 模块。

  • 先将php-fpm 的配置文件复制到 /usr/local/sbin/ 下

cp /usr/local/etc/php-fpm.conf.default /usr/local/sbin/php-fpm.confcd /usr/local/sbin

可以看到该文件夹下有php-fpm 以及 php-fpm.conf

  • 修改php-fpm.conf 文件
    监听9001

  • 启动 php-fpm

/usr/local/sbin/php-fpm
  • 配置nginx.conf文件

cd /usr/local/nginx/confvim nginx.conf
  • 重启nginx

/usr/local/nginx/sbin/nginx -s reload
  • 查看是否配置成功
    写一个测试脚本,放到网站的根目录/usr/local/nginx/html/
    ,检查是否成功配置了php

vim phptest.php

输入脚本内容:

<?phpphpinfo();?>
  • 然后通过IP+端口访问
    你的IP:8089/phptest.php

至此,就大功告成啦!
文中的路径均为我的路径,如有不同 修改成自己的相应路径即可



写在最后

在这里我只是提出了一个大概的解决办法,我自己在实行过程中遇到了很多bug,文中并没有一一列出来,但是主要的配置部分已经写清楚,相信其他安装过程中的小bug,通过Google和Baidu 可以解决。
最后,debug成功的感觉真好 哈哈哈,继续努力吧~

(0)

相关推荐