本文主要和你們分享最詳細的linux安裝php過程,而後寫好了nginx的安裝配置,後面就是php的安裝和mysql的安裝,不過期間有限,並且放篇裏也太長,因此都是分開來寫,php安裝完畢後就是mysql的配置了。php
一:檢查是否安裝了phphtml
1)yum安裝檢查:yum list已安裝| grep php前端
2)rpm安裝檢查:rpm -qa | grep phpmysql
3)本身編譯安裝的有多種方式查詢,例如查找php的執行程序,或者檢查進程ps -ef | grep php等方法。linux
二:檢查若是沒有安裝php,能夠準備php安裝前的初始軟件,用yum install xxxx便可安裝,固然不嫌麻煩麻煩也能夠本身編譯安裝,這裏就不詳細說了。nginx
1)zlib以及zlib-devel zlib提供數據壓縮的函數庫,也是nginx的前端軟件,因爲zlib須要編譯php的zlib擴展,而編譯中會須要使用zlib.h這個頭文件,頭文件在zlib-devel中,所以也須要下載zlib-devel。laravel
2)libxml2以及libxml-devel libxml2是一個c語言的xml程序庫,能夠簡單的對xml進行各類操做,並支持xpath查詢,以及部分支持xslt轉換等功能。web
3)libxslt以及libxslt-devel若是不安裝libxslt-devel會提示找到xslt.config文件,xslt是轉換xml到其餘格式的擴展。sql
3)openssl及openssl-devel安全專有層密碼庫shell
4)jpeg IJG的jpeg庫,php的gd庫所需。
5)libpng是c語言寫的比較複雜的的pngpng文件的跨平臺的庫,能夠幫助輕鬆的識讀pngpng文件的每一行替換,php的gd庫所需。
6)freetype及freetype-devel免費開源的且可移植的字體引擎,提供統一的接口訪問多種字體格式,這兩個都是gd庫的依賴軟件,因此若是沒有安裝,或者版本過低,在安裝phptime設定的是安裝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 --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-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 ,用戶方能夠經過上傳圖片來上傳木馬,而後經過網址訪問該圖片地址,並在地址後加入/xxx.php將圖片做爲PHP文件運行,這只是在nginx裏纔會存在的問題,apache和iis都沒有該問題
以上問題能夠直接想到鳥哥的博客,寫的至關詳細:http://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最後的包含的值是否是正確的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
刪除位置〜\ .php $ {...}這段代碼的註釋,依次fastcgi_param裏的/ scripts替換$ document_root
最後將位置/ {...}裏替換索引後面添加上index.php,確保index.php做爲替代的首頁
6)重啓php-fpm和nginx,能夠殺死全部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,這個後續再添加,以待繼續...
以上內容但願幫助到你們,不少PHPer在進階的時候總會遇到一些問題和瓶頸,業務代碼寫多了沒有方向感,不知道該從那裏入手去提高,對此我整理了一些資料,包括但不限於:分佈式架構、高可擴展、高性能、高併發、服務器性能調優、TP6,laravel,YII2,Redis,Swoole、Swoft、Kafka、Mysql優化、shell腳本、Docker、微服務、Nginx等多個知識點高級進階乾貨須要的能夠免費分享給你們,須要的能夠加入個人官方羣點擊此處。