当前位置:  开发笔记 > 编程语言 > 正文

apache centos上有多个php

如何解决《apachecentos上有多个php》经验,为你挑选了0个好方法。

如何在Centos 6.5上同时运行多个php版本?

这是如何做.

要求
Centos 6.5(可能适用于6.6和7)
Apache Apache/2.2.15(可能与其他版本一起使用)

本指南安装并使用
FASTCGI(请参阅替代安装的注释)
PHPFARM

此安装以这种方式完成,因此它可以与iredmail兼容.
您可以使用此设置在服务器上安装iredmail.

第1步
安装PHPFarm

yum install gcc libxml2-devel openssl-devel bzip2-devel curl-devel libjpeg-devel     freetype-devel icu libicu-devel gcc-c++ postgresql-devel aspell-devel git -y

$ cd /opt/
$ git clone https://github.com/cweiske/phpfarm.git phpfarm
$ cd phpfarm/src/
$ cd /opt/phpfarm/src/

对于每个版本的php,你想运行它.但是,如果您希望自定义模块(例如mysql支持)跳过这个并看到它下面的部分.

$ ./compile.sh 5.3.1
$ ./compile.sh 5.3.3
$ ./compile.sh 5.5.11

如果你得到编译错误,重新启动和try./compile.sh 5.3.1再次当我遇到这个问题

MYSQL和模块支持
步骤获得MySQL支持(和其他模块)自定义phpfarm安装的PHP版本5.5 0.14.这些说明适用于任何版本,只需将5.5.14重命名为5.4.3.你当然需要一个mysql服务器连接到php中使用mysql模块.
这些步骤需要按此顺序完成
步骤1A
确保您拥有这些路径并且日期时间正确我以root身份执行此操作.你应该有你想要使用的date.timezone.

cd /opt/phpfarm/src
vi custom-php.ini

date.timezone=America/Halifax
include_path=".:/opt/phpfarm/inst/php-$version/pear/php/"

步骤1B
确保您拥有这些路径并且日期时间正确

cd /opt/phpfarm/src
vi default-custom-php.ini

date.timezone=America/Halifax
include_path=".:/opt/phpfarm/inst/php-$version/pear/php/"

步骤1C
特别注意这一行

--with-config-file-path=/opt/phpfarm/inst/php-5.5.11/lib/ \

它需要根据您使用的版本进行调整.作为根

vi custom-options-5.5.14.sh

#!/bin/bash

#gcov='--enable-gcov'
configoptions="
--disable-debug \
--with-config-file-path=/opt/phpfarm/inst/php-5.5.11/lib/ \
--enable-short-tags \
--with-pear \
--enable-bcmath \
--enable-calendar \
--enable-exif \
--enable-ftp \
--enable-mbstring \
--enable-pcntl \
--enable-soap \
--enable-sockets \
--enable-wddx \
--enable-zip \
--with-zlib \
--with-gettext \
--enable-pdo \
--with-pdo-mysql \
--enable-cgi \
--enable-json \
--with-curl \
--with-openssl \
--enable-openssl \
--with-mysql \
--enable-mysql \
$gcov"

步骤1D
现在以root身份编译.当您编译5.5.14时,Phpfarm将自动查找名为custom-options-5.5.14.sh的文件,或者当然包含相应版本号的任何其他版本.

./compile.sh 5.5.14

稍后当您使用phpinfo()检出您的网页时; 功能,您将看到对这些模块的支持以及页面上不同的"配置命令"文本.


如果这些步骤没有完成,您可能需要再次执行此操作.为了再次执行此操作,首先从src文件夹和inst文件夹中删除文件.

rm -rf /opt/phpfarm/inst/php-5.5.14

rm -rf /opt/phpfarm/src/php-5.5.14

rm将删除文件夹,-rf代表r recursive和f force.参考:http://linuxcommand.org/lc3_man_pages/rm1.html


如果您有错误,请查看此站点.还有其他但我发现这个有用.

http://crybit.com/20-common-php-compilation-errors-and-fix-unix/


参考mysql和模块支持

使用PHP Farm激活php扩展的问题

PHP编译错误
http://crybit.com/20-common-php-compilation-errors-and-fix-unix/


步骤2
将phpfarm添加到您的个人资料

将此添加到.bashrc的底部,用于root用户和非root用户..bashrc文件可以在用户根文件夹中找到,或者cd~ /然后是ls -all,你应该看到它.

PATH="$PATH:/opt/phpfarm/inst/bin:/opt/phpfarm/inst/current-bin"

在将其添加到root用户和非root用户的.bashrc文件后,也会在终端中执行此操作

export PATH="$PATH:/opt/phpfarm/inst/bin:/opt/phpfarm/inst/current-bin"

现在退出终端并重新登录.尝试此命令

switch-phpfarm 5.5.11

你应该能够在diff php版本之间来回切换

[root@test joe]# switch-phpfarm 5.5.11
Setting active PHP version to 5.5.11
PHP 5.5.11 (cli) (built: May 17 2014 22:01:31) (DEBUG)
Copyright (c) 1997-2014 The PHP Group
Zend Engine v2.5.0, Copyright (c) 1998-2014 Zend Technologies
[root@test joe]#

