mehrere php auf apache centos

Wie kann ich mehrere php-Versionen laufen auf Centos 6.5 in der gleichen Zeit ?

Hier ist, wie.

Anforderungen
Centos 6.5 (Möglich funktioniert mit 6,6 und 7)
Apache ist Apache/2.2.15 (Möglich, funktioniert auch mit anderen Versionen)

Dieser Anleitung installiert und verwendet
FASTCGI (siehe die Kommentare für alternative installation)
PHPFARM

Diese Installation war auf diese Weise getan, so wäre es kompatibel mit iredmail.
Sie können installieren iredmail auf einem server mit diesem set-up.

Schritt 1
Installation 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/

Für jede php-version, die Sie ausführen möchten. Allerdings, Wenn Sie wollen custom Module wie mysql-Unterstützung, überspringen Sie diesen und sehen Sie den Teil unterhalb es.

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

Wenn Sie erhalten Fehlermeldungen kompilieren, neu starten und try./compile.sh 5.3.1 wieder
Dieser arbeitete für mich, wenn ich lief in dieses problem,

MYSQL & Modul-Unterstützung
Schritte für die Aufnahme von MySQL-Unterstützung (und andere Module) für eigene phpfarm installieren der php-version 5.5.14. Diese Anleitung funktioniert für jede version nur umbenennen 5.5.14, was jemals so 5.4.3. Sie brauchen natürlich einen mysql-server zu verbinden, um zu machen, verwenden Sie das mysql-Modul in php.

Diese Schritte müssen in dieser Reihenfolge durchgeführt werden

Schritt 1A
Sicherzustellen, dass Sie haben diese Pfade und das Datum bzw. die Uhrzeit korrekt ist, habe ich diese als root. Sie sollten das Datum.Zeitzone, die Sie verwenden möchten.

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

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

Schritt 1B
Sicherzustellen, dass Sie haben diese Pfade und das Datum bzw. die Uhrzeit richtig ist

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

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

Schritt 1C
Achten Sie besonders auf diese Zeile

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

es muss angepasst werden, für die version mit der Sie arbeiten. Als root

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"

Schritt 1D
Jetzt kompilieren Sie als root. Phpfarm sucht automatisch nach einer Datei namens custom-options-5.5.14.sh beim kompilieren 5.5.14, oder jeder anderen version natürlich mit jeweiligen Versionsnummern.

./compile.sh 5.5.14

Später, wenn Sie überprüfen Sie heraus Ihre web-Seite mit dem phpinfo (); - Funktion, werden Sie sehen, Unterstützung für diese Module und die verschiedenen "Configure-Befehl" text auf der Seite.


Wenn diese Schritte nicht abgeschlossen werden, um Sie kann es wieder tun.
Um dies wieder tun, entfernen Sie zuerst die Dateien aus dem src-Ordner und in den inst-Ordner.

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

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

Sich die rm entfernen Sie den Ordner und -rf steht für r rekursiv und f die Kraft.
Ref: http://linuxcommand.org/lc3_man_pages/rm1.html


Wenn du Fehler überprüfen Sie mit dieser Website. Es gibt andere, aber ich fand diese man hilfreich.

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


Referenz für die mysql-Modul und Unterstützung

Problem Aktivierung der php-Erweiterung mit PHP Farm

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


Schritt 2
Hinzufügen phpfarm zu Ihren Profilen

fügen Sie diese auf den Boden .bashrc für root und nicht-root-Benutzer. Die .bashrc-Datei kann gefunden werden in das Benutzer-root-Ordner oder cd~/, dann ls -all und Sie sollten es sehen.

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

zudem führen Sie diese in Klemme, nachdem Sie Hinzugefügt haben, es zu der .bashrc-Dateien für root und nicht-root-Benutzer

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

nun verlassen Sie das terminal und melden Sie sich erneut an. versuchen Sie diesen Befehl,

switch-phpfarm 5.5.11

sollten Sie in der Lage sein, um hin-und herschalten zwischen diff php-Versionen

[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]#

fügen Sie den repo für CentOS/RHEL 6, 64-Bit (x86_64):

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

Schritt 3
installieren Sie die yums

yum install php php-cli mod_fastcgi

HINWEIS:
an diesem Punkt, wenn Sie versuchen, führen Sie die switch-phpfarm 5.5.11 wird es nicht richtig funktionieren, aber das ist ok. wir werden noch in der Lage, mehrere websites mit unterschiedlichen php-Versionen

Schritt 4
Sicherzustellen, dass Ihre cgi-bin angelegt und die Dateien konfiguriert,

$ cd  /var/www

Wenn das cgi-bin ist nicht bereits hier schaffen es

$ mkdir cgi-bin

Für jede version von php Sie verwenden möchten, machen Sie eine dieser Dateien. Ersetzen Sie das Ende mit der Versionsnummer

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

Schritt 5
In der Datei 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

Die erste Zeile

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

