Synology-Forum.nl
Packages => 3rd party Packages => Spotweb => Topic gestart door: Erwin1 op 15 juni 2018, 17:03:09
-
Hallo,
Nu spotweb (eindelijk) geïnstalleerd is krijg ik bij het retrieve een PHP-foutmelding, om precies te zijn:
PHP Fatal error: Undefined class constant 'MYSQL_ATTR_FOUND_ROWS' in /volume1/web/spotweb/lib/dbeng/dbeng_pdo_mysql.php on line 28
Fatal error: Undefined class constant 'MYSQL_ATTR_FOUND_ROWS' in /volume1/web/spotweb/lib/dbeng/dbeng_pdo_mysql.php on line 28
Ik heb even op het forum gezocht, maar de oplossingen in dit topic kunnen mij niet verder helpen: https://www.synology-forum.nl/spotweb/fatal-error-undefined-class-constant-'mysql_attr_found_rows'/
ook het draaien van het script php upgrade-db.php in de spotweb directory, bied geen uitkomst het script bestaat namelijk helemaal niet...
Wie kan me helpen?
-
Ik zat er al op te wachten toen ik ergens las dat je spotweb aan het installeren was.
Dat komt door een bug in webstation, die zet de php extensie settings niet door naar de php cli omgeving.
Gaarne rapporteren aan synology !
Een oplossing (handmatig) is in dit topic beschreven :
https://www.synology-forum.nl/spotweb/fatal-error-undefined-class-constant-'mysql_attr_found_rows'/msg243996/#msg243996
@Birdy : kunnen we dit eens toevoegen aan de spotweb installatie handleiding ? Ik wil wel een beschrijving maken ...
-
Sorry maar ik kan niet helemaal volgen wat de handmatige oplossing is?
-
@Birdy : kunnen we dit eens toevoegen aan de spotweb installatie handleiding ? Ik wil wel een beschrijving maken ...
Ik begrijp dat dit een workaround is?
Stuur mij maar even een PB met waar het er tussen moet en wat.
-
Sorry even verder gezocht, en toen is het kwartje gevallen.
In de directory /usr/local/etc/php56/conf.d mistte een bestandje "webstation-extensions.ini"
Handmatig dit bestandje aangemaakt met de inhoud
extension = bcmath.so
extension = bz2.so
extension = curl.so
extension = gd.so
extension = gettext.so
extension = openssl.so
extension = pdo_mysql.so
extension = zip.so
Vervolgens de juiste rechten gegeven (chmod 775), en nu werkt het retrieve als normaal.
-
Ik zal het hier even plaatsen dan kan wellicht Erwin er mee vooruit.
En je zult nog wel aanvullingen hebben neem ik aan.
Eerst eens mijn nas vm opstarten en eens kijken hoe ik het opgelost heb :)
-
Ik kon het even niet reproduceren, maar dat kwam omdat phpMyadmin geïnstalleerd was.
Enfin, ik denk dat het beter is om een aparte spotweb.ini in
/usr/local/etc/php56/conf.d
en/of
/usr/local/etc/php70/conf.d
te plaatsen.
Dat kan door :
cat >/usr/local/etc/php56/conf.d/spotweb.ini en/of cat >/usr/local/etc/php70/conf.d/spotweb.ini
gevolgd door
extension = bcmath.so
extension = bz2.so
extension = curl.so
extension = gd.so
extension = gettext.so
extension = openssl.so
extension = pdo_mysql.so
extension = zip.so
en dan ctrl+c
@Birdy : zou je dat in de spotweb handleiding kunnen plaatsen ?
-
@mesa57 Ik heb je bijdrage toegevoegd in de handleiding.
-
@Birdy : Thanks. Hoop dat nu minder mensen last hebben van die bug.
-
Ik ben bezig met spotweb binnenhalen:
Krijg dit melding, is er iets fout?
Zie afbeelding bijlage:
-
Even zoeken op dit forum help vaak wel eens ;)
https://www.synology-forum.nl/spotweb/error-undefined-class-constant-'mysql_attr_found_rows'/
-
Ik heb hem geprobeerd:
Krijg dit zie mijn afbeelding. Doe ik het wel goed?
Ik kon het even niet reproduceren, maar dat kwam omdat phpMyadmin geïnstalleerd was.
Enfin, ik denk dat het beter is om een aparte spotweb.ini in
/usr/local/etc/php56/conf.d
en/of
/usr/local/etc/php70/conf.d
te plaatsen.
Dat kan door :
cat >/usr/local/etc/php56/conf.d/spotweb.ini en/of cat >/usr/local/etc/php70/conf.d/spotweb.ini
gevolgd door
extension = bcmath.so
extension = bz2.so
extension = curl.so
extension = gd.so
extension = gettext.so
extension = openssl.so
extension = pdo_mysql.so
extension = zip.so
en dan ctrl+c
@Birdy : zou je dat in de spotweb handleiding kunnen plaatsen ?
-
Bedankt, heb inmiddels daar een vraag gesteld.
-
Herstart webstation en PHP eens
-
Zal wanneer ik weer thuis ben en tijd heb even naar kijken.
-
Na het cat command nog een keer een enter geven. Hij zegt dat hij de folder niet kan vinden.
-
Bedankt, heb inmiddels daar een vraag gesteld.
Dus je Topic samengevoegd met dit Topic
-
Dus, voor de beeldvorming:
[attachimg=1]
-
Hoe eigenlijk herstarten? Hele synology opnieuw starten bedoel je?
Want ik keek bij geïnstalleerde webstation daar geen optie over herstarten?
Herstart webstation en PHP eens
-
Dat is ook niet nodig.
-
Nu krijg ik dit:
root@ajvsweb:~# retriever.php is already running, pass '--force' to ignore this warning.
-ash: retriever.php: command not found
-
Als retriever.php al running is, hoef je hem niet overnieuw te starten.
Wil je dat wel dan de optie --force er achter zetten.
Wat is het volledige commando wat je uitvoert ?
-
Ja! Als goed is laad hij weer!
(zie bijlage)
-
Nee krijg dit zie bijlage.
-
Bijlage is niet te zien. En misschien kun je beter een apart topic hiervoor openen, want je oorspronkelijke fout is opgelost.
-
En prinscreens gewoon toevoegen in je topic dus, niet als bijlage die je eerst moet downloaden ;)
[attach=1]
-
Oh daar is die uitvinding, had niet goed gelezen of wel kon ! ;-)
en bezig nieuw topic aanmaken wie daar verder kan helpen als deze niet hierths hoort. (de nieuwe probleem)
-
Nieuw Topic: https://www.synology-forum.nl/spotweb/bezig-spotweb-binnenhalen-mysql-retrieve-php/msg253314/#msg253314
-
Ondanks aanmaken van ini-file met de benodigde php modules blijft retrieve.php de foutmelding waar dit topic mee gestart is geven. NAS ook al gereboot en alle webstation settings conform handleiding hier (https://www.synology-forum.nl/spotweb/nieuw-(02-04-2017)-spotweb-installatie-tutorial/). Spotweb website werkt (is alleen 'leeg'), maar retrieve.php dus niet. Ik gebruik overigens PHP 5.6.
Kan het iets te maken hebben met de twee MariaDB versies (5 en 10) die draaien op de NAS? MariaDB 10 wordt gebruikt voor Kodi devices en de spotweb installer wilde persé versie 5. MariaDB 10 luistert overigens op port 3307 en MariaDB 5 op 3306 (de standaard MySQL port). In MariaDB 5 staat wel de spotweb database (gecontroleerd met mysql command in shell).
-
Plaats de spotweb.conf die je gemaakt hebt eens hier.
En waar heb je die exact neergezet ?
-
De php ini - neem aan dat je die bedoelde ;) :
(https://www.synology-forum.nl/proxy.php?request=http%3A%2F%2Fi68.tinypic.com%2F351spzr.jpg&hash=f92bfd5e8711c517bba18da52d723fe242c999e6)
EDIT: Het valt mij wel op dat de ini file (/usr/local/etc/php56/php.ini) naar een extension directory verwijst (/usr/local/lib/php56/modules) die leeg is...
EDIT2: OPGELOST: het blijkt dat er twee PHP 5.6 versies aanwezig zijn. php ./retrieve.php
gebruikt php 5.6.11 en /usr/local/bin/php56 ./retrieve.php
gebruikt php 5.6.36. En daarmee werkt retrieve.php wel. 8)
-
Ik snap waarom die er nog steeds is. Geeft alleen maar problemen.
Wil je spotweb met php 7.0 gebruiken dan moet je bestandje ook even kopieeren naar /usr/local/etc/php70/conf.d/
-
Nu heb ik geen enkel verstand van php maar wel van Synology en package structuren.
Maar volgens mij zou een package helemaal geen gebruik mogen maken van /usr/local/etc/php56 want dat is de systeem partitie die vol kan lopen.
En packages worden geinstalleerd op een volume in de @appstore en er zou dus in dit geval gebruik gemaakt moeten worden van:
/var/packages/PHP5.6/target/etc
Hierbij is /var/packages/PHP5.6/target een simlink naar /volume1/@appstore/PHP5.6
-
Tja, als ik opvraag waar php zijn ini vandaan haalt dan krijg ik :
admin@nas3:/var/packages/PHP5.6/target/etc/php/conf.d$ php56 --ini
Configuration File (php.ini) Path: /usr/local/etc/php56
Loaded Configuration File: /usr/local/etc/php56/php.ini
Scan for additional .ini files in: /usr/local/etc/php56/conf.d
Additional .ini files parsed: /usr/local/etc/php56/conf.d/webstation-extensions.ini
-
Ik snap waarom die er nog steeds is. Geeft alleen maar problemen.
Inderdaad, in /usr/bin/php (en de symlinked /bin directory) staat dus nog versie 5.6.11. Misschien handig om die php files door een symlink naar php56 te vervangen?
Nu heb ik geen enkel verstand van php maar wel van Synology en package structuren.
Maar volgens mij zou een package helemaal geen gebruik mogen maken van /usr/local/etc/php56 want dat is de systeem partitie die vol kan lopen.
En packages worden geinstalleerd op een volume in de @appstore en er zou dus in dit geval gebruik gemaakt moeten worden van:
/var/packages/PHP5.6/target/etc
Hierbij is /var/packages/PHP5.6/target een simlink naar /volume1/@appstore/PHP5.6
De ini files staan in /usr/local/etc/php56, maar de executable /usr/local/bin/php56 symlinked naar /var/packages/PHP5.6/target/usr/local/bin/php56. Geen idee of dat 'gebruikelijk' is...
Tja, als ik opvraag waar php zijn ini vandaan haalt dan krijg ik :
admin@nas3:/var/packages/PHP5.6/target/etc/php/conf.d$ php56 --ini
Configuration File (php.ini) Path: /usr/local/etc/php56
Loaded Configuration File: /usr/local/etc/php56/php.ini
Scan for additional .ini files in: /usr/local/etc/php56/conf.d
Additional .ini files parsed: /usr/local/etc/php56/conf.d/webstation-extensions.ini
In mijn configuratie:
# php56 --ini
Configuration File (php.ini) Path: /usr/local/etc/php56
Loaded Configuration File: /usr/local/etc/php56/php.ini
Scan for additional .ini files in: /usr/local/etc/php56/conf.d
Additional .ini files parsed: /usr/local/etc/php56/conf.d/spotweb.ini,
/usr/local/etc/php56/conf.d/webstation-extensions.ini
maar
# php --ini
Configuration File (php.ini) Path: /etc/php
Loaded Configuration File: /etc/php/php.ini
Scan for additional .ini files in: (none)
Additional .ini files parsed: (none)
...vandaar dat de modules niet geladen werden met php...
-
ik heb de oplossing van mesa geprobeerd maar krijg permission denied wanneer ik het cat> commando wil uitvoeren. Ben gewoon ingelogged als admin. Wat doe ik verkeerd?
-
Je moet dan root zijn dus, als je ingelogd bent als admin dan geef je het commando
sudo -i
en password van admin.
-
Ok, ik moet berichten posten zonder code aangezien CleanTalk mijn berichten tegenhoud.
ben een stapje verder met oplossen van spotweb probleem. heb de .ini aangemaakt en opnieuw het retrieve commando gedraaid
ik krijg een reactie van terminal dat hij spotweb draaid. maar daarna zegt hij spotweb crashed, failed to read from socket.
ook in spotweb zie ik nog steeds last retrieve op unknown staan
lijkt dus alsnog iets verkeerd te gaan?
edit: ik kan niet initieel posten met code maar wel aanpassen.
heb de .ini aangemaakt en opnieuw onderstaande commando gedraaid:
/usr/local/bin/php56 /volume1/web/spotweb/retrieve.php
reactie van de terminal was:
Removing Spot information which is beyond retention period,, done
Last retrieve at Thu 01 Jan 1970 01:00:00 AM CET
Retrieving new Spots from server ssl.xxxx.xxx...
SpotWeb v0.68.29.32 on PHP v5.6.39 crashed
Fatal error occured while connecting to the newsserver:
(-1) Failed to read from socket...! [response: ""] [response: ""]
#0 /volume1/web/spotweb/lib/services/Nntp/Services_Nntp_Engine.php(120): Services_Nntp_Engine->connect()
#1 /volume1/web/spotweb/lib/services/Retriever/Services_Retriever_Base.php(112): Services_Nntp_Engine->selectGroup('free.pt')
#2 /volume1/web/spotweb/lib/services/Retriever/Services_Retriever_Base.php(280): Services_Retriever_Base->connect(Array)
#3 /volume1/web/spotweb/retrieve.php(145): Services_Retriever_Base->perform()
#4 {main}
Finished retrieving spots.
ook in spotweb zie ik nog steeds last retrieve op unknown staan
-
De output die ik kreeg met een PB :
Removing Spot information which is beyond retention period,, done
Last retrieve at Thu 01 Jan 1970 01:00:00 AM CET
Retrieving new Spots from server ssl.xxxx.xxx...
SpotWeb v0.68.29.32 on PHP v5.6.39 crashed
Fatal error occured while connecting to the newsserver:
(-1) Failed to read from socket...! [response: ""] [response: ""]
#0 /volume1/web/spotweb/lib/services/Nntp/Services_Nntp_Engine.php(120): Services_Nntp_Engine->connect()
#1 /volume1/web/spotweb/lib/services/Retriever/Services_Retriever_Base.php(112): Services_Nntp_Engine->selectGroup('free.pt')
#2 /volume1/web/spotweb/lib/services/Retriever/Services_Retriever_Base.php(280): Services_Retriever_Base->connect(Array)
#3 /volume1/web/spotweb/retrieve.php(145): Services_Retriever_Base->perform()
#4 {main}
Finished retrieving spots.
(Ik krijg geen CleanTalk issue)
-
Zet SSL uit, dan gaat het beter.
Er zijn usenet providers waarvan de CN name in het SSL certificaat niet overeenkomt met de domeinnaam.
Default checked php ssl stream daarop.
-
thx! that did the trick!
heb hem nu in ieder geval de eerste keer aan de praat gekregen. nu kijken of hij ook de taakplanner wil uitvoeren :-)
-
Ik mag in die directory geen bestand plaatsen.
Wat heb jij extra gedaan?
-
Weet niet welke directory maar, je zal wel root moeten zijn.