Linux上跑两个版本的php,5.4.45和5.3.24

首先,装的实在艰难,所以容我吐槽两句:

PHP好个P,两个小版本都不兼容,把这个php5.3.24放在5.4.45环境下都跑不了。对于我这种用多了向下兼容的java的人来说,简直无法想象!

网上有装俩apache在linux下的方法。但注意了:人家是为了平滑迁移,关一个,再开一个。一个Linux系统无法同时运行俩apache。

wine有点用处。但是在X86_64版本的Linux上就别想着装32位的了,ZLiib的32位版本装不上、XFree太大了。对于XFree这种放出ftp而不是压缩包的,我甚是鄙视:里面的组件各个版本都有,我这菜鸡哪知道用哪个!

---------->吐槽完毕<-------------

说下情况:

Linux是X86_64的,已经跑了PHP5.4.45。是个简单的*网站(简单到所有菜单就文章和下载两种情况)。

现在人家客户要我们改版,源代码找不到了,就找了个yourphp框架(window整合版,php和apache都是window版的),改好了,然后需要部署到人家服务器上:

  1.先装的wine64位,跑不起exe(32位的)。删掉后装32位,缺包装不上....(详见吐槽)

  2.然后照网上装双apache,然后发现无法同时跑....

  3.最后按照人家的博客,apache+php5.4.45是原来的,Nginx+php5.3.24跑我们改版的。

Linux环境Nginx安装与调试以及PHP安装:http://blog.csdn.net/unix21/article/details/8544922

里面说的很详细,我这里只说下里面没说到的关键点:

1.Nginx编译很顺利,有问题百度就可以解决。

2.搞清楚php和nginx所用的端口,PHP5.4.45用的是PHP默认的9000端口,我们的php5.3.24就用9001端口。服务器开放的端口是9092,这个是给Nginx监听的,如果端口搞混,访问9092就是白页。

3.这里给出Nginx配置文件(nginx.conf)的主体部分:

   server {
listen ;
server_name xin.nxlaoling.com; location / {
#root html;
root /home/llw/Yourphp/www;
index index.html index.htm index.php;
} error_page /50x.html;
location = /50x.html {
root html;
} location ~ \.php$ {
root html;
fastcgi_pass 127.0.0.1:;
fastcgi_index index.php;
include fastcgi_params;
fastcgi_param SCRIPT_FILENAME /home/llw/Yourphp/www$fastcgi_script_name;
} }

4.教程里php5.3.24的编译参数没给出,fpm启动文件没编译出来,这里给出完整的:

  ./configure --prefix=/usr/local/php_5.3.24 --enable-cgi --enable-force-cgi-redirect --with-zlib --enable-fpm --disable-debug --enable-inline-optimization --with-gd --enable-gd-native-ttf --with-freetype-dir=/usr/local --enable-mbstring --with-openssl --with-mysql=/usr/local/mysql --with-jpeg-dir=/usr --with-curl --with-iconv=/usr/local/

5.如果都启动成功了,访问主页出现乱码,是解码器没安装,同时注意下php的配置文件是在:/usr/local/php_5.3.24/lib/php.ini,没有这个也可以启动。但如果按人家博客方法二配置解码器,还是从源码拷贝过来,最后附加解码器路径。

6.如果php访问主页出现 Access denied for user ''@'localhost' to database,注意三个方面:这个用户是否有mysql这个库的权限、权限是否齐全(增删改查)、改权限后该用户的密码被清空了(这个我遇到了)

7.不要问一个JavaWeb程序猿为什么要搞PHP。

上一篇:Node.js 中 __dirname 和 ./ 的区别


下一篇:[Linux] deepin安装node