因?yàn)槲业南到y(tǒng)沒有安裝PHP,所以我打算為我的系統(tǒng)安裝一個(gè)PHP7.3
我們安裝PHP7.3是為了使用Laravel5.7框架,所以我們要先確定Laravel5.7依賴的擴(kuò)展:
Laravel學(xué)院提供Laravel5.7的中文文檔,
好嗨奧:https://laravelacademy.org/post/9528.html
截圖可見,我們安裝php7.3需要的擴(kuò)展有:
讓客戶滿意是我們工作的目標(biāo),不斷超越客戶的期望值來自于我們對(duì)這個(gè)行業(yè)的熱愛。我們立志把好的技術(shù)通過有效、簡單的方式提供給客戶,將通過不懈努力成為客戶在信息化領(lǐng)域值得信任、有價(jià)值的長期合作伙伴,公司提供的服務(wù)項(xiàng)目有:國際域名空間、虛擬空間、營銷軟件、網(wǎng)站建設(shè)、荔城網(wǎng)站維護(hù)、網(wǎng)站推廣。
PHP >= 7.1.3 PHP7.3滿足這一項(xiàng)
PHP OpenSSL 擴(kuò)展
PHP PDO 擴(kuò)展
PHP Mbstring 擴(kuò)展
PHP Tokenizer 擴(kuò)展
PHP XML 擴(kuò)展
PHP Ctype 擴(kuò)展
PHP JSON 擴(kuò)展
這里我們額外需要連接MySQL和redis,所以對(duì)這兩個(gè)數(shù)據(jù)庫也需要擴(kuò)展
安裝前先安裝依賴,最好一個(gè)一個(gè)安裝查看錯(cuò)誤,不要批量安裝
sudo apt-get install libxml2-dev
sudo apt-get install libcurl3-openssl-dev
sudo apt-get install libcurl4-gnutls-dev
sudo apt-get install libbz2-dev
sudo apt-get install libjpeg-dev
sudo apt-get install libpng-dev
sudo apt-get install libxpm-dev
sudo apt-get install libfreetype6-dev
sudo apt-get install libmcrypt-dev
sudo apt-get install libmysql++-dev
sudo apt-get install libxslt1-dev
php7.3下載地址:http://php.net/get/php-7.3.0.tar.bz2/from/a/mirror
cd /home/anfang/Downloads
wget http://am1.php.net/get/php-7.3.0.tar.bz2/from/this/mirror
tar xvf mirror
cd php-7.3.0/
我們想要php支持mysql,看一下配置指定什么參數(shù)
./configure -help | grep mysql
可以看到,PHP希望使用mysqlnd來支持MySQL,所以參數(shù)可以這樣寫:
--enable-mysqlnd
--with-mysqli=mysqlnd
--with-pdo-mysql=mysqlnd
其他的擴(kuò)展你也可以這樣查看需要指定的參數(shù),如openssl:
./configure -help | grep openssl
之前我們需要改造openssl,所有需要使用自己修改過的openssl源碼,這就需要在安裝php的時(shí)候在./configure的時(shí)候指定openssl的源碼路徑,但是一般項(xiàng)目不需要改造openssl,所有我們沒必要在./configure中指定openssl路徑,而是在php源碼中的ext目錄下按照需求動(dòng)態(tài)編譯安裝擴(kuò)展即可。
還有一點(diǎn)需要注意的,configure-file需要指定到etc,否則那你可能就需要把php.ini放在lib下了。
最終我們的configure參數(shù)可以確定為如下:
./configure --prefix=/usr/local/php --enable-fpm --enable-sockets --enable-mbstring=all -enable-mysqlnd --with-config-file-path=/usr/local/php/etc --with-mysqli=mysqlnd --with-pdo-mysql=mysqlnd --with-curl --with-gd
安裝
//這里經(jīng)過了漫長的等待...真想換臺(tái)好點(diǎn)的電腦,但是又要攢錢養(yǎng)家...算了,忍耐吧~
make -j2
sudo make install
sudo cp php.ini-development /usr/local/php/etc/php.ini
cd /usr/local/php/etc
sudo cp php-fpm.conf.default php-fpm.conf
cd /usr/local/php/etc/php-fpm.d
sudo cp www.conf.default www.conf
sudo vim /etc/profile
//將下面的一句話加到末尾
export PATH=$PATH:/usr/local/php/bin
source /etc/profile
php -v //出現(xiàn)版本號(hào)說明安裝成功
php -m //查看你安裝的依賴
這里我們發(fā)現(xiàn)Laravel5.7依賴的擴(kuò)展出了openssl其他都安裝了。這里安裝下openssl擴(kuò)展
出現(xiàn)下面的截圖說明configure成功了,否則找一下錯(cuò)誤安裝依賴啥的
make時(shí)出現(xiàn)下面的截圖即可
sudo make install出現(xiàn)如下截圖我們就認(rèn)為安裝成功了:
錯(cuò)誤處理
當(dāng)配置PHP時(shí)出現(xiàn) make: *** [ext/fileinfo/libmagic/apprentice.lo] Error 1 時(shí)
是因?yàn)?a title="服務(wù)器" target="_blank" >服務(wù)器內(nèi)存不足1G。
只需要在配置命令中添加 --disable-fileinfo即可
安裝擴(kuò)展需要
sudo apt-get install m4
sudo apt-get -y install autoconf
我安裝的php源碼在/home/anfang/Downloads目錄
sudo apt-get install libssl-dev
cd /home/anfang/Downloads/php-7.3.0/ext/openssl
cp config0.m4 config.m4 //有的擴(kuò)展沒有config.m4但有config0.m4
phpize
./configure --with-php-config=/usr/local/php/bin/php-config //我們的php安裝目錄下
make
sudo make install
此時(shí)使用php -m是看不到openssl擴(kuò)展的,需要在php.ini中打開擴(kuò)展
sudo vim /usr/local/php/etc/php.ini
到這里使用php -m 就可以發(fā)現(xiàn)openssl擴(kuò)展了。
安裝成功,so文件被拷貝到了/usr/local/php/lib/php/extensions/no-debug-non-zts-20180731/ 目錄。