首頁  >  文章  >  後端開發  >  最詳細的linux安裝php過程

最詳細的linux安裝php過程

小云云
小云云原創
2018-03-08 10:04:1422422瀏覽

本文主要跟大家分享最詳細的linux安裝php過程,之前寫好了nginx的安裝配置,後面就是php的安裝和mysql的安裝,不過時間有限,而且放一篇裡也太長,所以都是分開來寫,php安裝完畢後就是mysql的配置了。

一:檢查是否安裝了php

1)yum安裝檢查:yum list installed |grep php

2)rpm安裝檢查:rpm -qa | grep php

3)自行編譯安裝的有多種方式查詢,例如尋找php的執行程序,或檢查進程ps -ef |grep php等方法。

二:檢查如果沒有安裝php,即可準備php安裝前的前置軟體,用yum install xxxx即可安裝,當然不嫌麻煩也可以自己編譯安裝,這裡就不詳細說了。

1)zlib以及zlib-devel  zlib提供資料壓縮的函數函式庫,也是nginx的前置軟體,由於zlib需要編譯php的zlib擴展,而編譯中會需要使用zlib.h這個頭文件,頭檔在zlib-devel中,因此也需要下載zlib-devel。

2)libxml2以及libxml-devel libxml2是一個c語言的xml程式庫,可以簡單的對xml進行各種操作,並且支援xpath查詢,以及部分支援xslt轉換等功能。

3)libxslt以及libxslt-devel 如果不安裝libxslt-devel會提示找不到xslt.config文件,xslt是轉換xml到其他格式的擴充。


3)openssl以及openssl-devel 安全通訊端層密碼庫

4)jpeg IJG的jpeg函式庫,php的gd庫所需。

5)libpng 是c語言寫的比較底層的讀寫png檔案的跨平台的函式庫,可以幫助輕鬆的讀寫png檔的每一行像素,php的gd函式庫所需。

6)freetype以及freetype-devel 免費開源的且可移植的字體引擎,提供統一的介面存取多種字體格式,這兩個都是gd庫的依賴軟體,所以如果沒有安裝,或者版本太低,在安裝php時設定的是安裝gd函式庫則會報錯,另外不安裝-devel也是會報錯的,因為編譯擴充的時候會缺少ft2build.h文件,報錯如下圖。


7)gd gd是php處理圖形的擴充庫

8)curl,由於我的yum裡的版本太低了,所以直接自己編譯安裝的,安裝方式很簡單,也就是wget curl下載位址後tar解壓,新建/usr/local/curl資料夾,然後進入curl解壓縮後的資料夾裡設定./configure --prefix=/ usr/local/curl即可,最後make以及make install就安裝好了。

注意:xxx-devel是xxx軟體的開發包,包含頭檔以及靜態函式庫甚至原始碼。

三:php下載安裝

1)用wget下載php的tar.gz檔:wget http://br2.php.net/get/php-7.2.2.tar. gz

2)解壓縮tar.gz檔:tar zxvf php-7.2.2.tar.gz

3)新建待會安裝php的資料夾:mkdir /usr/local/ php,然後進入解壓縮後的php安裝包資料夾裡,設定configure:

./configure --prefix=/usr/local/php  --with-curl=/usr/local/curl  -- with-freetype-dir  --with-gd  --with-gettext  --with-iconv-dir  --with-kerberos  --with-libdir=lib64  --with-libxml-dir  --with-mysqli  --with- openssl  --with-pcre-regex  --with-pdo-mysql  --with-pdo-sqlite  --with-pear  --with-png-dir  --with-xmlrpc  --with-xsl  --with-zlib  - -enable-fpm  --enable-bcmath  --enable-libxml  --enable-inline-optimization  --enable-mbregex  --enable-mbstring  --enable-opcache  --enable-pcntl  --enable-shmop  --enable-opcache  --enable-pcntl  --enable-shmop  --enable-p soap  --enable-sockets  --enable-sysvsem  --enable-xml  --enable-zip

注意:

##--prefix=安裝目錄

# --with-使用套件名稱[=套件目錄]

--enable-需要啟動的功能

四:設定php相關檔案

1)設定php.ini ,這是php的設定檔:cp /home/myload/php-7.2.2/php.ini-development    /usr/local/php/lib/php.ini

#2)設定php-fpm. conf,這是php-fpm設定檔:cp /usr/local/php/etc/php-fpm.conf.default /usr/local/php/etc/php-fpm.conf

#3)配置www.conf,設定使用者的檔案:cp etc/php-fpm.d/www.conf.default  etc/php-fpm.d/www.conf

4)將php-fpm啟動檔案複製到init.d資料夾中一份方便啟動php:cp -R sbin/php-fpm /etc/init.d/php-fpm

五:啟動php,決定是否安裝成功

#執行指令/etc/init.d/php-fpm即可

檢視是否啟動:ps -ef |grep php既可以看到php啟動了哪些程序

#六:安裝成功後配置nginx支援php

1)更改php.ini檔案,vim /usr/local/php/lib/php.ini

#

透過尋找cgi.fix_pathinfo=1這個配置,並去除註釋,並改為cgi.fix_pathinfo=0,這裡不屬於nginx支援php配置相關,而是專屬於nginx下php的安全漏洞,如果這裡值為1,用戶方可以透過上傳​​圖片來上傳木馬,然後透過url訪問該圖片地址,並在地址後面加入/xxx.php將該圖片作為php檔案運行,這是只有在nginx才會存在的問題,apache和iis都沒有該問題

以上問題可以直接參看鳥哥的博客,寫的相當詳細:http://www.laruence.com/2010/05/20/1495.html

2)設定web專用的群組與使用者

新增www使用者群組:groupadd www

新增www使用者群組下的使用者www:useradd -g www www

3)更改php-fpm.conf配置

將user=nobody的註解去掉,並將nobody改成上面配置的www用戶

將group=nobody的註解去掉,並將nobody改成上面配置的www使用者群組

最後檢查php-fpm.conf最後的include的值是不是正確的www.conf目錄位址,如果不正確則換成正確的目錄位址。

4)更改www.conf配置

將user=nobody的註解去掉,並將nobody改成上面配置的www用戶

將group=nobody的註解去掉,並將nobody改成上面配置的www用戶群組

5)更改nginx.conf檔案/etc/local/nginx/conf/nginx.conf

將#user=nobody去掉註釋並改為user=www

去除location ~ \.php${...}這段程式碼的註釋,並將fastcgi_param裡的/scripts改為$document_root


最後將location / {...}裡預設index後面加上上index.php,確保index.php作為預設的首頁


6)重啟php-fpm和nginx,可以killall php-fpm然後再/etc/init.d/php-pfm即可重啟,/usr/local/nginx/sbin/nginx -s stop即可停止nginx,然後執行/usr/local/nginx/sbin/php即可重新啟動。

7)在html目錄裡隨便創建一個php文件,內容是phpinfo();,然後在瀏覽器中訪問該文件地址,看是否得到正確的php相關信息,如果正確顯示則配置成功。

七:配合apache支援php,這個後續再添加,to be continue...

#相關推薦:

Linux安裝php報錯記錄

linux安裝php 模組--with-mysql --with-mysqli非得安裝mysql嗎

linux安裝php與memcache過程記錄

以上是最詳細的linux安裝php過程的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn