Current time: 04-19-2024, 04:50 PM Hello There, Guest! (LoginRegister)


Post Reply 
php-switch via .htaccess (php4/php5)
Author Message
Knut Offline
Member
***

Posts: 736
Joined: Nov 2006
Reputation: 10
Post: #11
RE: php-switch via .htaccess (php4/php5)
Soderle... hier mein altes Script:
Code:
#!/bin/bash

# Autor: Knut Herter
# Web : http://www.systemtechnics.de
# Datum : 04-2007
# Tip : Alle 5 Minuten per Cron starten lassen.

## Variablen setzen

# Verzeichnis der Webs
VWEB=/var/www/virtual

# Verzeichnis des FCGI Starters
VCGI=/var/www/fcgi

# Datei mit Domainkonfiguration
CCGI=fcgi-domains.conf


############
#
# Ab hier nicht mehr aendern
#
############

TMPFILE=`mktemp /tmp/fcgi-fix.XXXXXXXX`

#Domainliste
DOMAINLIST=`ls $VWEB`

for DOMAIN in $DOMAINLIST
do
    ######
    # Konfig-File vorhanden ? Ja, ansonsten anlegen

    if test ! -f $VCGI/$CCGI; then
        touch $VCGI/$CCGI;
    fi

    # Wenn Domain auch im php-Starter-Verzeichnis existiert
    if test -d $VCGI/$DOMAIN; then
        ######
        # Berechtigung (User) ermitteln
        RVWEB=`stat -c%U $VWEB/$DOMAIN`
        RVCGI=`stat -c%U $VCGI/$DOMAIN`

        # Wenn ein File .php5 im Web-Ordner liegt, soll auf
        # php5 umgeschaltet werden

        if test -f $VWEB/$DOMAIN/htdocs/.php5; then
            chown $RVWEB:$RVWEB $VWEB/$DOMAIN/htdocs/.php5
            PHPV=php5
            if test -f $VWEB/$DOMAIN/htdocs/.php4; then
                rm $VWEB/$DOMAIN/htdocs/.php4 -f
            fi
        else
                        PHPV=php4
            touch $VWEB/$DOMAIN/htdocs/.php4
            chown $RVWEB:$RVWEB $VWEB/$DOMAIN/htdocs/.php4
        fi

        #Alte, eingestellte PHP Version einlesen
        PHPVOLD=`grep +$DOMAIN+ $VCGI/$CCGI|cut -d "=" -f 2`

        ######
        # Wenn sich die PHP-Version seit dem letzten Aufruf geaendert hat
        # dann die Verarbeitung starten

        if test "$PHPVOLD" != "$PHPV"; then

            ######
            # Starter Dateien schreiben

                    WFILE=$VCGI/$DOMAIN/php4-fcgi-starter
            echo "#!/bin/sh" > $WFILE
            echo "# Alle alten PHP Prozesse, die dem Init gehoeren, killen" >> $WFILE
            echo "" >> $WFILE
            echo "ps ax -F | awk '{ if ( \$3 == \"1\" && \$1 == \"$RVCGI\" && \$12 == \"/usr/bin/$PHPV-cgi\" ) { print \"kill \" \$2 } }' | sh  " >> $WFILE
            echo "PHPRC=\"/var/www/fcgi/$DOMAIN/$PHPV/\"" >> $WFILE
            echo "export PHPRC" >> $WFILE
            echo "" >> $WFILE
            echo "exec /usr/bin/$PHPV-cgi" >> $WFILE

                    WFILE=$VCGI/$DOMAIN/php5-fcgi-starter
                    echo "#!/bin/sh" > $WFILE
                    echo "# Alle alten PHP Prozesse, die dem Init gehoeren, killen" >> $WFILE
                    echo "" >> $WFILE
                        echo "ps ax -F | awk '{ if ( \$3 == \"1\" && \$1 == \"$RVCGI\" && \$12 == \"/usr/bin/$PHPV-cgi\" ) { print \"kill \" \$2 } }' | sh  " >> $WFILE
                    echo "PHPRC=\"/var/www/fcgi/$DOMAIN/$PHPV/\"" >> $WFILE
                    echo "export PHPRC" >> $WFILE
                    echo "" >> $WFILE
                    echo "exec /usr/bin/$PHPV-cgi" >> $WFILE

        fi


                if test "$PHPVOLD" != "$PHPV"; then
                    echo -e "php-Version (alt) = $PHPVOLD - php-Version (neu) = $PHPV - \033[1;32m$DOMAIN \033[1;0m"
        else
                        echo -e "php-Version (alt) = $PHPVOLD - php-Version (neu) = $PHPV - $DOMAIN"
        fi

        ######
        # aktuelle/neue php Version merken
                echo "+$DOMAIN+=$PHPV" >> $TMPFILE
    fi

done

    # Neue Konfiguration schreiben
        cp $TMPFILE $VCGI/$CCGI -f
        rm $TMPFILE

Fragt mich bitte nicht mehr zu Einzelheiten warum ich wie etwas gemacht habe. Im Prinzip wird in dem Script geschaut ob eine bestimmte Datei (.php5) im htdocs Verzeichnis liegt und entsprechend der fcgi-starter umgeschrieben. Vielleicht hilft es Dir ja damit zwischen den Versionen umzuschalten. Du musst dafür das Script noch ein wenig anpassen.

Knut
12-05-2010 09:58 PM
Find all posts by this user Quote this message in a reply
Post Reply 


Forum Jump:


User(s) browsing this thread: 1 Guest(s)