PHP CLI Probleem.
Ik ben een PHP script aan het schrijven welke de socket_create() functie vereist. Dit script is gemaakt voor CLI (command prompt). Maar hier beginnen echter de problemen.
Als ik mijn script aan roep krijg ik de volgende fatal error:
PROMPT> c:\wamp\php\php.exe filename.php
Fatal error: Call to undefined function socket_create() in ...
Maar als ik het zelfde script plaats in mijn public_html, en het script open via mijn browser(http://localhost/filename.php) krijg ik geen error.
Insgelijks ontbreekt de functie socket_create() in get_defined_functions() wanneer ik deze aanroep via command prompt. Maar als ik deze aanroep via mijn browser is deze wel present.
Ik draai Wamp5 versie 1.7.0 op Windows XP
Mijn vraag in een notendop: Hoe kan ik extentions voor php.exe activeren, of moet ik opzoek naar een speciaal CLI php.exe bestand(, welke vroeger met php4 meegeleverd werd.)
(En ik heb google al afgezocht)
Vriendelijke groet,
Gerjo
Edit:
Typo, het moet zijn socket_create() IPV create_socket().
Gewijzigd op 01/01/1970 01:00:00 door Gerard M
1. Je script opstarten via de webbrowser, uit de map public_html werkt.
2. Je script opstarten van de command line wil niet.
Mijn conclusie is:
De webserver, van Wamp is dat toch ook Apache? daar bevindt zich een httpd.conf, daarin worden bepaalde instellingen gedaan en Apache roept
Php aan.
Als je zelf Php aanroept, heb je niets te doen met de httpd.conf instelling, je roept het nu in dit geval rechtstreeks aan.
Dus kort door de bocht gedacht zal de webserver een bepalende factor zijn, maar hoe? geen idee.
Wat ik als situatie me kan indenken is dat php via de webserver mischien een andere php.ini aanroept, en dat als je php.exe aanroept je mischien geen php.ini inlaad, ik weet niet hoe de installatie verloopt op een windows omgeving.
Ik kan me iets voorstellen dat er mischien een php.ini bestand is, en dat php tijdens de installatie in de registry ook dingen zet.
Maar ik zit gewoon met je mee te denken, te gokken naar mogelijkheden.
PS:
Ik neem aan dat de socket instructie's een externe library gebruiken, zoja dan denk ik dat er ergens iets fout gaat met het inlezen van de php.ini .. kun je in de php.exe prompt geen parameter ingeven waar je forceerd om een bepaalde php.ini in te lezen? ( -config /path/php.ini ) ofzo?
Gewijzigd op 01/01/1970 01:00:00 door Danny Roelofs
Wamp gebruikt een ander php.ini bestand dan dat php.exe gebruikt.
Ik heb "extension=php_sockets.dll" toegevoegd aan de correcte php.ini, en nu werkt het allemaal prima.
Danny, hartelijk bedankt voor je reactie.
Succes.