一、工具
Ubuntu 12.04 Server
php-7.3.14.zip 源碼包
PHP官網源碼下載鏈接:https://www.php.net/downloads.php
這個網址下載快一點 :https://windows.php.net/download/
百度雲下載: 鏈接:https://pan.baidu.com/s/1m7jD1etV7h9u_FhKjcpqew 提取碼:iaeu
在Apache中安裝PHP,就是讓Apache支持對PHP代碼的解析,從而實現動態網頁的效果。
二、安裝步驟
1.安裝php依賴環境
2.配置編譯參數
3.編譯與安裝
4.配置Apache支持PHP解析
5.使用測試
三、安裝過程
所有在root用戶模式下進行,
1. 安裝php依賴環境:
解壓源碼
unzip php-7.3.14-src.zip
ls查看源碼的文件
2.目錄下有一個configure可執行文件,用於配置編譯參數。但是我們可以看到它不是可執行,所以要改變他的權限。
本次安裝,我們編譯參數設置遵循以下原則:
a.加載所有模塊
b.設置MySQL驅動為mysqlnd,作用:直接使用PHP官方開發的MySQL驅動,可以不用預先安裝MySQL
c.添加gd、webp、jpeg、png圖片庫的支持,作用:比如對圖片進行處理、生成圖片驗證碼
d.添加curl的支持,作用:進行網絡請求
e.添加freetype字體庫的支持
f.添加zlib的支持,作用:進行數據壓縮
g.添加soap的支持,作用:SOAP 是一種簡單的基於 XML 的協議,它使應用程序通過 HTTP 來交換信息。添加soap擴展用來編寫soap服務器和客戶端
h.添加mbstring的支持,多字節字符串
i.添加sockets的支持
j.添加exif的支持
k.取消ipv6的支持
l.添加libmcrypt的支持
m.添加xml支持
n.添加openssl的支持
o.添加對bzip2的支持
實際上,根據你的項目需求,你可能需要配置更多參數,以上只是一個最簡單的演示,你可以使用./configure -help命令查看詳細說明。不過,對於學習PHP基礎搭建的環境,上面的配置原則應該夠用了。
根據上面需求,我們需要在系統中安裝一些依賴庫,如下命令:
apt install libcurl4-openssl-dev #安裝curl開發套件
apt install libgd-dev #安裝gd開發套件
apt install libwebp-dev #安裝webp開發套件
apt install libjpeg-dev #安裝jpeg開發套件
apt install libpng++-dev #安裝png開發套件
apt install libfreetype6-dev #安裝libfreetype6-dev開發套件
apt install libghc-zlib-dev #安裝zlib開發套件
apt install libmcrypt-dev #安裝libmcrypt開發套件
apt install libxml++2.6-dev #安裝libxml開發套件
apt install libssl-dev #安裝ssl開發套件
apt install libbz2-dev #安裝bzip2開發套件
或者執行以下命令
apt install -y libcurl4-openssl-dev libgd-dev libwebp-dev libpng++-dev libfreetype6-dev libghc-zlib-dev libmcrypt-dev libxml++2.6-dev libssl-dev libbz2-dev
用的清華源,發現一個安裝包沒有,就去掉了libgd-dev
2. 配置編譯參數:
./configure --prefix=/usr/local/php --with-apxs2=/usr/local/apache2/bin/apxs --with-config-file-path=/usr/local/php/etc --with-pdo-mysql=mysqlnd --with-mysqli=mysqlnd --with-libxml-dir --with-gd --with-jpeg-dir --with-png-dir --with-freetype-dir --with-iconv-dir --with-zlib-dir --with-bz2 --with-openssl --with-curl --enable-soap --enable-mbstring --enable-sockets --enable-exif --disable-ipv6
執行發現,libxml2 是一個用來解析XML文檔的函數庫
安裝一下再次執行apt-get install libxml2-dev libxml2
apt-get install libbz2-dev 安裝再次執行
首先輸入apt-cache search curl | grep php
查詢curl的php支持名字,可能會返回如下內容:
php5-curl - CURL module for php5
安裝:
sudo apt-get install php5-curl發現還是沒有用
於是安裝curl: sudo apt-get install curl libcurl4-gnutls-dev
又出現錯誤
sudo apt-get install libjpeg-dev 再次執行configure
發現原來是一開始我就沒有安裝,才會出現這么多錯誤。
所以我重新安裝了一下,發現缺了一個包
sudo apt-get install libjpeg-dev
配置過程如果沒有錯誤的話,可以看到以下如圖所示:
參數說明:
--prefix:指定安裝位置
--with-apxs2:指定Apache 2中apxs模塊所在的目錄,我們在上一節安裝了Apache 2.4.39
--with-config-file-path:指定php配置文件所在目錄
3.編譯與安裝
參數配置結束之后源碼目錄會多出一個Makefile文件,我們就可以編譯安裝了,執行以下命令
make #編譯
make install #安裝
如果內存不足,可設置swap交換分區
我們在參數配置中指定配置文件的目錄為:/usr/local/php/etc,因此把源碼目錄下的配置文件復制到我們指定的配置文件目錄中,執行以下命令
cp php.ini-production /usr/local/php/etc/php.ini
make后
安裝完libtool后,然后 make clean 重新編譯
重新編譯
4.設置Apache支持PHP解析
使用vim編輯Apache服務器的配置文件
vim /usr/local/apache2/conf/httpd.conf
(1).在
AddType application/x-httpd-php .php
(2).找到:
<IfModule dir_module>
DirectoryIndex index.html
</IfModule>
將該行改為:
<IfModule dir_module>
DirectoryIndex index.html index.htm index.php
</IfModule>
(3)找到:
#ServerName www.example.com:80
修改為:
ServerName localhost:80
apache與php的關聯
PHP安裝成功后會在apache的modules目錄下生成一個libphp.so動態庫文件,在apache的配置文件httpd.conf里自動增加一行。
5.測試
查看網站根目錄
我們重啟Apache服務器之后。在Apache的htdocs目錄下,添加index.php文件,並在文件中加入以下內容。用於測試PHP是否正常解析
<?php
phpinfo();
如果看到如下圖中結果,恭喜你,安裝成功了.