最詳細的linux安裝php過程

来源:https://www.cnblogs.com/a609251438/archive/2019/12/23/12088717.html
-Advertisement-
Play Games

本文主要和大家分享最詳細的linux安裝php過程,然後寫好了nginx的安裝配置,後面就是php的安裝和mysql的安裝,不過時間有限,而且放篇里也太長,所以都是分開來寫,php安裝完畢後就是mysql的配置了。 一:檢查是否安裝了php 1)yum安裝檢查:yum list已安裝| grep p ...


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

 

一:檢查是否安裝了php

1)yum安裝檢查:yum list已安裝| 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語言寫的比較複雜的的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 

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://

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等多個知識點高級進階乾貨需要的可以免費分享給大家,需要的可以加入我的官方群點擊此處


您的分享是我們最大的動力!

-Advertisement-
Play Games
更多相關文章
  • “==”操作符 基本類型比較值:判斷兩個變數的值相等。 引用類型比較引用(是否指向同一個對象):只有指向同一個對象時才相等。 用“==”進行比較時,兩邊的數據類型必須相容(可自動轉換的基本數據類型除外)。 equals() 所有類都繼承了Object,也就是獲得了equals()方法,還可以重寫。 ...
  • 實現文件分離 1.頭文件中不要使用using namespace,由於c++編譯的特性,由於初學還沒深入瞭解,不做具體編譯的解釋 2.由於沒有了命名空間,所以string定義要寫成std::string 3.main.cpp中引入staff.cpp,staff.cpp中引入staff.h main. ...
  • 對java對象的強制類型轉換稱為造型 從子類到父類的類型轉換可以自動進行; 從父類到子類的類型轉換必須通過造型(強制類型轉換)實現; 無繼承關係的引用類型間的轉換是非法的; ...
  • object類是所有java類的根父類 如果在類的聲明中未使用extends關鍵字指明父類,則預設父類為object類。 object類中的主要方法 public boolean equals(Object obj) 對象比較 public int hashCode() 取得hash碼 public ...
  • HoJe男孩子你要加油阿 準備材料微信支付需要的參數統一下單二維碼回調介面用到的工具類 . 準備材料 首先肯定是要有微信的開發文檔開發文檔地址再然後就是一些必的參數註意:回調地址非同步接收微信支付結果通知的回調地址,通知url必須為外網可訪問的url,不能攜帶參數。 再然後就是微信的SDK . 微信支 ...
  • jdk1.8新特性知識點: Lambda表達式 Stream API 函數式介面 方法引用和構造器調用 介面中的預設方法和靜態方法 新時間日期API default Lambda表達式 Lambda就是把我們之前一些複雜的代碼更簡單化,比如集合內容的判斷比較/排序,我們之前可以進行遍歷判斷取出我們想 ...
  • 使用path或者re_path後,在url中都可以包含參數,而有時候想指定預設的參數,可以通過在urls.py中寫兩個url都指向同一個視圖函數。一個帶參數一個不帶參數。同時,在視同函數的參數中設置預設值。這樣,當匹配到不帶參數的url時,就會使用預設值。實例代碼: urls.py 1 from d ...
  • 從Excel到Python:最常用的36個Pandas函數關於Excel,你一定用的到的36個Python函數 本文涉及pandas最常用的36個函數,通過這些函數介紹如何完成數據生成和導入、數據清洗、預處理,以及最常見的數據分類,數據篩選,分類彙總,透視等最常見的操作。 生成數據表 常見的生成數據 ...
一周排行
    -Advertisement-
    Play Games
  • 移動開發(一):使用.NET MAUI開發第一個安卓APP 對於工作多年的C#程式員來說,近來想嘗試開發一款安卓APP,考慮了很久最終選擇使用.NET MAUI這個微軟官方的框架來嘗試體驗開發安卓APP,畢竟是使用Visual Studio開發工具,使用起來也比較的順手,結合微軟官方的教程進行了安卓 ...
  • 前言 QuestPDF 是一個開源 .NET 庫,用於生成 PDF 文檔。使用了C# Fluent API方式可簡化開發、減少錯誤並提高工作效率。利用它可以輕鬆生成 PDF 報告、發票、導出文件等。 項目介紹 QuestPDF 是一個革命性的開源 .NET 庫,它徹底改變了我們生成 PDF 文檔的方 ...
  • 項目地址 項目後端地址: https://github.com/ZyPLJ/ZYTteeHole 項目前端頁面地址: ZyPLJ/TreeHoleVue (github.com) https://github.com/ZyPLJ/TreeHoleVue 目前項目測試訪問地址: http://tree ...
  • 話不多說,直接開乾 一.下載 1.官方鏈接下載: https://www.microsoft.com/zh-cn/sql-server/sql-server-downloads 2.在下載目錄中找到下麵這個小的安裝包 SQL2022-SSEI-Dev.exe,運行開始下載SQL server; 二. ...
  • 前言 隨著物聯網(IoT)技術的迅猛發展,MQTT(消息隊列遙測傳輸)協議憑藉其輕量級和高效性,已成為眾多物聯網應用的首選通信標準。 MQTTnet 作為一個高性能的 .NET 開源庫,為 .NET 平臺上的 MQTT 客戶端與伺服器開發提供了強大的支持。 本文將全面介紹 MQTTnet 的核心功能 ...
  • Serilog支持多種接收器用於日誌存儲,增強器用於添加屬性,LogContext管理動態屬性,支持多種輸出格式包括純文本、JSON及ExpressionTemplate。還提供了自定義格式化選項,適用於不同需求。 ...
  • 目錄簡介獲取 HTML 文檔解析 HTML 文檔測試參考文章 簡介 動態內容網站使用 JavaScript 腳本動態檢索和渲染數據,爬取信息時需要模擬瀏覽器行為,否則獲取到的源碼基本是空的。 本文使用的爬取步驟如下: 使用 Selenium 獲取渲染後的 HTML 文檔 使用 HtmlAgility ...
  • 1.前言 什麼是熱更新 游戲或者軟體更新時,無需重新下載客戶端進行安裝,而是在應用程式啟動的情況下,在內部進行資源或者代碼更新 Unity目前常用熱更新解決方案 HybridCLR,Xlua,ILRuntime等 Unity目前常用資源管理解決方案 AssetBundles,Addressable, ...
  • 本文章主要是在C# ASP.NET Core Web API框架實現向手機發送驗證碼簡訊功能。這裡我選擇是一個互億無線簡訊驗證碼平臺,其實像阿裡雲,騰訊雲上面也可以。 首先我們先去 互億無線 https://www.ihuyi.com/api/sms.html 去註冊一個賬號 註冊完成賬號後,它會送 ...
  • 通過以下方式可以高效,並保證數據同步的可靠性 1.API設計 使用RESTful設計,確保API端點明確,並使用適當的HTTP方法(如POST用於創建,PUT用於更新)。 設計清晰的請求和響應模型,以確保客戶端能夠理解預期格式。 2.數據驗證 在伺服器端進行嚴格的數據驗證,確保接收到的數據符合預期格 ...