The error I found was in /var/log/apache2/nc-error.log:
[Fri Nov 15 10:34:57.804525 2024] [proxy_fcgi:error] [pid 733707:tid 733718] [remote 46.142.78.93:64107] AH01071: Got error 'Access to the script '/var/www/nextcloud/apps/serverinfo/update
' has been denied (see security.limit_extensions)'
Do I need to do something on the parameter âsecurity.limit_extensionsâ ?
cgi.fix_pathinfo defaults to 1 â, so if that is commented out it is the same as if it is set to 1
But normally it shouldnât matter for nextcloud at all.
Iâm terribly sorry, Iâm not aware of this connection at all. The error comes from a script from the serverinfo app. Also, your Nextcloud version is too old and is no longer supported.
You can use the php-updater script to update your php version step by step to the version you need to update to a more recent Nextcloud (at least Nextcloud 28) â. Once youâve bumped your Nextcloud version to a supported one, the error messages will most likely no longer appear.
Live saver!! Been struggling with upgrading php for I donât know how long. After upgrading to NC30 couldnât postpone longer to move to a higher php version but whatever I tried, whatever guide I followed, it always resulted in an Internal Server Error. Until using your script. Highly recommended to anyone struggling like me. Feeling confident now for future php upgrades. Thanks!
Hi @ernolf
erstmal Gratulation zur update Funktion (im script selber) ⊠funktioniert super
Und sorry daĂ ich jetzt erst antworten kann, bin erst jetzt hochgestuft worden und darf mehr als 2 Fragen stellen .
Du hattest mir schon geholfen auf 8.3 upzudaten !
Habe danach per:
sudo do-release-upgrade
von ubuntu server 22.04.5 LTS auf 24.04.1 LTS upgrade gemacht
Nextcloud lÀuft noch prima nach dem update und es wird weiterhin PHP 8.3 in NC genutzt:
[1] - php8.1
[2] - php8.2
[3] - php8.3
[4] - php8.4
[q] - do nothing, quit
- Please make your choice:
Danach dachte ich mir die PHP 8.1 und 8.2 könnten ja gelöscht werden.
Klappt aber nicht mit:
sudo apt remove --purge php8.1
es kommt Meldung:
Paket »php8.1« ist nicht installiert, wird also auch nicht entfernt.
Ich weiĂ jetzt nicht ob das zu OT hier.
Aber vielleicht hÀttest mir einen Tipp zu meinen Fragen:
Hat das 24.04.1 LTS update evtl nur etwas verbogen ?
Könnte ich den Php-updater verwirren wenn ich manuell PHP 8.1 + 8.2 lösche ?
Oder ist im Php-updater bereits schon ein Löschbefehl integriert ?
also wildcards mĂŒssen, zwischen einzelnen AnfĂŒhrungszeichen gegen Globbing geschĂŒtzt werden.
Den Asterisk davor, ist damit auch Pakete wie libapache2-mod-php8.1 mit abgedeckt sind.
Das âPAKETâ âphp8.1â ist ein Meta Paket. Das Skript bietet grundsĂ€tzlich an, Meta-Pakete zu entfernen, weil sie selber keine Software enthalten, sondern nur Paket-Gruppen davon abhĂ€ngig sind. Das ist ein Debian Typisches Feature mit dem ich mich nie wirklich habe anfreunden können, weil es sehr ungenau einfach Paket-Gruppen installiert und updatet, von der manche Pakete oft gar nicht benötigt werden.
Also die Meldung war genau richtig. Das âPAKETâ php8.1 ist (war) tatsĂ€chlich gar nicht installiert.
Nein, du kannst das Skript damit nicht verwirren. Es wird nach Möglichkeit immer dynamisch vor und nach jedem Schritt nach den tatsÀchlich installierten und vorhandenen Pakete und Erweiterungen gesucht, also wenn ein Paket nicht mehr da ist, dann registriert das Skript das auch so und beurteilt bzw. berechnet die möglichen Schritte jeweils aus den Gegebenheiten.
Auch die Syntax geht, besser jedoch wie ich oben beschrieben habe oder gleich so, damit beide Versionen abgedeckt sind:
sudo apt-get purge '*php8.[12]*'
Ja, ich habe in den letzten Tagen enorm viel daran entwickelt, es soll quasi - so meine Vorstellung - aus jeder Situation heraus die Möglichkeiten berechnen und daraus die machbaren Konfigurationsschritte anbieten.
Es macht nÀmlich wenig sinn, ein php up zu daten, wenn dazu nicht die passenden Module in der richtigen Version im jeweiligen Server (nginx oder apache2) geladen sind.
Hat die Box auf der das lÀuft freien Zugang zum Internet?
Das Skript benötigt eine Vielzahl von Module (an die 100). Diese mĂŒssen vom Module Server heruntergeladen werden. Also wenn kein Zugang zum Internet besteht, dann funktioniert es nicht.
Aus den LogeintrĂ€gen kann ich erkennen, dass deine Box voller Zugriff hat auf den Module Server. Die Module werden alle heruntergeladen und im Speicher deiner Box geladen jedoch nicht lokal auf deiner Festplatte geschrieben⊠Das Problem liegt in den Rechten deines Benutzers ânextcloudâ. Hat der volle Sudo rechte? Hast du SELinux oder AppArmor im Einsatz?
Das Skript braucht zwingend root Rechte und muss schreiben können im Verzeichnis /tmp sowie in /usr/local/include, wo die Module hinein geschrieben werden, also versuche es mal als root zu starten.
==============================================================================
actual PHP related packages installed and managed by dpkg
X Package Version Status
------------------------------------------------------------------------------
SAPI libapache2-mod-php8.1 8.1.31-1+0~20241121.67+debian11~1.gbp9e3dc4 im
\apache2handler /usr/lib/apache2/modules/libphp8.1.so <ACTIVE> loaded
- php7.4-common 1:7.4.33-16+0~20241124.96+debian11~1.gbp29586d im
\included modules: calendar ctype exif ffi fileinfo ftp gettext iconv pdo
phar posix shmop sockets sysvmsg sysvsem sysvshm tokenizer
- php7.4-gd 1:7.4.33-16+0~20241124.96+debian11~1.gbp29586d im
\included module: gd
- php7.4-readline 1:7.4.33-16+0~20241124.96+debian11~1.gbp29586d im
\included module: readline
- php7.4-xml 1:7.4.33-16+0~20241124.96+debian11~1.gbp29586d im
\included modules: dom simplexml xml xmlreader xmlwriter xsl
- php8.1-apcu 5.1.24-1+0~20241124.41+debian11~1.gbpff678c im
\included module: apcu
- php8.1-bcmath 8.1.31-1+0~20241121.67+debian11~1.gbp9e3dc4 im
\included module: bcmath
SAPI php8.1-cli 8.1.31-1+0~20241121.67+debian11~1.gbp9e3dc4 im
\php binary /usr/bin/php8.1 <ACTIVE> linked to generic /usr/bin/php
- php8.1-common 8.1.31-1+0~20241121.67+debian11~1.gbp9e3dc4 im
\included modules: calendar ctype exif ffi fileinfo ftp gettext iconv pdo
phar posix shmop sockets sysvmsg sysvsem sysvshm tokenizer
- php8.1-curl 8.1.31-1+0~20241121.67+debian11~1.gbp9e3dc4 im
\included module: curl
- php8.1-gd 8.1.31-1+0~20241121.67+debian11~1.gbp9e3dc4 im
\included module: gd
- php8.1-gmp 8.1.31-1+0~20241121.67+debian11~1.gbp9e3dc4 im
\included module: gmp
- php8.1-imagick 3.7.0-9+0~20241126.47+debian11~1.gbp7df923 im
\included module: imagick
- php8.1-intl 8.1.31-1+0~20241121.67+debian11~1.gbp9e3dc4 im
\included module: intl
- php8.1-mbstring 8.1.31-1+0~20241121.67+debian11~1.gbp9e3dc4 im
\included module: mbstring
- php8.1-mysql 8.1.31-1+0~20241121.67+debian11~1.gbp9e3dc4 im
\included modules: mysqli mysqlnd pdo_mysql
- php8.1-opcache 8.1.31-1+0~20241121.67+debian11~1.gbp9e3dc4 im
\included module: opcache
- php8.1-readline 8.1.31-1+0~20241121.67+debian11~1.gbp9e3dc4 im
\included module: readline
- php8.1-xml 8.1.31-1+0~20241121.67+debian11~1.gbp9e3dc4 im
\included modules: dom simplexml xml xmlreader xmlwriter xsl
- php8.1-zip 8.1.31-1+0~20241121.67+debian11~1.gbp9e3dc4 im
\included module: zip
- php8.4-apcu 5.1.24-1+0~20241124.41+debian11~1.gbpff678c im
\included module: apcu
SAPI php8.4-cli 8.4.1-3+0~20241125.19+debian11~1.gbpda2c03 im
\php binary /usr/bin/php8.4 <<INACTIVE not linked
- php8.4-common 8.4.1-3+0~20241125.19+debian11~1.gbpda2c03 im
\included modules: calendar ctype exif ffi fileinfo ftp gettext iconv pdo
phar posix shmop sockets sysvmsg sysvsem sysvshm tokenizer
- php8.4-imagick 3.7.0-9+0~20241126.47+debian11~1.gbp7df923 im
\included module: imagick
- php8.4-opcache 8.4.1-3+0~20241125.19+debian11~1.gbpda2c03 im
\included module: opcache
- php8.4-readline 8.4.1-3+0~20241125.19+debian11~1.gbpda2c03 im
\included module: readline
- php-common 2:95+0~20240927.54+debian11~1.gbpe0084c im
Mein Problem ist nun, dass die Ladeanimation fĂŒr den Config-Check ewig stehen bleibt (habe nun schon 20 min gewartet). check_config() searching known configuration errors in php7.4: checking apcu_bc .
Habe das Skript auch schon mit CTRL+C gestoppt und neugestartet, aber es stockt wieder an der gleichen Stelle.
Gibt es hier etwas, was ich tun kann?
erst mal vielen Dank fĂŒr dein Feedback. Solche Meldungen helfen mir dabei, solche âHĂ€ngerâ fĂŒr die Zukunft zu vermeiden.
ich kann nicht ganz nachvollziehen an was das genau liegt, bin im Moment auch im Krankenhaus und kann nicht so wie sonst aber es hat damit zu tun, dass nach Konfigurationsdetails fĂŒr Module aus php7.4 gesucht wird. Da deine aktive php Version aber 8.1 ist solltest du - fĂŒr sofern du es nicht wirklich benötigst - alle php7.4 Ăberbleibsel radikal entfernen. Das Skript kann prinzipiell damit zwar umgehen aber Ăberbleibsel aus alten Installationen sind oft sehr schwer zu analysieren und können leider immer noch zu solchen HĂ€ngern fĂŒhren.
Also wenn du auf php7.4 verzichten kannst, dann mache folgendes:
sudo apt-get purge '*php7.4*'
und starte danach das Skript von Neuem.
Du kannst dir ja Konfigurationsdateien vorher sichern irgendwo, falls du da ganz besondere Einstellungen drin vorgenommen hattest die du unbedingt wieder herstellen möchtest.
Excellet script. For me it works perfectly. I run it twise (on different linus bare metal machines). Thankâs a lot for your support and help us (many of us have to upgrade the PHP time to time). I will support you via Paypall.