关于Linux环境Nginx安装与调试以及PHP安装参考此文即可:http://blog.csdn.net/unix21/article/details/8544922

linux版本:64位CentOS 6.4

Nginx版本:nginx1.8.0

php版本:php5.5.28 & php5.4.44

所谓多版本多版本PHP就是php5.4和5.5以及其他版本在同一台服务器。

假如php5.5是主版本已经安装在/usr/local/php目录下,那么再安装其他版本的php再指定不同安装目录即可。

安装第二个版本的PHP

# wget http://cn2.php.net/get/php-5.4.44.tar.gz/from/this/mirror
# tar zxvf php-5.4.44.tar.gz
# cd php-5.4.44
#./configure --prefix=/usr/local/php5.4.44 \
--with-curl \
--with-freetype-dir \
--with-gd \
--with-gettext \
--with-iconv-dir \
--with-kerberos \
--with-libdir=lib64 \
--with-libxml-dir \
--with-mysql \
--with-mysqli \
--with-openssl \
--with-pcre-regex \
--with-pdo-mysql \
--with-pdo-sqlite \
--with-pear \
--with-png-dir \
--with-xmlrpc \
--with-xsl \
--with-zlib \
--enable-fpm \
--enable-bcmath \
--enable-libxml \
--enable-inline-optimization \
--enable-gd-native-ttf \
--enable-mbregex \
--enable-mbstring \
--enable-pcntl \
--enable-shmop \
--enable-soap \
--enable-sockets \
--enable-sysvsem \
--enable-xml \
--enable-zip

如果需要 激活调试 则最后一行修改为

--enable-zip \
--enable-debug

# make &&  make install
# cp -R ./sapi/fpm/php-fpm.conf /usr/local/php5.4.44/etc/php-fpm.conf
# cp php.ini-development /usr/local/php5.4.44/lib/php.ini
# cp -R ./sapi/fpm/php-fpm /etc/init.d/php-fpm5.4.44

运行之后遇到的问题:

error 1

checking for xml2-config path... 
configure: error: xml2-config not found. Please check your libxml2 installation.

(看提示就明白 是一个lib库没装  先用 yum search 名字 看是否能搜到名字 ,找到名字后 把软件包 开发包装上)

解决办法

yum install libxml2-devel.x86_64

error 2

checking for pkg-config... /usr/bin/pkg-config
configure: error: Cannot find OpenSSL's <evp.h>

这是ssl没装

解决办法

 yum  install  openssl.x86_64 openssl-devel.x86_64 -y

error 3

checking for BZip2 in default path... not found
configure: error: Please reinstall the BZip2 distribution

这是bzip2软件包没有安装

解决办法

yum install bzip2-devel.x86_64 -y

error 4

configure: error: Please reinstall the libcurl distribution -
    easy.h should be in <curl-dir>/include/curl/

curl和curl库文件没有安装

解决办法

yum install libcurl.x86_64 libcurl-devel.x86_64 -y

error 5

checking whether to enable JIS-mapped Japanese font support in GD... no
checking for fabsf... yes
checking for floorf... yes
configure: error: jpeglib.h not found

GD库没有安装

解决办法

yum install libjpeg.x86_64 libpng.x86_64 freetype.x86_64 libjpeg-devel.x86_64 libpng-devel.x86_64 freetype-devel.x86_64 -y

error 6

checking for stdarg.h... (cached) yes
checking for mcrypt support... yes
configure: error: mcrypt.h not found. Please reinstall libmcrypt.

libmcrypt库没有安装 ,要是不能用yun安装的话  就要去下载个gz包 自己编译安装

(编译安装  ./configure --piefix=/usr/local/libmcrypt   make && make install)

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

要是错误里面含有mysql的  那是mysql-devel 没有安装

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

出现

Generating files configure: creating ./config.status creating main/internal_functions.c creating main/internal_functions_cli.c

+--------------------------------------------------------------------+

| License:                                                           |

| This software is subject to the PHP License, available in this     |

| distribution in the file LICENSE.  By continuing this installation |

| process, you are bound by the terms of this license agreement.     |

| If you do not agree with the terms of this license, you must abort |

| the installation process at this point.                            |

+--------------------------------------------------------------------+

Thank you for using PHP.

config.status: creating php5.spec

config.status: creating main/build-defs.h

config.status: creating scripts/phpize

config.status: creating scripts/man1/phpize.1

config.status: creating scripts/php-config

config.status: creating scripts/man1/php-config.1

config.status: creating sapi/cli/php.1

config.status: creating sapi/fpm/php-fpm.conf

config.status: creating sapi/fpm/init.d.php-fpm

config.status: creating sapi/fpm/php-fpm.8

config.status: creating sapi/fpm/status.html

config.status: creating main/php_config.h

config.status: executing default commands

表示安装成功

 make  && make install

make完成之后  到php的解压目录 找出php.ini-production 复制到 /usr/local/php/lib/ 下 文件名改成php.ini

cp php.ini-production /usr/local/php/lib/php.ini 

完成..

修改php-fpm.conf的侦听端口为9001,因为主版本5.5.28是侦听9000。

