KIMB-technologies/Radio-API

Got a problem after PHP-Update to 8.3.

tackin opened this issue · 2 comments

Perhaps it is a bug with radio-api on php 8.3. ... or just my faulty config after update.

  • non-docker environment
  • apache + php 8.3
  • dns via pihole points to local apache-server
  • 2 dual radios
  • worked until today with apache+php 8.2

I simply updated my linux and had to update some packages with php-stuff also.
Went from php 8.2. to 8.3.
Had to update the apache-config as well.

After that the radios didn't want to stream again.
First problem: the radios did try a fallback from dual.wifiradiofrontier.com to dual2.wifiradiofrontier.com.
Fixed it by adding dual2.* to the local-dns-records of pihole as well.
But still the radios could not open the menu or find the streams. I must have broken something else.

So I opened dual.wifiradiofrontier.com on a PC and got the gui. I could login and found all streams in the database as usual.
Means, DNS-redirect, modrewrite, and the webserver with php is working.

But: A call to http://dual.wifiradiofrontier.com/setupapp/dual/asp/BrowseXML/loginXML.asp?token=0 on the browser
gives nothing back, but should return: 3a3f5ac48a1dab4e

This is my PHPinfo:
http://tackin.de/radio-api_problem_2024-04-17.html

Could you please have a look at the PHPinfo and perhaps have a guess, where to look.

To solve that for now, I quickly switched to the latest docker-version and all radios are up and running just nice again. But I would like to be able to run it on the Webserver again without the docker-container.

Hi,

I do not assume that it is a direct problem with PHP 8.3 – the current Docker container runs on version 8.3 and I did most development of the non docker version with 8.3, too.

I just compared the PHP info from the Docker container with yours. There I noticed that you do not have mbstring which is used by Radio-API to convert Umlauts and similar for the radio. Thus, I assume the local install misses a package like php-mbstring.

Additionally, it seems that you don not have curl. This used by EndURL, so if you use EndURL, it should be also installed.

Nice! Yep, solved the problem!

sudo apt install php8.3-mbstring
sudo apt install php8.3-curl
systemctl reload apache2

... and it's up and running again!

No clue why it was not updated/installed as well with my exicting php, as it must have been there before.

Thanks a lot for your kind help!