如何让网站不同页面调用不同PHP版本
写在写在前面的前面
是的,知道我的朋友应该都清楚,前述我提到了,我会停笔到下一个学术论文投出。不过这几天我一直在考虑一个问题,手上确实有一些想写的,那么是不是确实值得写写?今天发现身边的人几乎都放假了,我的工作时间也从正常工作时间缩短为三分之二不到,一个人似乎确实有些事情做不动。于是我开始考虑,是不是我也正式放假,也就是说,不做课题的,也不做学校的事情,做一些自己感兴趣的事情,比如coding,或者录制一些值得录制的教程,这些似乎会有趣一些。当然,或许学一门新的语言也是一个选择。还是没决定下来,所以继续停笔。不过,我在犹豫是不是休假,而我却有一个不休假的师弟。。。刚才收到他的投稿,于是推出,希望对有需要的朋友有一定的帮助。
很久很久以前,在这个公众号早些时候,我提到过,我个人的认知里,自称搞生信的,基本是两个主要方向:
往上走,搞算法,搞数学,搞大型机
往下走,搞生物学问题
而随着这几年测序价格的不断下跌,以上两块能做好的人,寥寥无几。主要原因,其实每个人自己清楚。既然都做不到,那么就会存在新的市场缺口:
所谓的个性化分析,提供服务的,累死狗的
云平台数据分析,极其简便的界面化数据分析工具
符合特定需求的数据库或网站
我想,对于经费充足,且一心关注生物学问题的,那么应该确实不会花时间在技术上折腾,而会选择购买以上三种服务。其他的就不说了。还是看看师弟的推文吧。
写在前面
我目前的网站开发环境是用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 make
yum install gcc gcc-c++
安装PCRE库
可以自定义一个安装路径
cd /usr/local/src
wget ftp://ftp.csx.cam.ac.uk/pub/software/programming/pcre/pcre-8.39.tar.gz
tar -xzvf pcre-8.39.tar.gz
cd pcre-8.39
./configure
make
make install
安装zlib库
可以自定义一个安装路径
cd /usr/local/src
wget http://zlib.net/zlib-1.2.11.tar.gz
tar -xzvf zlib-1.2.11.tar.gz
cd zlib-1.2.11
./configure
make
make install
安装nginx
wget http://nginx.org/download/nginx-1.1.10.tar.gz
tar -zxvf nginx-1.1.10.tar.gz
cd nginx-1.1.10
./configure
make
make 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.gz
cd 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.conf
cd /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/conf
vim nginx.conf
重启nginx
/usr/local/nginx/sbin/nginx -s reload
查看是否配置成功
写一个测试脚本,放到网站的根目录/usr/local/nginx/html/
,检查是否成功配置了php
vim phptest.php
输入脚本内容:
<?php
phpinfo();
?>
然后通过IP+端口访问
你的IP:8089/phptest.php
至此,就大功告成啦!
文中的路径均为我的路径,如有不同 修改成自己的相应路径即可
写在最后
在这里我只是提出了一个大概的解决办法,我自己在实行过程中遇到了很多bug,文中并没有一一列出来,但是主要的配置部分已经写清楚,相信其他安装过程中的小bug,通过Google和Baidu 可以解决。
最后,debug成功的感觉真好 哈哈哈,继续努力吧~