[php]  view plain  copy
  1. ; Note: This value is mandatory.
  2. listen = 127.0.0.1:9001

启动php-fpm
#  /etc/init.d/php-fpm5.4.44

php安装成功查看进程

#ps aux|grep php

这样就已经起好php-fpm了。

配置Nginx

增加一段新的端口8054的配置并指向到9001以及指定目录即可:

server {
        listen       8054;
        server_name  localhost;

location / {
            #root   html;
root /usr/www5.4.44;
            index  index.html index.htm;
        }

error_page   500 502 503 504  /50x.html;
        location = /50x.html {
            root   html;
        }

location ~ \.php$ {
root html;
fastcgi_pass 127.0.0.1:9001;
fastcgi_index index.php;
include fastcgi_params;
fastcgi_param SCRIPT_FILENAME /usr/www5.4.44$fastcgi_script_name;
}
 
    }

nginx的配置文件nginx.conf在

# cd /usr/local/nginx/conf

完整的nginx配置如图:

[cpp]  view plain  copy
  1. #user  nobody;
  2. worker_processes  4;
  3. #error_log  logs/error.log;
  4. #error_log  logs/error.log  notice;
  5. #error_log  logs/error.log  info;
  6. #pid        logs/nginx.pid;
  7. events {
  8. worker_connections  1024;
  9. }
  10. http {
  11. include       mime.types;
  12. default_type  application/octet-stream;
  13. #log_format  main  '$remote_addr - $remote_user [$time_local] "$request" '
  14. #                  '$status $body_bytes_sent "$http_referer" '
  15. #                  '"$http_user_agent" "$http_x_forwarded_for"';
  16. #access_log  logs/access.log  main;
  17. sendfile        on;
  18. #tcp_nopush     on;
  19. #keepalive_timeout  0;
  20. keepalive_timeout  65;
  21. #gzip  on;
  22. server {
  23. listen       80;
  24. server_name  localhost;
  25. #charset koi8-r;
  26. #access_log  logs/host.access.log  main;
  27. location / {
  28. #root   html;
  29. root /usr/www;
  30. index  index.html index.htm;
  31. }
  32. #error_page  404              /404.html;
  33. # redirect server error pages to the static page /50x.html
  34. #
  35. error_page   500 502 503 504  /50x.html;
  36. location = /50x.html {
  37. root   html;
  38. }
  39. # proxy the PHP scripts to Apache listening on 127.0.0.1:80
  40. #
  41. #location ~ \.php$ {
  42. #    proxy_pass   http://127.0.0.1;
  43. #}
  44. # pass the PHP scripts to FastCGI server listening on 127.0.0.1:9000
  45. #
  46. #location ~ \.php$ {
  47. #    root           html;
  48. #    fastcgi_pass   127.0.0.1:9000;
  49. #    fastcgi_index  index.php;
  50. #    fastcgi_param  SCRIPT_FILENAME  /scripts$fastcgi_script_name;
  51. #    include        fastcgi_params;
  52. #}
  53. location ~ \.php$ {
  54. root html;
  55. fastcgi_pass 127.0.0.1:9000;
  56. fastcgi_index index.php;
  57. include fastcgi_params;
  58. fastcgi_param SCRIPT_FILENAME /usr/www$fastcgi_script_name;
  59. }
  60. # deny access to .htaccess files, if Apache's document root
  61. # concurs with nginx's one
  62. #
  63. #location ~ /\.ht {
  64. #    deny  all;
  65. #}
  66. }
  67. server {
  68. listen       8054;
  69. server_name  localhost;
  70. location / {
  71. #root   html;
  72. root /usr/www5.4.44;
  73. index  index.html index.htm;
  74. }
  75. error_page   500 502 503 504  /50x.html;
  76. location = /50x.html {
  77. root   html;
  78. }
  79. location ~ \.php$ {
  80. root html;
  81. fastcgi_pass 127.0.0.1:9001;
  82. fastcgi_index index.php;
  83. include fastcgi_params;
  84. fastcgi_param SCRIPT_FILENAME /usr/www5.4.44$fastcgi_script_name;
  85. }
  86. }
  87. # another virtual host using mix of IP-, name-, and port-based configuration
  88. #
  89. #server {
  90. #    listen       8000;
  91. #    listen       somename:8080;
  92. #    server_name  somename  alias  another.alias;
  93. #    location / {
  94. #        root   html;
  95. #        index  index.html index.htm;
  96. #    }
  97. #}
  98. # HTTPS server
  99. #
  100. #server {
  101. #    listen       443 ssl;
  102. #    server_name  localhost;
  103. #    ssl_certificate      cert.pem;
  104. #    ssl_certificate_key  cert.key;
  105. #    ssl_session_cache    shared:SSL:1m;
  106. #    ssl_session_timeout  5m;
  107. #    ssl_ciphers  HIGH:!aNULL:!MD5;
  108. #    ssl_prefer_server_ciphers  on;
  109. #    location / {
  110. #        root   html;
  111. #        index  index.html index.htm;
  112. #    }
  113. #}
  114. }

