環境:centos6.4(64位) 、Apache/2.2.24 (Unix) 、 PHP/5.4.21
問題:新項目(用的OneThink為架構)驗證碼無法顯示,提示缺少freetype.解決方案:重新安裝php具體步驟如下:PHP安裝
要考慮安裝SVN所需的東西(Apache),OneThink的東西
1.安裝依賴項 yum install perl yum install libxml2 yum install libxml2-devel yum install libjpeg libjpeg-devel yum install libpng-devel yum install freetype-devel yum install gd-devel yum install curl curl-devel 2.配置源碼 cd ~/src //轉到存放原始碼壓縮包的目錄中。 tar zxvf php-5.3.13.tar.gz cd php-5.3.13/ ./configure --prefix=/usr/local/php5 --with-apxs2=/usr/local/apache2/bin/apxs --with-mysql=/usr/local/mysql --with-gd --with-zlib --with-jpeg-dir=/usr/lib64/ --with-png-dir=/usr/lib64/ --with-freetype-dir=/usr/lib64/ --enable-gd-native-ttf --enable-sockets --with-iconv --enable-mbstring --with-config-file-path=/usr/local/php5/etc --enable-zlib=/usr/lib64/ --enable-zip --with-curl --with-xpm-dir=/usr/lib64/make make install cp php.ini-production /usr/local/php5/etc/php.ini 3.重啟Apache伺服器,使用phpinfo查看php是否安裝成功。 service apache2 restart 在預設的網站目錄中,建立php檔案,然後用web browser 或者wget測試 (如果curl沒有開啟,請檢查php.ini 檔案是否存在 extension_dir = "/usr/local/php5/lib/php/extensions/no-debug-non-zts-20090626/" extension = curl.so 不存添加即可)
編譯時間會出現如下錯誤:
checking for jpeg_read_header in -ljpeg... yesIf configure fails try --with-vpx-dir=<DIR>checking for png_write_image in -lpng... yesconfigure: error: libXpm.(a|so) not found.
原因:configure一般的搜尋編譯路徑為/usr/lib/下,因為php預設就在/usr/lib/下找相關庫檔案 (摘自網上)解決方案:主機是x64平台,
ln -s /usr/lib64/libXpm.so* /usr/lib/
並且編譯時間指定, --with-xpm-dir=/usr/lib64/x11
./configure --prefix=/usr/local/php5 --with-apxs2=/usr/local/apache2/bin/apxs --with-mysql=/usr/local/mysql --with-gd --with-zlib --with-jpeg-dir=/usr/lib64/ --with-png-dir=/usr/lib64/ --with-freetype-dir=/usr/lib64/ --enable-gd-native-ttf --enable-sockets --with-iconv --enable-mbstring --with-config-file-path=/usr/local/php5/etc --enable-zlib=/usr/lib64/ --enable-zip --with-curl --with-xpm-dir=/usr/lib64/x11
之後就不會出現錯誤,運行make和make install 即可安裝,如果是重新安裝不許要配置php.ini的話,可以不用執行
cp
php.ini-production
/usr/local/php5/etc/php
.ini
昨天晚上折騰了好久,終於折騰好了,之後OneThink的驗證碼就可以正常顯示了。