[gelöst]Mediawiki update.php ausführen

Alle weiteren Dienste, die nicht in die drei oberen Foren gehören.
Antworten
Artim
Beiträge: 86
Registriert: 22.11.2019 11:33:28

[gelöst]Mediawiki update.php ausführen

Beitrag von Artim » 14.03.2020 11:31:50

Ich versuche aktuell eine php-Datei von der Kommandozeile aus auszuführen. Genauer gesagt handelt es sich dabei um den Datenbank-Updater von Mediawiki. Diese benötigt dazu die LocalSettings.php, in der die Variable "SERVER_NAME" vorkommt.

Code: Alles auswählen

<?php
error_reporting( -1 );
ini_set( 'display_errors', 1 );
// Include common settings to all wikis before this line (eg. database configuration)

        switch ( $_SERVER['SERVER_NAME'] ) {
                case 'wiki.xyz.de':
                        require_once 'LocalSettings.wiki.xyz.de.php';
                        break;
		case 'wiki.abc.de':
                       require_once 'LocalSettings.wiki.abc.php';
                       break;	

                default:
                        header( 'HTTP/1.1 404 Not Found' );
                        echo 'This wiki is not available. Check configuration.';
                        exit( 0 );
        }
 
Ein ausführen via php (-f) update.php funktioniert natürlich nicht, da kein Servername übergeben werden kann und somit php nicht weiß, welchen Fall es auszuwählen hat. Nun kann php seinen eigenen Server nutzen, es müsste also reichen ein -S wiki.xyz.de mitzugeben. Aber daraufhin bekomme ich nur "Invalid address" zurück. Das Web-Interface kann ich auch nicht nutzen. Da habe ich mit

Code: Alles auswählen

error_reporting( -1 );
ini_set( 'display_errors', 1 );
Eine Fehlerausgabe erzwungen, das Ergebnis ist hier zu sehen:http://img4web.com/i/DVERS.png

Einen Schritt weiter bin ich gekommen mit

Code: Alles auswählen

php -f update.php -S wiki.xyz.de:8080 -t ../
und dem Anbinden des Ports 8080 an den Port 8080 des lokalen PCs mit

Code: Alles auswählen

ssh -L 8080:localhost:8080 root@server.de -N
, im Browser ließ sich dann die erste Seite des Update Prozesses nutzen, beim Weiterklicken kam dann in nur "This wiki is not available. Check configuration."
Allerdings komme ich nicht zuverlässig auf diese Seite, teilweise bekomme ich direkt so etwas unhilfreiches zuück wie

Code: Alles auswählen

[Sat Mar 14 11:20:14 2020] 127.0.0.1:45224 [404]: /favicon.ico - No such file or directory
Wenn ich das Gleiche mit der index.php unter mw-config mache, welche ja eigentlich für den Web-basierten Updater da sein müsste, kann ich etwa genau so weit kommen, erhalte aber den Error

Code: Alles auswählen

127.0.0.1:43802 [404]: /mw-config/?page=ExistingWiki

Zum Einsatz kommt aktuell noch v1.24, ich versuche aktuell auf 1.34 zu aktualiseren. Datenbankserver ist MariaDB 10.3. Für die Aktualisierung habe ich das Archiv von der Mediawiki Seite in einen neuen Ordner gepackt, ein paar alte Ressourcen rüberkopiert, inclusive der LocalSettings.php, die LocalSettings für die Unterseiten habe ich als Grundlage genommen und dem aktuellen Stand der Entwicklung angepasst. An Erweiterungen habe ich nur eingepflegt, was dort auch aufgerufen wird, entsprechend in aktueller Version und mit den entsprechenden Einstellungen in der LocalSettings.php der Webseite.
Zuletzt geändert von Artim am 27.03.2020 15:59:41, insgesamt 1-mal geändert.

Artim
Beiträge: 86
Registriert: 22.11.2019 11:33:28

Re: Mediawiki update.php ausführen

Beitrag von Artim » 16.03.2020 14:44:40

ok, eine Sache konnte ich herausfinden. php aus der Befehlszeile auszuführen geht, wenn man auf den User www-data wechselt (der komplette Ordner ist dem zugeordnet). Allerdings geht es nur mit der index.php in mw-config. Wenn ich das mit der update.php in maintenance mache sehe ich auch nur dass das Skript in der bash ausgeführt werden muss. Nur wie?
über die index.php ist aber auch nicht praktikabel, da es nur geht wenn ich es mit -S wiki.xyz.de:8080 aufrufe. Aber dann würde die Konfiguration zerhauen werden und die Adresse würde sich plötzlich auf wiki.xyz.de:8080 ändern.
Habe das gerade mit Wordpress durch. Da ließ es sich aber lösen, indem in der nginx-Config dies entsprechend eingestellt wurde:

Code: Alles auswählen

location ~ \.php$ {
         include snippets/fastcgi-php.conf;
         fastcgi_pass unix:/var/run/php/php7.3-fpm.sock;
   	 fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
    }
Falls es hier auch an nginx liegen könnte hier unsere aktuell im Einastz befindliche config für das wiki, vielleicht sieht jemand was: https://pastebin.com/pE962un3

Artim
Beiträge: 86
Registriert: 22.11.2019 11:33:28

Re: Mediawiki update.php ausführen

Beitrag von Artim » 27.03.2020 15:59:23

Ich musste es jetzt dadurch lösen, dass die die LocalSettings.php durch die Localsettings.wiki.xyz.de.php ersetzt habe.
Das Upate der Datenbank hat sich dann zwar noch mit
Database is read-only: Down for maintenance, access will be restored shortly
aufgehangen, aber das lässt sic lösen, indem man

Code: Alles auswählen

$wgReadOnly = ( PHP_SAPI === 'cli' ) ? false : 'This wiki is currently being upgraded to a newer software version.'
in die php setzt. Jetzt läuft das wiki wieder, jetzt muss ich nur noch die Anbindung ans LDAP i-wie hinbekommen, aber das ist eine andere Geschichte

Antworten