重启nginx

# /usr/local/nginx/sbin/nginx -s reload

注意需要防火墙增加新端口的开启,不然无法访问:

防火墙配置

注意如果你希望在本地机器例如xp访问虚拟机的网页,如果是centos6需要修改防火墙启动80端口

# cd /etc/sysconfig

修改iptables文件,或者直接用vim编辑

# vim /etc/sysconfig/iptables

添加下面一行,打开防火墙80端口:

-A INPUT -m state --state NEW -m tcp -p tcp --dport 8054 -j ACCEPT

重启防火墙
# /etc/init.d/iptables restart

测试是否成功,查看phpinfo()

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/21aspnet/article/details/47658127

centos安装多版本php相关推荐

  1. centos 安装指定版本gc_番外篇 (1) Docker 安装

    # step 1: 安装必要的一些系统工具 sudo yum install -y yum-utils device-mapper-persistent-data lvm2 # Step 2: 添加软 ...

  2. centos 安装低版本内核_Linux 升级内核

    Centos7 升级内核版本 linux内核官方网站:https://www.kernel.org/ 今天做docker 实验时,发现docker网桥无法正常使用,排查了1个小时,宿主机网络都正常,由 ...

  3. centos 安装低版本内核_Docker安装教程

    Docker的应用场景 Web 应用的自动化打包和发布.自动化测试和持续集成.发布.在服务型环境中部署和调整数据库或其他的后台应用.从头编译或者扩展现有的 OpenShift 或 Cloud Foun ...

  4. CentOS 安装最新版本 Git

    查看默认 yum 源的 git版本 # 安装 yum install -y git# 查看版本 git version# git version 1.8.3.1 参看官网,CentOS 安装新版本有两 ...

  5. CentOS安装指定版本的Mysql

    笔者使用的系统是CentOS 6.5 , 使用yum安装mysql的默认版本是5.1,如果想安装指定版本的mysql,可以通过本帖的方式进行.本文以安装MySQL 5.6为例进行说明. 1.从mysq ...

  6. centos安装特定版本docker 和 docker-compose 以及防火墙的基本操作

    1.防火墙的基本操作 1.查看所有打开的端口 firewall-cmd --zone=public --list-ports 2.开放防火墙端口 firewall-cmd --zone=public ...

  7. 华为服务器centos安装系统版本,华为服务器安装centos7.4

    华为服务器安装centos7.4 内容精选 换一换 由于操作系统已知的内核问题,导致无法ping通裸金属服务器扩展网卡网关.CentOS 7.4及以下版本的7系列操作系统均有此问题.该内核问题已在Ce ...

  8. CentOS安装高版本gcc

    CentOS7自带gcc4.8.5,哪怕用yum install gcc-c++也不能升级到gcc5或者6. 如果想要安装更高版本的gcc,可以按照如下步骤: $ sudo yum install c ...

  9. linux keepalived安装,CentOS安装Keepalived版本2.0.18

    1.基础依赖包安装 yum install gcc yum -y install openssl-devel yum -y install libnl libnl-devel yum -y insta ...

最新文章

  1. photoshop小结
  2. 洛谷1850(NOIp2016) 换教室——期望dp
  3. UVa11464 - Even Parity(递推法)
  4. 开发工具,编辑器字体
  5. rocketmq怎么保证数据不会重复_rocketmq如何保证消息不丢失
  6. ChronicleMap –具有堆外内存的Java体系结构
  7. 用友报表java打不开怎么加载,点报表没反应怎么回事啊?演示账套也打不开。...
  8. 多层动态库的编译及使用
  9. android 传感器 应用,Android移动设备中传感器的应用
  10. 如何在Windows CMD的一行中运行两个命令?
  11. 阶段1 语言基础+高级_1-3-Java语言高级_09-基础加强_第1节 基础加强_1_今日内容(1)...
  12. SmartView函数HypSetActiveConnection使用
  13. [亲自试过有效] 错误1606。无法访问网络位置
  14. Python爬虫项目实战(欧美音乐网站)
  15. WPS 表格自适应图片
  16. android自定义虚线,Android自定义view的方式绘制虚线
  17. 小程序--时间处理(显示几分钟前,,几小时前,,几天前...)
  18. addClass与className的区别
  19. OUC2021秋-计算机网络-期末(回忆版)
  20. Oracle数据库建表 Oracle数据库的统一命名与编码规范

热门文章

  1. 認識暸解合肥話,解讀“偽合肥話”特點
  2. php 公众号发红包,真实案例教你公众号发低于1元的红包
  3. 《机器学习实战》之十一——使用Apriori算法进行关联分析
  4. Apache Pulsar 调研
  5. ReSharper 2021 Crack,源代码生成器应用
  6. 电赛笔记——风力摆 硬件篇
  7. 远程办公:正确使用Windows自带远程桌面
  8. 计算机网络-浅谈运输层(传输层)
  9. python函数实现生日歌的输出_python如何实现生日快乐代码
  10. 恒压供水一拖二(程序图纸) 1.采用西门子224xp plc ,昆仑通态触摸屏;