2009-09-30 83 views
4

我有一個以C語言編寫的庫,它以PHP擴展的形式分發,並且我的用戶在共享主機環境中運行時訪問庫時遇到問題。如何分發PHP擴展以用於共享主機環境

以前(In PHP versions less that 5.2.5)我們的客戶可以簡單地使用dl()函數和庫的完整路徑來訪問它。

從PHP 5.2.5開始,dl()函數不能包含任何路徑信息,因此庫必須由系統管理員安裝在全局PHP擴展目錄中。

從PHP 5.4開始dl() function has been deprecated已被完全從PHP 6.0中刪除。這意味着所有庫必須由系統管理員安裝,並且也通過PHP.ini加載。

據我所知,這是PHP extensions in a shared hosting environment的新現實,沒有「解決方法」。

爲了最大限度地提高共享主機管理員代表我的客戶安裝它的可能性,我需要使用我的發行版處理哪些關鍵事情?

+0

我覺得和你在一起。我最近不得不編譯虛擬服務器的SOAP擴展。幸運的是,我能夠使用'dl()'函數。作爲一種解決方法,您可以將自己的PHP安裝爲cgi二進制文件...並非這是一個好主意,但是如果客戶端至少無法承受虛擬專用服務(如專用系統但共享硬件) ...也許某種輕量級的cgi來fastcgi接口... – Inshallah 2009-10-01 01:31:01

+0

感謝評論Inshallah。我認爲在短期內,我會確保我的擴展程序有充分的文檔記錄,可以與其他人一起玩,並且很容易被任何系統管理員安裝。然後在拍攝到中期時改變「系統要求」,正如tinkertim所建議的那樣是VPS。長期的解決方案可能是將整個事件移植到WebService – user44538 2009-10-01 06:16:14

回答

4

許多共享主機將禁用dl()函數,即使它在其特定版本的PHP中可用。總之,共享主機正在迅速變得陳舊,除了那些只想託管博客或其他類型虛榮網站的人。

在大多數人都在「雲端」之前,相當長的一段時間,但是我並沒有看到任何錯誤,你期待更多的嚴肅用戶擁有VPS ......並指定需要一個作爲系統需求。

我感覺雙方都有同樣的感覺。我擁有一家小型託管公司,並開發定製的PHP擴展。幸運的是,對我而言,我可以將我的產品提供給我無需擔心的客戶。

你有沒有想過只是提出一個共享服務器,並提供託管給需要它的人?

+0

Good call tinkertim。根據你的建議,我已經和'商業'人聊了聊,他們似乎相當高興,因爲他們期望他們實際上從中賺錢的用戶確實會運行VPS。作爲系統要求,我會推動這一進展。同時,我會密切關注PHP 6.0版本,看看是否有其他東西彈出來填補這個空白。 – user44538 2009-10-01 06:12:42