Current time: 09-28-2024, 08:37 AM Hello There, Guest! (LoginRegister)


Thread Closed 
[ERLEDIGT - Redhat/Centos-Besonderheit] PHP5 als CGI?
Author Message
jmeyerdo Offline
Junior Member
*

Posts: 173
Joined: Oct 2007
Reputation: 2
Post: #1
[ERLEDIGT - Redhat/Centos-Besonderheit] PHP5 als CGI?
Hallo!

Da ich zur Zeit mit der Installation im OpenVZ-Server wegen des iptables-Problems (s. anderer Thread in der "German Corner") nicht weiterkomme, werde ich morgen eine neue Installation auf einem dedizierten Server starten.

Um es gleich richtig zu machen, folgende Frage(n):
Aus Sicherheitsgründen würde ich PHP gerne als CGI laufen lassen. Im Forum/in der FAQ habe ich diverse Beiträge gelesen, dass das von ispCP wohl unterstützt wird.
Bei meiner aktuellen Testversion wird die ispCP-Admin-Oberfläche aber als mod-php ausgeliefert.
Files/Verzeichnisse wie:
/var/www/fcgi/master/php5-fcgi-starter
/var/www/fcgi
/usr/bin/php-cgi
sind alle vorhanden.

Gibt es dort Installationshinweise für Fedora/Redhat EL/CentOS, damit bei den "Kundenwebs" PHP als CGI eingesetzt wird?
Oder werden Kundenwebs automatisch anders generiert?

Viele Grüße, Jens
(This post was last modified: 10-28-2007 07:49 PM by jmeyerdo.)
10-15-2007 11:23 PM
Find all posts by this user
ephigenie Offline
Project Leader
*******
Administrators

Posts: 1,578
Joined: Oct 2006
Reputation: 15
Post: #2
RE: PHP5 als CGI?
Standard bei einer Neuinstallation aus dem trunk ist php als fastcgi/suexec laufen zu lassen.
Eine CGI Variante dürfte nicht unbedingt sehr viel mehr Sicherheit bieten, jedoch weniger Geschwindigkeit.
10-15-2007 11:33 PM
Visit this user's website Find all posts by this user
jmeyerdo Offline
Junior Member
*

Posts: 173
Joined: Oct 2007
Reputation: 2
Post: #3
RE: PHP5 als CGI?
Hi!

Vielen Dank für die schnelle Antwort.

Sorry, meinte auch "fastcgi/suexec".
Läuft das "automatisch" bei der trunk-Version, wenn man ansonsten der Fedora-Anleitung gefolgt ist?
Wie gesagt, zur Zeit läuft der Admin-Bereich ispCP definitiv als mod_php. Da bei dem Server die Generierung nicht geht, kann ich die Clients leider nicht einsehen...

Viele Grüße, Jens
10-15-2007 11:37 PM
Find all posts by this user
jmeyerdo Offline
Junior Member
*

Posts: 173
Joined: Oct 2007
Reputation: 2
Post: #4
RE: PHP5 als CGI?
Hallo!

Ich habe nun diverse Dinge zu fastcgi/fcgi/usw. gelesen und einiges probiert.

Leider denke ich, dass bei den (mittlerweile) eingerichteten User-Domains fastcgi nicht aktiviert ist.
Außerdem kann ich per "phpshell" in dieser User-Domain über den kompletten Server navigieren...

Mein System ist CentOS5 und ich habe mod_fastcgi manuell kompiliert und in den Apache eingebunden. Es wird beim Apache auch als geladenes Modul angezeigt.

Ein phpinfo() liefert allerdings immer noch folgende Daten:
Code:
Server API     Apache 2.0 Handler

"fastcgi" taucht nur als "mod_fastcgi" bei den "Loaded Modules" vom "apache2handler" auf.
"/usr/sbin/suexec" ist vorhanden.

Wenn ich in der httpd-config das Modul für PHP5 deaktiviere, werden die PHP-Seiten gar nicht mehr geparset.

Muss ich PHP auf CentOS ggf. noch extra mit aktiviertem "fastcgi" manuell kompilieren - oder habe ich sonst eine Konfiguration übersehen?

Viele Grüße, Jens
(This post was last modified: 10-27-2007 04:10 AM by jmeyerdo.)
10-27-2007 04:09 AM
Find all posts by this user
joximu Offline
helper
*****
Moderators

Posts: 7,024
Joined: Jan 2007
Reputation: 92
Post: #5
RE: PHP5 als CGI?
jmeyerdo Wrote:Wenn ich in der httpd-config das Modul für PHP5 deaktiviere, werden die PHP-Seiten gar nicht mehr geparset.

php-mod bzw. mod-php muss abe raus, um ganz sicher zu gehen.

Dann kann die Suche nach den Fehlern losgehen...

jmeyerdo Wrote:Muss ich PHP auf CentOS ggf. noch extra mit aktiviertem "fastcgi" manuell kompilieren - oder habe ich sonst eine Konfiguration übersehen?

Gibt's nichts fertiges von CentOS?

/J
10-27-2007 04:40 AM
Visit this user's website Find all posts by this user
Sweeny Offline
Junior Member
*

Posts: 74
Joined: Oct 2007
Reputation: 1
Post: #6
RE: PHP5 als CGI?
Hi

hast du schonmal folgende Änderungen in deiner COnfig versucht?
Code:
FastCgiIpcDir /tmp/fcgi-ipc/
FastCgiServer /usr/local/php5/bin/php
AddHandler php-fastcgi .php

<Location /cgi>
SetHandler fastcgi-script
</Location>

Action php-fastcgi /cgi-bin/php
AddType application/x-httpd-php .php

<Directory "/var/www/virtual">
Options ExecCGI
</Directory>

Gruß
Sw1fty
10-27-2007 05:25 AM
Find all posts by this user
jmeyerdo Offline
Junior Member
*

Posts: 173
Joined: Oct 2007
Reputation: 2
Post: #7
RE: PHP5 als CGI?
Hi!

Danke für die schnelle Antwort.
Habe leider schon x-mal erfolglos gegooglet (CentOS, RHEL) die Tage. Alles manuelle Anleitungen - mal mit, mal ohne Neukompilierung von PHP.

Das Modul mod_php (php5) hatte ich ja schon deaktiviert. Dann wurde PHP als Textdatei ausgegeben.
Wo sollte man da dann weitersuchen?

Oops - Posting-Überschneidung.
Hi Sw1fty, CentOS-Profi. Wink
Muss ich morgen früh mal im Detail vergleichen. Den Pfad zum Directory (bei Dir jetzt (tmp/...) hatte ich auf jeden Fall angepasst, weil das ja "pure debian" war...

VG, Jens
(This post was last modified: 10-27-2007 05:31 AM by jmeyerdo.)
10-27-2007 05:28 AM
Find all posts by this user
Sweeny Offline
Junior Member
*

Posts: 74
Joined: Oct 2007
Reputation: 1
Post: #8
RE: PHP5 als CGI?
Hi Wink
ich hab mal noch das gefunden schau mal ob bei dir fastcgi nicht auch schon an ist:
jason, good to see you here. Smile

Lenard, fastcgi is already compiled in CentOS. Do this:
$ php-cgi -v

You will get something like:
PHP 5.1.6 (cgi-fcgi) (built: Apr 20 2007 12:25:28)
Copyright © 1997-2006 The PHP Group
Zend Engine v2.1.0, Copyright © 1998-2006 Zend Technologies

So if you want fastcgi, use php-cgi instead of php exec.
Simple, heh?

Gruß
Sw1fty
10-27-2007 05:38 AM
Find all posts by this user
Sweeny Offline
Junior Member
*

Posts: 74
Joined: Oct 2007
Reputation: 1
Post: #9
RE: PHP5 als CGI?
Also ich habs auf meiner CentOS Kiste grad mal nachgeschaut Wink
Code:
[root@ispcp ~]# php-cgi -v
PHP 5.2.4 (cgi-fcgi) (built: Aug 31 2007 16:18:01)
Copyright (c) 1997-2007 The PHP Group
Zend Engine v2.2.0, Copyright (c) 1998-2007 Zend Technologies

Also fcgi is prinzipiel drin in php allerdings benutz ich php ausm remi repos und nicht mehr das original PHP nachdem mir das zu alt war.
Bekommen kannst du es wie in Punkt 16.) in meinem CentOS how to beschrieben:
Code:
16.) Get the latest PHP Version (This is optional)
# rpm -Uvh http://remi.collet.free.fr/rpms/el5.i386/remi-release-5-2.el5.remi.noarch.rpm
# yum --enable remi update php-\*
Sometimes libc-client.so.2006 is missing ... so we need to get it
# rpm -Uvh ftp://fr.rpmfind.net/linux/fedora/extras/development/i386/libc-client2006-2006g-3.fc7.i386.rpm

Ich glaube man musste bei CgiServer dann den pfad zu php-cgi eintragen statt zu php. Bin mir aber nicht mehr sicher denn ich benutze php lieber als mod_php.

Gruß
Sw1fty
(This post was last modified: 10-27-2007 07:56 AM by Sweeny.)
10-27-2007 07:51 AM
Find all posts by this user
jmeyerdo Offline
Junior Member
*

