2017-09-05 145 views
0

extension=geoip.so(或mysqli.so)一起使用.user.ini文件我試圖加載相關模塊失敗:在Php 7.1(或甚至Php5.4)的phpinfo()頁面中,模塊從不顯示。Php擴展未加載

1).user.ini文件工作正常,因爲我可以修改變量memory_limit。

2)phpinfo()函數正確顯示了extension_dir文件夾,其中包含我想要加載的.so擴展名(但在php.ini文件中,該變量不存在,但是)。

3)php錯誤日誌不包含任何消息。

每個建議都是值得歡迎的。

回答

0

.user.ini文件只能設置certain PHP ini settings。它恰好是extension設置不是其中之一。實際上,according to the manual,extension設置僅在覈心php.ini文件中有效。所以把extension=geoip.so放在你主要的php.ini文件裏。

作爲附註:我使用Ubuntu/Debian進行大部分PHP操作。標準的PHP發行版可通過Debian軟件包存檔獲得,其中包含額外的代碼,可用於分佈式配置。工作方式是SAPI模塊掃描conf.d目錄幷包含任何ini文件。通常當你爲Debian打包一個外部PHP擴展時(我可能會添加一個痛苦 - 我已經爲自己的擴展完成了),包含一個包含擴展名(例如extension=myext.so)的ini文件。該軟件包將其安裝在分佈式配置目錄中,並且當PHP啓動時它將包含在php.ini文件中。也許你打算像這樣安裝一個基於Debian的配置?

另一個側面說明:由於您可能使用CGI SAPI和可能需要不同的網站加載不同的模塊(專),你也許可以考慮讓Web服務器在不同php.ini文件指向的CGI PHP 。我只是假設你想要實現這樣的事情。但是,使用.user.ini文件加載某些目錄的模塊是不可能的。