追月,Linux雲伺服器編譯安裝最新Apache、PHP和MySQL
PHP7.2.5發佈於2018年4月26日
當帶上編譯兩個字,我知道這事兒不會簡單,有成千上萬條通向羅馬的舊路,然而最新的只有你現在看見的一條,Come on
雲伺服器CentOS7.3
在安裝之前,需要理解一些事。你可以把PHP當作Apache上的一個PHP解釋器模塊,PHP與Apache緊密在一起。而MySQL與它倆完全獨立,依靠網路埠如3306通信。
Apache和PHP安裝過程都在做下面幾步:
安裝編譯器
安裝依賴包
配置並編譯主程序
啟動服務
額外配置
?Apache 2.4.33
?安裝ANSI-C編譯器
提前安裝用到的依賴工具包
?安裝httpd依賴包
這裡有apr、arp-util、pcre三個壓縮文件,都要經過下載、解壓、編譯安裝三步
1.下載。
執行效果默認下載路徑在/root目錄下
2.解壓。
執行效果獲得相關命名文件夾
3.編譯安裝
3.1 apr
執行完成後,返回上級目錄
3.2 apr-util
注意./configure後面接了多行指令
是用於換行書寫
默認沒有用--prefix制定安裝目錄,也在apr/lib同一個目錄下了
執行完成後,返回上層目錄
[已避免] 錯誤一。apr-util編譯時出現以下錯誤。
對應安裝→expat-devel
3.3 pcre 兼容正則表達式庫
執行完成後,返回上層目錄
?配置並編譯httpd主程序
同樣的下載、解壓、編譯
進入httpd目錄並配置編譯參數
編譯安裝httpd(15分鐘以上,如果有錯誤會很快中止)
[已避免] 錯誤二。undefined reference to `XML_SetElementHandler
對應安裝→libxml2-devel,並需要重新編譯apr-util
參考:http://blog.51cto.com/castiel/2051440
?啟動httpd服務
跳轉到apache的bin目錄下
啟動服務
這時訪問網站,其實可以看見默認頁面顯示:It works!這裡 提醒你需要設置ServerName的名字
打開 usr/local/apache/conf/httpd.conf
第 193 行
?apache加入開機啟動
編譯安裝的httpd服務無法直接通過systemctl啟動,將http里的apachectl拷貝到
/etc/rc.d/init.d/目錄中,命名httpd
現在就可以用systemctl啟動服務了,start|stop|restart
⑥默認網站根目錄為
/usr/local/apache/htdocs
? PHP 7.2.5
?安裝依賴工具包
?下載解壓php7.2.5
?構建自動化配置
?配置編譯參數
?編譯和安裝
出現一個警告
提示我們去執行命令移動庫
? 配置Apache支持PHP
打開usr/local/apache/conf/httpd.conf
第 252 行 增加index.php
第 390 行 增加一行
保存httpd.conf重啟httpd服務
測試頁面
? MySQL 8.0.11
錯誤記錄
發生情景:編譯httpd時
原因是在httpd配置文件引入了
--with-apr、
--with-apr-util,
而默認apr-util在apr的目錄,導致apr被用兩次,所以上面的httpd編譯配置中沒有寫apr-util
? 其他指令
①更改root主機名稱,重啟伺服器生效
②查yum看多個安裝包版本
TAG:編程夜未眠 |