Posts: 173
Joined: Oct 2007
Reputation: 2
Post: #10
RE: PHP5 als CGI?
Hallo joximu, Sw1fty, hallo allerseits!

Vielen Dank für die ausführlichen Tipps. Ich habe daraufhin ein wenig weiter "geforscht"...
"php-cgi" ist bei mir als Executable vorhanden. Nur die Ansteuerung vom Apache scheint nicht zu klappen. Dafür brauche ich doch mod_fastcgi, oder? (Oder die Alternative mod_fcgid, die von isp-CP allerdings im Moment noch nicht unterstütz wird, wenn ich es richtig sehe.)

Folgendes habe ich gemacht:
- ispcp.conf - Dateiname des Executables (php-cgi) angepasst
- .../fcgi/test23.de/php5-fcgi-starter - Dateiname des Executables (php-cgi) angepasst
- Laden von "modules/libphp5.so" deaktiviert
- Laden von "modules/mod_fastcgi.so" aktiviert (und "AddHandler fastcgi-script fcg fcgi fpl")

Jetzt werden php-Dateien nicht mehr geparset, sondern der Sourcecode wird ausgeliefert.

Deine Einstellungsvorschläge, Sw1fty, sind in meiner Conf doch enthalten (fastcgi_ispcp.conf)?!
Code:
<IfModule mod_fastcgi.c>
        FastCgiWrapper On
        # FastCgiIpcDir /var/lib/apache2/fastcgi
        FastCgiIpcDir /var/lib/httpd/fastcgi/
        FastCgiConfig -minProcesses 1 -maxProcesses 10 -singleThreshold 100
                      #-killInterval 300 \
                      #-autoUpdate \
                      #-idle-timeout 240 \
                      #-pass-header HTTP_AUTHORIZATION

        FastCgiServer /var/www/fcgi/master/php5-fcgi-starter -user vu2000 -group vu2000

        #
        # PHP5 SUPPORT
        #

        AddHandler php-fastcgi .php .php5

        <Location /php5/php5-fcgi-starter>
            SetHandler fastcgi-script
            Options +ExecCGI
        </Location>

        Action php-fastcgi /php5/php5-fcgi-starter
        AddType application/x-httpd-php .php .php5
</IfModule>

Der entsprechende Teil in der ispcp.conf der VirtualHosts lautet:
Code:
# httpd dmn entry PHP2 support BEGIN.
    <IfModule mod_php4.c>
        php_admin_value open_basedir "/var/www/virtual/test23.de:/var/www/virtual/test23.de/phptmp:/usr/share/pear"
        php_admin_value upload_tmp_dir "/var/www/virtual/test23.de/phptmp"
        php_admin_value session.save_path "/var/www/virtual/test23.de/phptmp"
        php_admin_value sendmail_path '/usr/sbin/sendmail -f vu2001 -t -i'
    </IfModule>
    <IfModule mod_php5.c>
        php_admin_value open_basedir "/var/www/virtual/test23.de:/var/www/virtual/test23.de/phptmp:/usr/share/pear"
        php_admin_value upload_tmp_dir "/var/www/virtual/test23.de/phptmp"
        php_admin_value session.save_path "/var/www/virtual/test23.de/phptmp"
        php_admin_value sendmail_path '/usr/sbin/sendmail -f vu2001 -t -i'
    </IfModule>
    <IfModule mod_fastcgi.c>
        ScriptAlias /php4/ /var/www/fcgi/test23.de/
        ScriptAlias /php5/ /var/www/fcgi/test23.de/
        <Directory "/var/www/fcgi/test23.de">
            AllowOverride None
            Options +ExecCGI -MultiViews -Indexes
            Order allow,deny
            Allow from all
        </Directory>
        DirectoryIndex index.php
    </IfModule>
    # httpd dmn entry PHP2 support END.

    <Directory /var/www/virtual/test23.de/htdocs>
        # httpd dmn entry PHP support BEGIN.
        # httpd dmn entry PHP support END.
        Options -Indexes Includes FollowSymLinks MultiViews
        AllowOverride All
        Order allow,deny
        Allow from all
    </Directory>

Durch den DirectoryIndex-Eintrag kann ich sehen, dass der Teil tatsächlich berücksichtigt wird. Leider wird das PHP aber nur als Source ausgeliefert.
Wo könnte ich hier weiter debuggen? Oder doch PHP manuell mit "--enable-fastcgi" kompilieren?

Viele Grüße,

Jens
10-27-2007 09:49 PM
Find all posts by this user
Thread Closed 


Forum Jump:


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