添加CentOS/RHEL 6,64位(x86_64)的仓库:

cd /tmp
rpm -Uvh http://packages.sw.be/rpmforge-release/rpmforge-release-0.5.3-1.el6.rf.x86_64.rpm

第3步
安装yums

yum install php php-cli mod_fastcgi

注意 ,此时如果您尝试运行switch-phpfarm 5.5.11它将无法正常工作,但没关系.我们仍然可以使用不同版本的php运行多个网站

步骤4
确保已创建cgi-bin并配置文件

$ cd  /var/www

如果cgi-bin还没有在这里创建它

$ mkdir cgi-bin

对于您打算使用的每个版本的php,请使用其中一个文件.将结尾替换为版本号

vi /var/www/cgi-bin/php.fastcgi.5.5.11

步骤5
在文件php.fastcgi.5.5.11中

#!/bin/bash
PHPRC="/opt/phpfarm/src/php-5.5.11/php.ini-development"
PHP_FCGI_CHILDREN=4
PHP_FCGI_MAX_REQUESTS=1000
export PHPRC
export PHP_FCGI_CHILDREN
export PHP_FCGI_MAX_REQUESTS
exec /opt/phpfarm/inst/bin/php-cgi-5.5.11

第一行

PHPRC="/opt/phpfarm/src/php-5.5.11/php.ini-development"

告诉你巫婆php.ini使用这个在ubuntu中是不同的.最后一行

exec /opt/phpfarm/inst/bin/php-cgi-5.5.11

还需要针对每个特定版本进行更改.我不知道它做了什么,但我知道它需要改变.

步骤6
为apache启用fastcgi文件可执行:apache用户和组

例1

[root@test joe]# chown apache:apache /var/www/cgi-bin/php.fastcgi.5.5.11
[root@test joe]# chmod +x /var/www/cgi-bin/php.fastcgi.5.5.11

例2

[root@test joe]# chown apache:apache /var/www/cgi-bin/php.fastcgi.5.3.3
[root@test joe]# chmod +x /var/www/cgi-bin/php.fastcgi.5.3.3

例3

[root@test joe]# chown apache:apache /var/www/cgi-bin/php.fastcgi.5.3.1
[root@test joe]# chmod +x /var/www/cgi-bin/php.fastcgi.5.3.1

步骤7
编辑httpd.conf文件
以下是/etc/httpd/conf/httpd.conf文件所需的内容.首先找到"NameVirtualHost*:80"并将其作为起点."#"表示该行被注释掉.通过删除#取消注释该行.它现在应该是这样的.

NameVirtualHost *:80

这将允许多个虚拟主机在每个虚拟主机引用中通过其"ServerName"在Apache上运行.我留下了一些评论,告诉你你可以做什么没有.确保/etc/httpd/conf/httpd.conf的底部如下所示.


    ServerName test1.com
   #ServerAdmin admin@tecadmin.net
    DocumentRoot /var/www/html/test1
    ScriptAlias /cgi-bin/ "/var/www/cgi-bin/"
    
            Options +Indexes FollowSymLinks +ExecCGI
            AddHandler php5-fastcgi .php
            Action php5-fastcgi /cgi-bin/php.fastcgi.5.5.11
            AllowOverride All
            Order allow,deny
            Allow from All
    


    ServerName test2.com
#   ServerAdmin admin@tecadmin.net
    DocumentRoot /var/www/html/test2
    ScriptAlias /cgi-bin/ "/var/www/cgi-bin/"
    
            Options +Indexes FollowSymLinks +ExecCGI
            AddHandler php5-fastcgi .php
            Action php5-fastcgi /cgi-bin/php.fastcgi.5.3.3
            AllowOverride All
            Order allow,deny
            Allow from All
    


    ServerName test3.org
#   ServerAdmin admin@tecadmin.net
    DocumentRoot /var/www/html/test3
    ScriptAlias /cgi-bin/ "/var/www/cgi-bin/"
    
            Options +Indexes FollowSymLinks +ExecCGI
            AddHandler php5-fastcgi .php
            Action php5-fastcgi /cgi-bin/php.fastcgi.5.3.1
            AllowOverride All
            Order allow,deny
            Allow from All
    


    ServerName test4.net
#   ServerAdmin admin@tecadmin.net
    DocumentRoot /var/www/html/test6

步骤8

这里编辑etc/hosts文件是etc/hosts文件中你需要的.

127.0.0.1   localhost test1.com test2.com test3.org test4.net
::1         localhost localhost.localdomain localhost6 localhost6.localdomain6

第9步

现在重启你的服务器

service httpd restart

步骤10
测试
是否将phpinfo()添加到每个index.php站点,您会注意到所有php版本都不同.最后一个test4.net将使用centos的默认值.另请注意,test3.org和test4.net不是.com的,但仍然可以使用.将来我计划为phpfarm文件制作一个指南,以便你可以安装mysql支持.这是我遇到的另一个问题.如果您发现此处有一些错误或难以使其发挥作用,请发表评论,我会尽快完成.

推荐阅读
手机用户2402851335
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有