linux設定php.ini不起作用的解決方法:1、將php.ini放到指定目錄下;2、開啟指令時使用「-c」參數指定要讀取的設定檔路徑。
本文操作環境:linux5.9.8系統、PHP7.1版,DELL G3電腦
linux上修改php.ini配置新增擴充功能時不生效
因初次編譯安裝php時沒有開啟openssl, 導致請求https網站報錯, 為此需要手動編譯openssl擴充功能然後新增到php.ini。問題就在自己明明已經編譯安裝生成openssl.so的步驟都沒有錯, 也已經將extension=openssl.so加入php.ini中,伺服器也重啟了, 但是無論是訪問phpinfo()打印的出內容還是直接命令行php -m列印載入的模組都沒有顯示有載入openssl.
對於以上問題, 其實問題就在如果自己編譯產生的openssl.so沒有問題, php.ini設定也加了,還是沒有生效那麼就要想到自己改的php.ini不是被加載的那個. 如何驗證?
1. web模式訪問phpinfo()打印出的內容. 找到如下圖所示信息, 第一行為php會在什麼目錄下需找php.ini設定檔, 第二行就是實際載入的php.ini檔, 沒有就是php系統預設的咯. 解決辦法: 要生效很簡單就是將php.ini放到那個第一行所示目錄下即可. (可能很多人的檔案是放在etc下)
#2. php命令列模式載入的php .ini(很有可能跟web模式載入的不一樣); linux上先將目錄切換都你php安裝目錄的bin下, 然後使用./php --ini會顯示如下圖資訊; 第一行為php會在哪個目錄下尋找php.ini檔案, 第二行是實際載入的php.ini檔案路徑, none就是什麼設定檔都沒有用,使用了系統的預設設定. 解決方法: 將你的php.ini檔案放到那個目錄下, 或開啟指令時使用-c參數指定要讀的設定檔路徑. (例如php -c /usr/local/php.ini --ini 看下指定的是不是生效)
此外因為php命令列(cli) 模式下載入設定位置的不一樣, 例如擴充目錄(可透過php -i 指令輸出的內容找到extension_dir欄位就是),假設你要新增一個openssl擴充, 那麼你將extension=openssl.so加入到php.ini, 但是如果你的openssl.so不在extension_dir字段所指的目錄下, 你用php -m 查看加載的擴展是無法看到的,所以要么配置中寫絕對路徑或將擴充放對地方。
推薦學習:《PHP影片教學》
以上是linux配置php.ini不起作用怎麼辦的詳細內容。更多資訊請關注PHP中文網其他相關文章!