前言
用TP開發(fā)完新項目后卷哩,傳到服務(wù)器上報錯狂男,網(wǎng)上查了一下啤月,說未加載PDO财异,就加載吧。
找到配置文件php.ini癌蚁,搜到;extension=php_pdo_mysql.dll幻梯,去掉前面的注釋兜畸,重啟;服務(wù)器,看似一切正常碘梢,卻大錯特錯咬摇。
Linux下應(yīng)該是.so,而不是.dll煞躬,php源碼中的php.ini-development只是用.dll作為樣例菲嘴,在Linux下不能直接去除注釋就行了。
下文介紹Php最新版安裝方法
安裝工具和相應(yīng)擴展
yum install libxml2 libxml2-devel openssl openssl-devel bzip2 bzip2-devel libcurl libcurl-devel libjpeg libjpeg-devel libpng libpng-devel freetype freetype-devel gmp gmp-devel libmcrypt libmcrypt-devel readline readline-devel libxslt libxslt-devel re2c
安裝擴展
安裝FreeType(使用thinkphp5驗證碼時可能會出現(xiàn)缺少freetype的問題)
yum install freetype
find / -name freetype #復(fù)制路徑 下方php編譯會用到
安裝curl
cd /usr/local/src/
wget https://curl.haxx.se/download/curl-7.58.0.tar.gz
tar zxvf curl-7.58.0.tar.gz
cd curl-7.58.0
./configure --prefix=/usr/local/curl
make && make install
獲取并解壓PHP安裝包
cd /usr/local/src/
wget http://hk1.php.net/get/php-7.1.14.tar.gz/from/this/mirror
tar zxvf mirror
cd php-7.1.14
#http://cn2.php.net是中國網(wǎng)站汰翠,mirror也是壓縮包,更換版本的話直接替換url
開始編譯PHP
系統(tǒng)配置可以按照自己的項目決定昭雌,這里只是幾個基礎(chǔ)配置項
./configure的作用是檢測系統(tǒng)配置复唤,生成makefile文件,以便你可以用make和make install來編譯和安裝程序
cd php-7.1.14
./configure \
--with-config-file-path=/usr/local/php/etc \
--prefix=/usr/local/php \
--enable-fpm \
--with-apxs2=/usr/local/apache/bin/apxs \
--enable-opcache \
--with-mysqli \
--with-pdo-mysql \
--enable-bcmath \
--enable-mbstring \
--enable-sockets \
--with-gd \
--with-openssl \
--with-curl=/usr/local/curl \
--with-gettext \
--with-freetype-dir=/usr/include/freetype2 #這個路徑是上面copy下來的烛卧,用在此處
#最后
make && make install
php配置文件的路徑已經(jīng)指定到usr/local/etc
#只需要復(fù)制源碼中的 php.ini-development 或者 php.ini-production 到usr/local/etc目錄下即可佛纫,vi打開需要的擴展包
cp -R php.ini-development /usr/local/php/etc/php.ini
完成安裝,下方是可能會用到功能介紹
phpize編譯安裝
修改默認的php.ini 总放,后續(xù)添加擴展時需要用到
#修改php配置文件
vi /usr/local/php/etc/php.ini
#檢查擴展庫目錄是否設(shè)置(如果沒設(shè)置則增加下方代碼)
extension_dir = "/usr/local/php/lib/php/extensions/no-debug-zts-20160303/"
#開啟擴展模塊時添加呈宇,例如:
extension=curl.so
extension=openssl.so
#重啟Apache即可。
/usr/local/apache/bin/apachectl restart
安裝curl
cd /usr/local/src/php-7.1.14/ext/curl/
/usr/local/php/bin/phpize
./configure -with-php-config=/usr/local/php/bin/php-config --with-curl=/usr/local/curl
make && make install
vi /usr/local/php/etc/php.ini
#開啟擴展模塊時添加局雄,例如:
extension=curl.so
安裝SSL
cd /usr/local/src/php-7.1.14/ext/openssl/
cp config0.m4 ./config.m4
/usr/local/php/bin/phpize
./configure -with-php-config=/usr/local/php/bin/php-config --with-openssl
make && make install
vi /usr/local/php/etc/php.ini
#開啟擴展模塊時添加甥啄,例如:
extension=openssl.so
安裝大部分的擴展與上面的大同小異,有區(qū)別的自行百度google
開啟錯誤模式調(diào)試代碼(未必會用到)
vi php.ini
#顯示錯誤信息
display_errors = On
#顯示php開始錯誤信息
display_startup_errors = On
#日志記錄錯誤信息
log_errors = On
ini_set('display_errors',1); //錯誤信息
ini_set('display_startup_errors',1); //php啟動錯誤信息
error_reporting(-1); //打印出所有的 錯誤信息
ini_set('error_log', dirname(__FILE__) . '/error_log.txt'); //將出錯信息輸出到一個文本文件