《PHP編程:Ubuntu 16.04下安裝PHP 7過程詳解》要點:
本文介紹了PHP編程:Ubuntu 16.04下安裝PHP 7過程詳解,希望對您有用。如果有疑問,可以聯系我們。
前言PHP學習
最近由于換了硬盤重裝了(升級)系統到Ubuntu16.04之后,開發環境也要重新安裝,其實16.04源里面默認的PHP版本就是7.x,但是有個問題就是沒有OCI擴展,有項目需要使用到Oracle數據庫.PHP學習
準備編譯環境PHP學習
由于全部編譯太過于繁瑣,而且很多依賴會有問題,所以我們選擇另外一種方案,能使用apt-get安裝都使用apt-get安裝.不能使用apt-get才自己編譯,這樣可以節省大量的時間.因為有的依賴真的是很頭疼.PHP學習
由于在Ubuntu16.04上,默認的PHP版本就是7.x.由于我們要使用Apache2.4+PHP,所以安裝如下模塊即可直接解析PHP.PHP學習
sudo apt-get install php-dev libapache2-mod-php
這樣最基本的模塊就安裝好了,如果還需要其他的模塊,可以通過apt-get快捷安裝;比如還需要MySQL和mb_string相關的模塊.PHP學習
sudo apt-get install php-mysql php-mbstring
這樣就會自動安裝好相關的模塊.PHP學習
安裝Oracle ClientPHP學習
由于要編譯OCI擴展,我們需要Oracle客戶端,這里我們下載Oracle Instant Client,選擇Instant Client for Linux x86-64 basic
版本下載.PHP學習
另外要編譯OCI必須還需要instant client SDK
包,下載解壓之后合并到Base.PHP學習
給出的網頁最后面也有安裝步驟,這里簡述一下PHP學習
sudo unzip instantclient-basic-linux.x64-12.1.0.2.0.zip sudo unzip instantclient-sdk-linux.x64-12.1.0.2.0.zip sudo mv instantclient_12_1/ /opt/oracle/ cd /opt/oracle/instantclient_12_1/ # 建立符號鏈接 sudo ln -s libclntsh.so.12.1 libclntsh.so sudo ln -s libocci.so.12.1 libocci.so # 打開 /etc/profile 在最后面加入 export LD_LIBRARY_PATH=/opt/oracle/instantclient_12_1:$LD_LIBRARY_PATH export PATH=/opt/oracle/instantclient_12_1:$PATH # 最后source一下,使配置生效 source /etc/profile
下載PHP源碼PHP學習
首先我們要確定已經安裝的PHP的版本,由于使用apt-get安裝,版本可能不是PHP官網放的最新的版本,使用下面的 命令既可查看PHP學習
php -v
發現我的安裝的版本是7.0.4,那么我們對應的下載PHP-7.0.4版本的源碼.
PHP學習
兩種方式可以下載到源碼.PHP學習
官網下載源碼很簡單,打開php.net的Download頁面,選擇要下載的版本.或者從GitHub倉庫clone指定版本(或者先clone再checkout想要的版本),如PHP學習
git clone -b PHP-7.0.4 https://github.com/php/php-src && cd php-src
編譯OCI8/PDO_OCIPHP學習
經過如上的步驟我們已經進入到下載的PHP源碼根目錄了,那么我們開始編譯.PHP學習
編譯oci8PHP學習
進入到擴展oci8的源碼目錄,使用phpizePHP學習
cd ext/oci8 phpize ./configure --with-oci8=instantclient,/opt/oracle/instantclient_12_1 sudo make
執行完上面的步驟,應該會生成一個modules文件夾,里面就有我們想要的extension.PHP學習
編譯pdo_ociPHP學習
步驟和編譯oci8是一樣的,但是configure參數不一樣,所以還是寫一下.PHP學習
cd ../../ext/pdo_oci phpize # 最后面要指定版本號 ./configure --with-pdo-oci=instantclient,/opt/oracle/instantclient_12_1,12.1 sudo make
結果也和上面一樣.PHP學習
使用我們編譯的擴展PHP學習
首先我們要知道現行PHP的ext目錄在哪里PHP學習
php -i | grep "extension_dir"
我這里顯示的是extension_dir => /usr/lib/php/20151012 => /usr/lib/php/20151012
,那么我們先把我們編譯的擴展復制到/usr/lib/php/20151012
下PHP學習
# 先進入對應的modules目錄下 cp oci8.so /usr/lib/php/20151012 cp pdo_oci.so /usr/lib/php/20151012
然后我們還要在php.ini中添加相關配置項,首先也要知道php.ini的位置PHP學習
p -i | grep "Configuration File"
打印出了如下信息PHP學習
Configuration File (php.ini) Path => /etc/php/7.0/cli Loaded Configuration File => /etc/php/7.0/cli/php.ini
這樣我們就知道了php.ini的位置,但是這個是CLI(命令行接口)的配置文件,我們需要使用Apache的(CGI).我們到目錄/etc/php/7.0/下發現還有一個名為apache2的目錄,里面也有php.ini文件,那么我們編輯apache2目錄下的php.iniPHP學習
sudo vim php.ini
在里面加入PHP學習
extension=oci8.so extension=pdo_oci.so
最后重啟ApachePHP學習
systemctl restart apache2.service
查看一下phpinfo()
發現OCI和PDO_OCI均已安裝.到這里安裝已經全部完成了.PHP學習
Linux小技巧PHP學習
在安裝和查資料的過程中發現了一下很實用的命令,也把它們記錄下來.PHP學習
# 重啟某個服務 sudo systemctl restart apache2.service # 查看某個服務的狀態 sudo systemctl status apache2.service # 查看php相關的模塊(其他的類似) apt-cache search php- | less # 具體查看某個模塊的詳細信息 apt-cache show package_name
總結PHP學習
以上就是這篇文章的全部內容了,希望本文的內容對大家的學習或者工作能帶來一定的幫助,如果有疑問大家可以留言交流,謝謝大家對維易PHP的支持.
PHP學習
轉載請注明本頁網址:
http://www.snjht.com/jiaocheng/1317.html