1. 程式人生 > >thinkPHP5專案上傳到centOS伺服器後不顯示驗證碼

thinkPHP5專案上傳到centOS伺服器後不顯示驗證碼

文章參考
《錯誤:php70w-common conflicts with php-common-5.3.3-49.el6.x86_64 You could try using --skip-broken to》

環境

  1. centOS7.2
  2. thinkPHP5
  3. 驗證碼使用的是captcha

問題如下:
本地使用的過程能顯示驗證碼圖片,上傳到伺服器後顯示如圖:
在這裡插入圖片描述

百度後大致找到是因為伺服器當前php未安裝GD庫,有關GD庫的知識檢視這裡(gd庫是一個開源的影象處理庫,它通過提供一系列用來處理圖片的API,使其可以用來建立圖表、圖形、縮圖以及其他影象的處理操作)。
常規安裝GD庫命令:

# yum -y install php-gd

如果你伺服器上沒有重灌過php那麼上面的命令足以解決問題。
如果報告以下類似錯誤

 錯誤:php70w-common conflicts with php-common-5.4.16-45.el7.x86_64
 您可以嘗試新增 --skip-broken 選項來解決該問題
 您可以嘗試執行:rpm -Va --nofiles --nodigest

那麼有可能是因為你重灌過不同版本的php,並且未清理乾淨之前版本的php,如此需要使用下面命令(注意:我的php版本是7.0以上的所以使用的是php70w,應視情況而定)

# yum -y install php70w-gd

最後,重啟apache server

# service httpd restart

檢視結果:
在這裡插入圖片描述

接著,登入,如果報錯:

致命錯誤: Call to undefined function think\mb_strlen()

在這裡插入圖片描述
那麼可能是因為伺服器php未包含php_mbstring擴充套件,安裝方法:

# yum install php70w-mbstring

重啟下apache

# service httpd restart

done!