PHP funktioniert, nur Web-Aufrufe mit Optionen nicht.

M

Micro

Grünschnabel
Hallo zusammen,

für eines meiner Open-Source Projekte wollte ich, zusätzlich zu Debian, noch CentOS8 als Alternative anbieten. Leider gestaltete sich das alles etwas schwieriger als vermutet. Linux ist hier eben doch nicht Linux.

Ich bekomme so weit inzwischen alles installiert. Der httpd läuft, php auch. Was aber nicht funktioniert sind Aufrufe von php über Parameter. Also http:// [ domain ] / [ index.php | (leer) ]?op= [ Parameter ], ob mit oder ohne index.php vorangestellt. Das System frisst einfach nicht die übergebenen Parameter. Jedoch funktioniert die Übermittlung von Daten per POST, beim Login zum Beispiel.

Zur Info, es handelt sich um ein CentOS8 auf einer virtuellen Maschine (QEMU), installiert auf einem Proxmox-Server. Es ist ein "Handelsüblicher" httpd installiert mit PHP von der Stange. Die Firewall, die CentOS Sinnigerweise mitbringt, wird während der Installation deaktiviert, da nicht benötigt bzw. durch etwas anderes ersetzt.

Das Problem habe ich im Fall einer Installation in den /var/www/html Ordner als auch mit Angaben einer Virtuellen Domain unter /srv/www/html zum Beispiel.

Die Rechte der Scripte werden auf den Apache vergeben sowie mit "chcon -R --reference=/var/www /srv/www" angepasst. So funktioniert das PHP zumindest zur Hälfte.

Hat irgend jemand bitte einen Tipp, einen Hinweis, wonach ich noch suchen könnte?

Micro
 
wie sieht denn Deine Apache-Konfig aus? Wie wertest Du im Script die Parameter aus?
 
wie sieht denn Deine Apache-Konfig aus?

So wie sie installiert wird, ohne irgendwelche Veränderungen.

Die Config für die Virtuelle Domain sieht hingegen so aus:

Code:
<VirtualHost *:80>

        ServerAdmin webmaster@localhost
        DocumentRoot /srv/www/openvpn-admin

AccessFileName .htaccess
<FilesMatch "^\.ht">
        Require all denied
</FilesMatch>

<Directory /srv/www/openvpn-admin/>
        Options Indexes FollowSymLinks
        AllowOverride all
        Require all granted
</Directory>

</VirtualHost>

Alle Übergaben werden per $_REQUEST ermittelt und dann entsprechend ausgewertet. Die komplette index.php sieht dann so aus:

PHP:
define('REAL_BASE_DIR', dirname(__FILE__));
require_once(REAL_BASE_DIR."/include/load.php");

if (!isset($_REQUEST["op"])){
    if (Session::GetVar('isuser')){
        $op="main";
     }else{
        $op="login";
     }
}else{
    if (Session::GetVar('isuser')){
        $op=$_REQUEST['op'];
     }else{
        $op=$_REQUEST['op'];
     }
}

/**
 * call the http-broker - class.request.php - and make all sites
 */
$out = new set_request;
$out->set_value('action',$op);
$out->set_value('uname',Session::GetVar('uname'));
$out->set_value('uid',Session::GetVar('uid'));
$out->set_value('isuser',Session::GetVar('isuser'));
$out->set_value('isadmin',Session::GetVar('isadmin'));
$out->set_value('request',$_REQUEST);
$out->main();
 
Fairflixt ...

Kann es sein, dass CentOS lediglich ein nacktes PHP installiert? Also dass zum Beispiel json_encode nicht installiert ist und demnach eigens dafür angegeben werden muss?

Unterscheiden sich die Versionen tatsächlich so sehr voneinander?!
 
Entschuldigung Freunde ... es fehlte tatsächlich nur "yum install php-json" ...

Es gibt da so Momente ....

Danke und Sorry noch mal.
 

Ähnliche Themen

Nginx als Reverse Proxy für Nextcloud und Emby

Squid nur zum maskieren der eigenen IP, nicht für Webserver auf port 80

Open-Xchange auf OpenSuse mit Commu. Installer - Compiler Fehler

Zurück
Oben