Hi:
Iâm running Ubuntu 20.04 on bare metal with php 7.2 and 7.4 (active) and while running this script it seems to hang at the stage of â. searching known configuration errors in php7.2 .â. This is after listing all the modules for php7.4 installed by admin.
By hang I mean itâs been searching for over an hour⊠What can I do to move this along?
Thanks
You should completely remove (purge) php7.2 if it is not active anyway:
sudo apt-get purge php7.2*
Then start the script again
hth.
Much and good luck,
ernolf
Thanks, purging 7.2 did allow the script to proceed.
Great Work!
Hello
I just ran your script on NC 29 with php 8.1. It threw a couple of errors and Iâm not sure how to proceed.
Cutting out the boring stuff, hereâa replay:
$ sudo wget -qO /usr/local/bin/php-updater https://global-social.net/script/php-updater; sudo chmod +x /usr/local/bin/php-updater
[sudo] password for username:
username@nextcloud:~$ php-updater
mkdir: cannot create directory â/usr/local/include/ernolfâ: Permission denied
.. loading modules - dependency
Dependency not met!
missing dependencies:
==============================================================================
Bynary Package Description
------------------------------------------------------------------------------
apt-file apt-file Search for files within Debian packages
jq jq Command-line JSON processor
ccdiff ccdiff Colored Character Diff
------------------------------------------------------------------------------
Q: Do you want to install this packages now? ([y]es or [n]o) [yes]: y
Reading package lists... Done
Building dependency tree... Done
Reading state information... Done
The following additional packages will be installed:
libalgorithm-diff-perl libalgorithm-diff-xs-perl libapt-pkg-perl libexporter-tiny-perl libjq1
liblist-moreutils-perl liblist-moreutils-xs-perl libregexp-assemble-perl
The following NEW packages will be installed:
apt-file ccdiff jq libalgorithm-diff-perl libalgorithm-diff-xs-perl libapt-pkg-perl
libexporter-tiny-perl libjq1 liblist-moreutils-perl liblist-moreutils-xs-perl
libregexp-assemble-perl
0 upgraded, 11 newly installed, 0 to remove and 3 not upgraded.
...
...
...
Running kernel seems to be up-to-date.
The processor microcode seems to be up-to-date.
No services need to be restarted.
No containers need to be restarted.
No user sessions are running outdated binaries.
No VM guests are running outdated hypervisor (qemu) binaries on this host.
Reading package lists... Done
E: Could not open lock file /var/lib/apt/lists/lock - open (13: Permission denied)
E: Unable to lock directory /var/lib/apt/lists/
W: Problem unlinking the file /var/cache/apt/pkgcache.bin - RemoveCaches (13: Permission denied)
W: Problem unlinking the file /var/cache/apt/srcpkgcache.bin - RemoveCaches (13: Permission denied)
.. loading modules - integrity
First run, checking integrity:
===========================================================================
...
gpg: Good signature from "[ernolf] Raphael Gradenwitz (codesigning) <raphael.gradenwitz@googlemail.com>" [unknown]
---------------------------------------------------------------------------
Integrity check passed. The script is authentic.
===========================================================================
- Integrity check passed. Please start script again
$ php-updater
.. loading modules - php-updater/chfilesmv: cannot move '/usr/local/include/ernolf/prod/modules.json~new' to '/usr/local/include/ernolf/prod/modules.json': Permission denied
Distribution check..
==============================================================================
This is a list of recent ubuntu versions for your information.
...
Any help is appreaciated. Thank you in advance!
It has nothing to do with nextcloud. It is only php related.
Strange! Normaly the script should sudo from itself.
Try to run the script as root or with sudo. That should work.
ernolf
$ sudo php-updater
âŠ(5 minutes later)âŠ
username@nextcloud:~$ php -v
PHP 8.3.10 (cli) (built: Aug 2 2024 15:31:15) (NTS)
Copyright (c) The PHP Group
Zend Engine v4.3.10, Copyright (c) Zend Technologies
with Zend OPcache v8.3.10, Copyright (c), by Zend Technologies
Thank you!
Hey, @ernolf. I wanted to say a big âthank youâ for making this awesome script, it helped me a lot back in march, migrating to 8.3. I randomly tried to run the php-updater again today, but I found out that it just doesnât execute anymore on my server after I upgraded to
Distributor ID: Ubuntu
Description: Ubuntu 24.04.1 LTS
Release: 24.04
Codename: noble
Furthermore, the https://global-social.net/script/php-updater
doesnât work for me in Germany. I had to use a VPN (USA endpoint) to get to it.
There can be many reasons for this. Repeating the installation steps should usually resolve the issue.
But that sounds more like you are using a poorly connected DNS server or your local DNS server is caching. That is also the explanation why the script no longer works, as it is dependent on the server. Without contact with the server, the script cannot work.
What ist the output of
dig global-social.net
is it the same as
dig @8.8.8.8 global-social.net
If not, then you should fix your dns.
BTW, That would be a great idea for a next script, a dns-setup-fixer
Much and good luck,
ernolf
Hey there, thank you a lot that you have responded so quickly. I did sadly not get notified as fast as I should have been (probably need to check my notif settings). I ran the two digs and they do indeed return the same IP address. However, I do sometimes run into problems with my ISPâs DNS servers.
Which would explain why 4 days later I have no problem with getting to this https://global-social.net/apps/raw/s/php-updater.
Thank you a lot for your input, now I also know why the script sometimes just doesnât work (My gut is telling me that it probably had something to do with the time of day as well).
The dns-setup-fixer idea sounds absolutely amazing btw, I really came to love your php script even more after having to fix the install a couple days ago XD.
Hi, will you offer your site via IPv6 at some point? Currently, it is impossible to use your script from IPv6
Hi @Chris_JC,
thank you for your interest
This is very unlikely. I host the server from my home and for several reasons I do not have IPv6 enabled and do not plan to do so.
I can only offer you to install the script locally with a local web server.
To do this, you have to check it out from github and build it with a local web server as described in the instructions. The web server is included, you donât have to set it up. Itâs via localhost, so I assume you wonât have any restrictions there.
But you need slightly more skills ans have to take care of updates yourself.
h.t.h.
ernolf
Hi Raphael (@ernolf),
my attempt to upgrade my self-configured Nextcloud server from PHP 8.2 to 8.3 and cluelessly change some settings ended in a complete chaos with a 503 error and unhelpful entries in the error logs.
I had already prepared myself for endless research, but then found your script here.
What can I say? - The script is fantastic!!1!
The dialogues are easy to understand and with a few steps I was able to change a messed up upgrade into a correctly working version, all very user friendly. The only thing missing at the end was a systemctl restart php8.3-fpm
.
Thank you very much for sharing this script!
Next time I shall try out your script before wasting hours.
If you use the script, donât forget to donate. He has put a lot of hours into this.
Moin,
tolles Script, da steckt echt Arbeit drin. Bin ich gestern wegen meines 500er drauf gestossen.
Ist das normal, daĂ der sich durch die locales von phpmyadmin in 10 min Schritten durchfrĂ€stâŠalso 10 min pro Sprache? ccdiff lĂ€uft auf 100%âŠ
Bei mir hatte es auch einen Bug, es wollte bei allen IP-Adressen mich in ein neues Subnetz schieben. Meine Rechner sind auf 192.168.10.x, Vorschlag war immer 192.168.30.x, habe die VorschlÀge erstmal abgelehnt.
Zweiteilige Frage: werden die vorgeschlagenen Scripte irgendwo gespeichert, daĂ man da von Hand durchdiffen kann? Und kann ich Dir irgendwelche Logs zur VerfĂŒgung stellen, wo Du das nachvollziehen kannst?
Nein. Das kann ich nicht nachvollziehen.
Logfiles liegen in
/tmp/ebtb-logfiles/*
Auf Ubuntu und Debian ĂŒberstehen die einen Neustart aber normalerweise nicht.
Du kannst mir per PN die Logfiles gerne schicken.
Viel GlĂŒck,
ernolf
@ernolf
Vielen Dank fĂŒr das tolle Script !
Linux ist zwar super, die Konfiguration und Dokumentation dafĂŒr aber schwierig.
Linux braucht Leute wie Dich, daher kommt auch gleich ein kleines PayPal Trinkgeld.
Kurz zu meinem System:
Ein MiniPC mit N6000 CPU, apache2 und mariaDB
NC update gestern von 29.0.8 auf 30.0.1
Dabei kam Aufforderung PHP von 8.1.2 auf 8.2 upzudaten.
Habe vorher Sicherung gemacht und einfach Dein Script probiert.
Der 1. Versuch mit
php-updater
ging nicht, aber mit
sudo php-updater
hat es dann geklappt.
Damit wurde nur die IntegritĂ€t geprĂŒft, ist das richtig ?
- Integrity check passed. Please start script again
Habe dann einen zweiten Lauf gestartet mit
sudo php-updater
Hier war ich als Hobby Teilzeit Linuxer teilweise ĂŒberfordert und bin nur Deinen VorschlĂ€gen gefolgt.
Im letzten Schritt wurde auf 8.2 geswitcht mit dem Befehl
sudo php-updater --switch-version
Die GUI ist super, habe 8.2 gewÀhlt.
Ich glaube 8.3 war nicht in der Auswahl sondern nur 8.4?
Da 8.4 wohl noch nicht von NC unterstĂŒtzt wird habe ich 8.2 gewĂ€hlt.
Nach einem Reboot war die âPHP Fehlermeldungâ in NC weg und PHP 8.2.25 wird angezeigt
Version: 8.2.25
Speicherlimit: 1 GB
Maximale AusfĂŒhrungszeit: 3600
Maximale GröĂe zum Hochladen: 16 GB
OPcache-RevalidierungshÀufigkeit: 2
Erweiterungen: Core, date, libxml, openssl, pcre, zlib, filter, hash, json, random, Reflection, SPL, session, standard, sodium, apache2handler, mysqlnd, PDO, xml, apcu, bcmath, bz2, calendar, ctype, curl, dom, mbstring, FFI, fileinfo, ftp, gd, gettext, gmp, iconv, igbinary, imagick, intl, exif, mysqli, pdo_mysql, Phar, posix, readline, shmop, SimpleXML, sockets, sysvmsg, sysvsem, sysvshm, tokenizer, xmlreader, xmlwriter, xsl, zip, redis, Zend OPcache
Nochmals Danke !
Und bis zum nÀchsten PHP Update
Hi @JoergB2,
Vielen Dank fĂŒr die freundliche Worte und die UnterstĂŒtzung!
Ja absolut richtig. Alle Skripte und Module sind signiert und werden permanent auf IntegritĂ€t ĂŒberprĂŒft. Sobald ein Modul veraltet ist oder verĂ€ndert wurde, wird es sofort entfernt und ersetzt. Da das Skript selber fĂŒr das Laden der Module zustĂ€ndig ist, wird da besondere Sorgfalt auf die IntegritĂ€tsprĂŒfung gelegt und deswegen wird VOR dem Ersten Lauf des eigentlichen Skriptes der Hash und die Signatur geprĂŒft und das PrĂŒfergebnis angezeigt.
Sehr gut. Die vorgeschlagene Antworten sind immer die sichersten. Nur fĂŒr wer wirklich weiss was er genau tut, gibt es die Möglichkeit dennoch abweichend zu antworten.
8.3 war (ist) mit Sicherheit in der Auswahl. Du kannst das gerne gleich mal ausprobieren.
damit lÀsst sich jederzeit hin und her schalten.
Also wenn du irgendwann mal wegen einer App eine niedrigere oder höhere php Version benötigst die du vorher mit dem Skript schon installiert hast oder von frĂŒher âĂŒbrigâ hast, auch sei es nur vorĂŒbergehend, dann geht das ganz einfach damit.
Super!
Ein Reboot wÀre nicht mal nötig gewesen.
Viel GlĂŒck,
ernolf
Hi @ernolf
Danke fĂŒr Deine schnelle Antwort.
Habe es einfach probiert wie Du sagtest mit
sudo php-updater --switch-version
und bekomme tatsÀchlich die 8.3 nicht zur Auswahl.
- Switch default php version to:
[1] - php8.1
[2] - php8.2
[3] - php8.4
[q] - do nothing, quit
- Please make your choice:
Das schiebe ich aber eher auf meine Umgebung und nicht auf das tolle Script.
Habe noch Ubuntu 22.04.5 LTS und werde demnÀchst auf 24.04. LTS komplett neu aufsetzen.
Ahh moment, habe apt update & upgrade gemacht
Es wird eine Menge installiert
Und hier kommt auch schon eine Meldung in der ich unsicher bin.
Da es aber um die V8.1 geht sage ich einfach " aktuell lokal installierte Version beibehalten "
ââââââââââââââââââââââ†GeĂ€nderte Konfigurationsdatei âââââââââââââââââââââââ
â php.ini: Eine neue Version (/usr/lib/php/8.1/php.ini-production.cli) der â
â Konfigurationsdatei /etc/php/8.1/cli/php.ini ist verfĂŒgbar, aber die â
â derzeit installierte Version wurde verĂ€ndert. â
â â
â Wie wollen Sie mit der geĂ€nderten Konfigurationsdatei php.ini verfahren? â
â â
â Version des Paketbetreuers installieren â
â aktuell lokal installierte Version beibehalten â
â Unterschiede zwischen den Versionen anzeigen â
â Unterschiede zwischen den Versionen nebeneinander anzeigen â
â die Angelegenheit in einer neu gestarteten Shell ...
gleiche Meldung und Reaktion bei âphp.ini-productionâ
Nach dem apt update+upgrade + reboot bleibt es dabei daĂ die PHP 8.3 nicht zur Auswahl angezeigt wird.
Ich wĂŒrde sagen Du musst hier keine weitere Energie rein stecken.
Das Script kann nicht jede Variation der user Konfigurationen abfangen.
Aktuell lÀuft ja die V8.2
Und zum Jahreswechsel werde ich evtl mit neuem Mini PC komplett neu installieren.
Ja. Dort bekommst du auch nur DIE php-Versionen angezeigt, die auf dem System ganz oder auch nur teilweise installiert sind.
Wenn du php8.3 dort zur Auswahl haben möchtest, dann muss es zunÀchst installiert werden.
Wenn du das genauso wie dein jetziges php8.2 konfiguriert haben möchtest, musst du also zunÀchst:
sudo php-updater 8.2 8.3
ausfĂŒhren und den ganzen Fragenkatalog wieder durchgehen.
Danach steht dir php8.3 voll zur VerfĂŒgung.
Danke fĂŒr dieses Feedback, das hilft mir die mit gelieferte ErlĂ€uterungen zu verbessern.
ernolf