J'ai une bibliothèque écrite en C qui est distribuée en tant qu'extension PHP, et mes utilisateurs ont des problèmes pour accéder à la bibliothèque lorsqu'ils s'exécutent dans un environnement d'hébergement partagé.Comment distribuer une extension PHP pour une utilisation dans un environnement d'hébergement partagé
Précédemment (In PHP versions less that 5.2.5) nos clients pouvaient simplement utiliser la fonction dl() et le chemin complet de la bibliothèque pour y accéder.
Depuis PHP 5.2.5, la fonction dl() ne peut contenir aucune information de chemin et la bibliothèque doit donc être installée par un administrateur système dans le répertoire des extensions PHP globales.
Depuis PHP 5.4 le dl() function has been deprecated et a été complètement supprimé de PHP 6.0. Cela signifie que toutes les bibliothèques doivent être installées par un administrateur système et chargées via PHP.ini. Pour autant que je puisse dire c'est la nouvelle réalité pour PHP extensions in a shared hosting environment et il n'y a pas de «contourner».
Quelles sont les choses clés que je dois faire avec ma distribution pour maximiser la probabilité qu'un administrateur d'hôte partagé l'installe au nom de mes clients?
Je me sens avec vous. J'ai récemment dû compiler l'extension SOAP pour un serveur virtuel. Heureusement, j'étais capable d'utiliser la fonction 'dl()'. Comme solution de contournement, vous pourriez éventuellement installer votre propre php en tant que binaire cgi ... Ce n'est pas forcément une bonne idée, mais si le client ne peut pas se permettre au moins un service dédié virtuel (comme un système dédié mais un matériel partagé) ... Peut-être une sorte de cgi léger à l'interface fastcgi ... – Inshallah
Merci pour le commentaire Inshallah. Je pense qu'à court terme je m'assurerai que mon extension est bien documentée, qu'elle joue bien avec les autres et qu'elle est facilement installée par n'importe quel administrateur système. Ensuite, dans le tir à moyen terme, changez les «exigences du système» comme suggéré par tinkertim pour être un VPS. Solution à long terme peut être de porter l'ensemble de la chose à un WebService – user44538