Sagt, du Hexe php.ini zu nutzen, das ist anders als in ubuntu. Die Letzte Zeile

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

muss ebenfalls geändert werden die in der jeweiligen version. Ich bin nicht sicher, was es macht, aber ich weiß, dass es geändert werden muss.

Schritt 6
Aktivieren von fastcgi-Dateien ausführbare Datei für den apache-Webserver:apache-Benutzer und die Gruppe

Beispiel 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

Beispiel 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

Beispiel 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

Schritt 7
Das Bearbeiten der httpd.conf-Datei
Hier ist, was Sie brauchen für die /etc/httpd/conf/httpd.conf-Datei.
Finden Sie zuerst "NameVirtualHost *:80" und verwenden Sie diese als Ausgangspunkt.Die "#" bedeutet, dass die Zeile auskommentiert ist. Kommentieren Sie diese Zeile durch löschen des #. es Sollte nun wie folgt Aussehen.

NameVirtualHost *:80

Dies wird ermöglichen, dass mehrere virtuelle host zu betreiben, die auf Apache -, die durch Ihre "ServerName" in jedem virtuellen host verweisen. Ich ließ einige Zeilen kommentiert, um zu zeigen, was Sie tun können, ohne. Stellen Sie sicher, dass die Unterseite der /etc/httpd/conf/httpd.conf sieht wie folgt aus.

<VirtualHost *:80>
    ServerName test1.com
   #ServerAdmin [email protected]
    DocumentRoot /var/www/html/test1
    ScriptAlias /cgi-bin/"/var/www/cgi-bin/"
    <Directory "/var/www/html/test1">
            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
    </Directory>
</VirtualHost>
<VirtualHost *:80>
    ServerName test2.com
#   ServerAdmin [email protected]
    DocumentRoot /var/www/html/test2
    ScriptAlias /cgi-bin/"/var/www/cgi-bin/"
    <Directory "/var/www/html/test2">
            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
    </Directory>
</VirtualHost>
<VirtualHost *:80>
    ServerName test3.org
#   ServerAdmin [email protected]
    DocumentRoot /var/www/html/test3
    ScriptAlias /cgi-bin/"/var/www/cgi-bin/"
    <Directory "/var/www/html/test3">
            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
    </Directory>
</VirtualHost>
<VirtualHost *:80>
    ServerName test4.net
#   ServerAdmin [email protected]
    DocumentRoot /var/www/html/test6
</VirtualHost>

Schritt 8
Bearbeiten der etc/hosts-Datei
hier ist, was u müssen in der etc/hosts-Datei.

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

Schritt 9

Nun Ihren server neu starten,

service httpd restart

Schritt 10
Testen
wenn Sie hinzufügen von phpinfo() zu jeder der index.php Websites, die Sie werden feststellen, dass alle php-Versionen unterschiedlich sein werden. auch der Letzte test4.net die Standardeinstellung für centos. Beachten Sie auch, dass test3.org und test4.net nicht .com ist aber immer noch funktionieren. In der Zukunft Plane ich, um einen Leitfaden für die phpfarm-Dateien, so können Sie installieren, mit mysql-Unterstützung. Dies war ein weiteres Problem, mit dem ich über den Weg gelaufen. Wenn Sie feststellen, dass einige Fehler in diesem oder schwer, damit es funktioniert, bitte Kommentar, und ich werde es sobald ich kann.

Ich bin an dem Punkt, wo ich bin läuft switch-phpfarm 5.5.11 aber es zeigt immer noch php 5.3.3. Irgendwelche Vorschläge?
es herausgefunden. Ich hatte auch schon php mit yum installiert, damit ich bemerkt, dies ist zu erwarten. Versuchen, herauszufinden, wie ot dies tun, ohne dieses Problem
Ich habe keine Ahnung, was die Ursache dieses, ich kann mir vorstellen es hat mit der Tatsache zu tun, dass die Haupt-php über Apache als normal und nicht als fastcgi. Wenn Sie es herausfinden, lassen Sie es mich bitte wissen und ich werde fügen Sie die details für die anderen.
Ich änderte yum install php php-cli mod_fastcgi zu yum install mod_fastcgi und ich habe jetzt kein Problem. Ich bin immer noch in der Lage zu switch-phpfarm und auch dies ermöglicht mir, meinen Standard-PHP-während nur zu spezialisieren installiert für andere Aromen. Ich habe eine spezielle config für die Erstellung meiner PHP installiert, bevor Sie zu installieren. So weit So gut, ich lasse Euch wissen, wenn ich irgendwelche Probleme. Ich bin das konfigurieren eines neuen Servers in dieser Woche, dies sollte ein guter test für dieses setup.
Ich werde die Abstimmung zu schließen, ist diese Frage off-topic, denn es ist nicht die Frage.

InformationsquelleAutor Harry Fairbanks | 2014-04-28

Schreibe einen Kommentar