Centos 下安裝 PHP (新)

2022-03-14 02:10:23 字數 4944 閱讀 6283

今天重新實踐了下 centos 7.6 下安裝 php7 並完成配置,總結了一條可以照其實現的套路。

# yum install libxml2 libxml2-devel openssl openssl-devel bzip2 bzip2-devel libcurl libcurl-devel libjpeg libjpeg-devel libpng libpng-devel freetype freetype-devel gmp gmp-devel libmcrypt libmcrypt-devel readline readline-devel libxslt libxslt-devel
# cd /home/downloads

# wget

因與安裝實際目錄無關,解壓到當前目錄即可,解壓後接入目錄等待執行下面操作

# tar -xvf php-7.4.0.tar.gz

# cd php-7.4.0

對安裝進行預配置,設定一些編譯引數。最簡單的配置是不帶任何引數

# ./configure
但通常因為可能要自定義 php 安裝目錄、配置檔案目錄等,可以使用個人習慣的基礎配置語句:設定php安裝目錄為 /usr/local/php,配置檔案目錄為 /usr/local/php/etc,並允許使用 php-fpm 管理 php 請求

# ./configure --prefix=/usr/local/php --with-config-file-path=/usr/local/php/etc --enable-fpm
檢查輸入無誤後即可執行,通常很快完成

# make
如 make 無誤,make install 很快。

# make install

installing shared extensions: /usr/local/php/lib/php/extensions/no-debug-non-zts-20190902/

installing php cli binary: /usr/local/php/bin/

installing php cli man page: /usr/local/php/php/man/man1/

installing php fpm binary: /usr/local/php/sbin/

installing php fpm defconfig: /usr/local/php/etc/

installing php fpm man page: /usr/local/php/php/man/man8/

installing php fpm status page: /usr/local/php/php/php/fpm/

installing phpdbg binary: /usr/local/php/bin/

installing phpdbg man page: /usr/local/php/php/man/man1/

installing php cgi binary: /usr/local/php/bin/

installing php cgi man page: /usr/local/php/php/man/man1/

installing build environment: /usr/local/php/lib/php/build/

installing header files: /usr/local/php/include/php/

installing helper programs: /usr/local/php/bin/

installing man pages: /usr/local/php/php/man/man1/

此時 php 安裝完畢,接下來就要進行相關配置

剛才在 配置 一節中,設定 php 目錄在 /usr/local/php,因此該目錄下就有了 bin 目錄,將 /usr/local/php/bin 新增到全域性變數 $path 中

編輯檔案

# vi /etc/profile

將下面兩句新增到檔案尾並儲存

path=$path:/usr/local/php/bin

export path

重新整理生效

# source /etc/profile

檢視是否生效

# php -v

參考顯示結果

# php 7.4.0 (cli) (built: dec 17 2019 14:44:39) ( nts )

根據配置時自定義的路徑,將有關 php 執行的配置檔案、啟動方式等進行設定,逐一執行下列命令

進入php原始碼解壓縮目錄

# cd /home/downloads/php-7.4.0

將原始碼中準備好的配置檔案複製到指定目錄並改名作為 php 執行時的配置檔案,在 ./configure 時指定了配置檔案目錄是 --with-config-file-path=/usr/local/php/etc

# cp php.ini-production /usr/local/php/etc/php.ini

php-fpm.conf 是 php-fpm 執行時配置檔案,裡邊記錄了 include 路徑,可以將多個配置檔案放到 include 路徑下

# cp /usr/local/php/etc/php-fpm.conf.default /usr/local/php/etc/php-fpm.conf

www.conf 是預設的有關 www 應用的配置

# cp /usr/local/php/etc/php-fpm.d/www.conf.default /usr/local/php/etc/php-fpm.d/www.conf

複製 php-fpm 程式到 /etc/init.d,啟動、重啟或停止 /etc/init.d/php-fpm 即可實現對 php 的控制

# cp sapi/fpm/init.d.php-fpm /etc/init.d/php-fpm

賦予 /etc/init.d/php-fpm 執行許可權

# chmod +x /etc/init.d/php-fpm

上述命令完成後,在不考慮與 nginx 的配合情況下,php 實際已經可以獨立工作了,可以啟動 php-fpm 並檢視相關資訊

# /etc/init.d/php-fpm start[/restart/stop]

輸出# starting php-fpm done

檢視 php-fpm 運**況

# ps -ef|grep php

輸出# root 24080 1 0 09:49 ? 00:00:00 php-fpm: master process (/usr/local/php/etc/php-fpm.conf)

# nobody 24081 24080 0 09:49 ? 00:00:00 php-fpm: pool www

# nobody 24082 24080 0 09:49 ? 00:00:00 php-fpm: pool www

# root 24096 23960 0 09:52 pts/0 00:00:00 grep --color=auto php

檢視 php 配置相關

# php -i |grep config

輸出# configure command => './configure' '--prefix=/usr/local/php' '--with-config-file-path=/usr/local/php/etc' '--enable-fpm'

# configuration file (php.ini) path => /usr/local/php/etc

# loaded configuration file => /usr/local/php/etc/php.ini

# configuration

上例中 master process 因為是使用 root 賬戶啟動並執行 php-fpm ,因此顯示 root 賬戶,nobody 是因為預設 www.conf 配置檔案中 user 和 group 預設值就是 nobody 使用者

假設現在有站點 a.com,路徑是 /home/wwwroot/a.com,為方便區別管理,在 /usr/local/php/etc/php-fpm.d 下新增關於 a.com 的配置檔案 a.com.conf並假設該檔案已建立完畢

通過複製 www.conf 建立 a.com.conf

# cp www.conf a.com.conf

編輯目標檔案

# vi a.com.conf

修改 user 和 group 的賬號,修改為與 nginx 一致

user = nginx

group = nginx

修改監聽埠號,即監聽 9001 埠,nginx要將a.com 的請求發到這個埠來(nginx中設定)

listen = 127.0.0.1:9001

修改 nginx 配置檔案,新增 server 站點,並在 location 中處理 a.com 的 php **

server 

}

注意上面 server 節中,有關 .php 的請求被**去了 127.0.0.1:9001,即 a.com.conf 的設定中,這樣兩邊就配合起來了。以此為例,增加新站點 b.com 時,可以再新建 b.com.conf,並設定 php 監聽埠號是 9002,nginx 配置中新增 server **到 127.0.0.1:9002,實現同一主機上多個站點的管理。

Centos 下安裝 Nginx(新)

今天重新實踐了下 centos 7.6 下安裝 nginx,總結了一條更直接並簡單的方式 從官方獲取寫入 nginx.repo 的方式 從官網檢視文件,獲取 nginx.repo 的文件內容,將其內容寫入到指定的檔案 nginx stable name nginx stable repo baseu...

CentOS 下,PHP安裝拓展

centos 下,php有多種方式來安裝拓展,主要有 包管理式的 yum 安裝 pecl 安裝,以及原始碼編譯安裝。包管理式的安裝解除安裝尤為方便,而原始碼編譯式的安裝則方便引數調優。一般搭建本機開發環境推薦包管理式的安裝,節約時間。而線上部署環境則推薦編譯安裝,方便調優。本文以 mongodb 擴...

Centos下安裝PHP擴充套件

root redis wget 解壓壓縮包 root redis tar xzf redis 4.0.0rc2.tgz 切換進解壓後的檔案目錄 root redis cd redis 4.0.0rc2 生成.configure 這個配置檔案 root redis redis 4.0.0rc2 usr...