幹了10多年的php,還不會安裝,是不是丟人

都說php簡單,那是別人幫你配置好。真正在linux部署php並且高效運轉起來,有些多年php開發經驗的人也是搞不定的。因為涉及的知識點並不少。(windows開發環境不在本文談論中哈[微笑])寫下此文,幫助自己總結,希望也能幫助剛入門的運維小白。

以此來列出背景知識 本文基於Centos 7作業系統(Fedora, Redhat及類似系統)

一、背景知識

yum

rpm

wget

ln

vim

systemctl

.bash_profile

Red Hat Enterprise Linux 7 縮寫 rhel_7 ([捂臉])

Extra Packages for Enterprise Linux (or EPEL)

Linux的

yum

yum( Yellow dog Updater, Modified) 大黃狗,哈哈。是一個在 Fedora 和 RedHat 以及 SUSE 中的 Shell 前端軟體包管理器。基於 RPM 包管理,能夠從指定的伺服器自動下載 RPM 包然後安裝,可以自動處理依賴性關係,並且一次安裝所有依賴的軟體包,無須繁瑣地一次次下載、安裝。yum 提供了查詢、安裝、刪除某一個、一組甚至全部軟體包的命令,而且命令簡潔而又好記。

如CentOS系統內建的yum源中,沒有想要的安裝包。可額外新增yum源。 比較常用yum源,epel 和 remi 。

新增yum源,都會在/etc/yum。repos。d/資料夾中新增有相應的

。repo

檔案

1、安裝 EPEL 源。 yum install epel-release epel-release這一軟體包被包括在 CentOS 的 Extras 倉庫中,安裝後EPEL源已預設啟用epel倉庫。

哈哈,我也是搬過來的

fedoraproject。org/wiki/EPEL/zh-cn

什麼是企業版 Linux 附加軟體包(EPEL)

企業版 Linux 附加軟體包(以下簡稱 EPEL)是一個 Fedora 特別興趣小組,用以建立、維護以及管理針對企業版 Linux 的一個高質量附加軟體包集,面向的物件包括但不限於 紅帽企業版 Linux (RHEL)、 CentOS、Scientific Linux (SL)、Oracle Linux (OL) 。

EPEL 的軟體包通常不會與企業版 Linux 官方源中的軟體包發生衝突,或者互相替換檔案。EPEL 專案與 Fedora 基本一致,包含完整的構建系統、升級管理器、映象管理器等等。

我可以信賴這些軟體包嗎?

EPEL 專案致力於提供優質和穩定的軟體包服務。然而,EPEL 是由志願者所維護的,並且不提供任何商業支援。這種專案的實質就是,軟體包會隨著單個版本的程序加入和退出 EPEL 倉庫。此外,有可能偶爾一些不相容的升級釋出後需要管理員的操作。根據政策將會提前通知給予管理員足夠的時間去測試和提供建議。

安裝remi 源

CentOS 7 :wget https://rpms。remirepo。net/enterprise/remi-release-7。rpmrpm -Uvh remi-release-7。rpm

安裝remi 源 以後,已預設啟用 remi-safe 倉庫

也可自行開啟remi倉庫。

vim /etc/yum。repos。d/remi。repo

將其中 [remi] 下的enabled=0改為enabled=1,儲存退出。

都說 :

remi源有很多版本的PHP 。哈哈

blog。remirepo。net/post/2017/02/23/Additional-PHP-packages-for-RHSCL

什麼是 SCLO?

什麼是 SCLO RH?

字首“rh-”用於在 Red Hat Software Collections 產品中提供的 Red Hat 集合;如果是由社群建立的集合就是 “sclo-”,。

我看有的把

Software Collections 縮寫成了 SCL有的是 sclo。請大牛指點

yum 語法

yum repolist all//顯示所有倉庫yum repolist enabled//顯示可用的倉庫yum install package_name // 下載並安裝一個rpm包yum update package_name 更新一個rpm包yum remove package_name 刪除一個rpm包yum search package_name 在rpm倉庫中搜尋軟體包yum info package_name 檢視安裝包的資訊yum localinstall package_name。rpm 將安裝一個rpm包,使用你自己的軟體倉庫為你解決所有依賴關係yum update package_name。rpm 更新當前系統中所有安裝的rpm包yum list 列出當前系統中安裝的所有包yum clean packages 清理rpm快取刪除下載的包yum clean headers 刪除所有標頭檔案yum clean all 刪除所有快取的包和標頭檔案

~]# yum check-update載入的外掛:product-id, search-disabled-repos, subscription-manager dracut。x86_64 033-360。el7_2 rhel-7-server-rpms dracut-config-rescue。x86_64 033-360。el7_2 rhel-7-server-rpms kernel。x86_64 3。10。0-327。el7 rhel-7-server-rpms rpm。x86_64 4。11。3-17。el7 rhel-7-server-rpms rpm-libs。x86_64 4。11。3- 17。el7 rhel-7-server-rpms rpm-python。x86_64 4。11。3-17。el7 rhel-7-server-rpms yum。noarch 3。4。3-132。el7 rhel-7-server-rpms

上面輸出中的包被列為可用更新。列表中的第一個包是

dracut

。示例輸出中的每一行都由幾行組成,如果是

dracut

dracut

— 包的名稱,

x86_64

— 包所針對的 CPU 架構,

033

— 要安裝的更新包的版本,

360。el7

— 更新包的釋出,

_2

— 構建版本,作為 z-stream 更新的一部分新增,

rhel-7-server-rpms

— 更新包所在的儲存庫。

輸出還顯示我們可以更新核心(

核心

包)、yum 和 RPM 本身(

yum

rpm

包)以及它們的依賴項(例如

rpm-libs

rpm-python

包),所有這些都使用該

yum

命令。

記住yum安裝完,需要用rpm查詢相關資訊

rpm -ql php72w-fpm

記住yum安裝完,需要用rpm查詢相關資訊

rpm -ql php72w-fpm

記住yum安裝完,需要用rpm查詢相關資訊

rpm -ql php72w-fpm

[root@z yum。repos。d]# rpm -ql php72w-fpm/etc/logrotate。d/php-fpm/etc/php-fpm。conf/etc/php-fpm。d/etc/php-fpm。d/www。conf/etc/sysconfig/php-fpm/usr/lib/systemd/system/php-fpm。service/usr/lib/tmpfiles。d/php-fpm。conf/usr/sbin/php-fpm/usr/share/doc/php72w-fpm-7。2。34/usr/share/doc/php72w-fpm-7。2。34/fpm_LICENSE/usr/share/doc/php72w-fpm-7。2。34/php-fpm。conf。default/usr/share/fpm/usr/share/fpm/status。html/usr/share/man/man8/php-fpm。8。gz/var/log/php-fpm/var/run/php-fpm

Linux的rpm

linux軟體分為 二進位制包(Binary)以及原始碼包(Source)兩種。二進位制包可以直接安裝在計算機中,而原始碼包將會由RPM自動編譯、安裝。原始碼包經常以src。rpm作為字尾名。Debian, Ubuntu參考 DEB 和APT軟體工具 常用命令組合:

rpm 語法

-ivh:安裝顯示安裝進度——install——verbose——hash-Uvh:升級軟體包——Update;-qpl:列出RPM軟體包內的檔案資訊[Query Package list];-qpi:列出RPM軟體包的描述資訊[Query Package install package(s)];-qf:查詢指定檔案屬於哪個RPM軟體包[Query File];-Va:校驗所有的RPM軟體包,查詢丟失的檔案[View Lost];-e:刪除包

wget 是一個從網路上自動下載檔案的自由工具,支援透過 HTTP、HTTPS、FTP 三個最常見的 TCP/IP協議 下載,並且可以使用 HTTP 代理。“wget” 這個名稱來源於 “World Wide Web” 與 “get” 的結合。因引數眾多,這裡不再列出,自行搜尋。類似的有curl

wget語法

wget -o download。log URL比如:wget -o aaa。tar httpxxxxx。tar

Linux ps (英文全拼:process status)命令用於顯示當前程序的狀態,類似於 windows 的任務管理器。

ps語法

ps [options] [——help]ps 的引數非常多, 在此僅列出幾個常用的引數並大略介紹含義-A 列出所有的程序-w 顯示加寬可以顯示較多的資訊-au 顯示較詳細的資訊-aux 顯示所有包含其他使用者的行程au(x) 輸出格式 :ps -ef | grep 程序關鍵字ps -ef | grep php

Linux netstat 命令用於顯示網路狀態。

利用 netstat 指令可讓你得知整個 Linux 系統的網路情況。

因引數眾多,這裡不再列出,自行搜尋最常用的如下方顯示

netstat -tunlp | grep 埠號netstat -tunlp | grep 9000

Linux的service

Linux 服務管理兩種方式service和systemctl

systemd是Linux系統最新的初始化系統(init),作用是提高系統的啟動速度,儘可能啟動較少的程序,儘可能更多程序併發啟動。systemd對應的程序管理命令是systemctl。

service請自行搜尋

systemctl語法

systemctl start php-fpm systemctl status php-fpm systemctl stop php-fpm systemctl restart php-fpm systemctl enable php-fpm systemctl didable php-fpm

linux家目錄的 bash_profile

如果你想對所有的使用bash的使用者修改某個配置並在以後開啟的bash都生效的話可以修改這個檔案,修改這個檔案不用重啟,重新開啟一個bash即可生效。

~/。bash_profile:每個使用者都可使用該檔案輸入專用於自己使用的shell資訊,當用戶登入時,該檔案僅僅執行一次!預設情況下,他設定一些環境變數,執行使用者的。bashrc檔案。

Linux grep

命令用於查詢檔案裡符合條件的字串。

grep 指令用於查詢內容包含指定的範本樣式的檔案,如果發現某檔案的內容符合所指定的範本樣式,預設 grep 指令會把含有範本樣式的那一列顯示出來。若不指定任何檔名稱,或是所給予的檔名稱為

-

,則 grep 指令會從標準輸入裝置讀取資料。

ps -ef | grep php或者grep -r ‘9000’ php-fpm。conf

Linux ln軟連線

Linux ln(英文全拼:link files) ,它的功能是為某一個檔案在另外一個位置建立一個同步的連結。

當我們需要在不同的目錄,用到相同的檔案時,我們不需要在每一個需要的目錄下都放一個必須相同的檔案,我們只要在某個固定的目錄,放上該檔案,然後在 其它的目錄下用ln命令連結(link)它就可以,不必重複地佔用磁碟空間。類似於windows的快捷方式

ln [引數][原始檔或目錄][目標檔案或目錄]

軟連線的刪除,直接刪除軟連線的目標檔案就可以了。

壓縮包管理

Linux的tar

最常用的打包命令是 tar,使用 tar 程式打出來的包我們常稱為 tar 包,tar 包檔案的命令通常都是以 。tar 結尾的。生成 tar 包後,就可以用其它的程式來進行壓縮了。其他的還有

常用的壓縮與解壓縮命令有:tar、gzip、gunzip、bzip2、bunzip2、compress 、uncompress、 zip、 unzip、rar、unrar 等。但一般tar和gz一起使用,打包和壓縮一起搞。linux就是好,約定大於配置,比如。tar。gz就知道是用tar打包了並且也壓縮了。

打包tar -cf all。tar *。jpg打包並且壓縮tar -cvzf all。tar。gz *。jpg解壓tar -xzf all。tar。gztar -xzf all。tgz

終於可以開始安裝環境了

原始碼安裝

因為php的安裝和執行依賴很大底層庫,那第一步一定是先把需要的底層庫加上。不然就會遇到各種缺少依賴,又涉及到了yum源的知識點了。多呀。

安裝前,先檢查一遍是否安裝和啟動了。不用上來就搞。[捂臉]

[root@xxxxxx~]# ps axf | grep php-fpm 4460 pts/0 S+ 0:00 \_ grep ——color=auto php-fpm 4452 ? Ss 0:00 php-fpm: master process (/usr/local/etc/php-fpm。conf) 4453 ? S 0:00 \_ php-fpm: pool www 4454 ? S 0:00 \_ php-fpm: pool www[root@xxxxxx ~]# netstat -ntlup | grep ‘9000’tcp 0 0 127。0。0。1:9000 0。0。0。0:* LISTEN 4452/php-fpm: maste [root@xxxxx ~]# php -vPHP 7。3。24 (cli) (built: Dec 16 2021 14:37:02) ( NTS )Copyright (c) 1997-2018 The PHP GroupZend Engine v3。3。24, Copyright (c) 1998-2018 Zend Technologies[root@xxxxx ~]# whereis php php: /usr/lib64/php /etc/php。d /usr/local/lib/php。ini /usr/local/lib/php /usr/local/php /usr/share/php /usr/local/php7。3。24new/bin/php /usr/share/man/man1/php。1。gz

如果版本過舊,先刪除掉舊的。(

當然如果把環境變數配置為新的版本也可以不刪除

1、停止php-fpm(當然也要停止nginx)

systemctl stop php-fpm

2、或者直接幹掉程序,(假如程序號為1000)

pkill php-fpm 1000

kill -9 1000

kill -INT `cat /xxxx/php-fpm.pid`

二、原始碼安裝

原始碼安裝的套路

下載解壓進入原始碼目錄配置makemake install

1、安裝依賴

我都是管他用不用,先給給來一刷子。哈哈

yum install mysql-devel -yyum install libxml2 -yyum install libxml2-devel -yyum install curl curl-devel -yyum install -y libicu-develyum install gcc-c++ -yyum -y install unixODBC-*yum -y install postgresql-develyum install libtidy-devel libtidy -yyum install nc -yyum install -y libjpeg-turbo-devel libpng-devel freetype-devel libtiff-devel libXpm-devel libwebp-devel fontconfig-develyum install autoconf -y

2、目錄規劃

原始碼包目錄:/usr/local/src/xxxx。tar。gz

安裝目錄:/usr/local/xxx

/usr/local/php/usr/local/nginx

3、下載原始碼包

當然是從官網下載了。別說官網不知道[捂臉]。其實我經常進的是cn2。php。net

wget https://www。php。net/distributions/php-7。2。13。tar。gz

4、解壓

tar -zxvf php-7。2。13。tar。gz

解壓完就會生成一個php-7。2。13的目錄,對吧

5、進入目錄呀

cd /usr/local/src/php-7。2。13

6、原始碼安裝的魅力來了。/configure

搞起來

/configure  ——prefix=/usr/local/php ——with-config-file-path=/usr/local/php/etc ——with-config-file-scan-dir=/usr/local/php/etc/php。d ——with-fpm-user=www ——with-fpm-group=www ——enable-fpm ——enable-mysqlnd ——enable-opcache ——enable-pcntl ——enable-mbstring ——enable-soap ——enable-zip ——enable-calendar ——enable-bcmath ——enable-exif ——enable-intl ——with-mysqli ——with-pdo-mysql ——with-pdo-odbc=unixODBC,/usr/ ——with-pdo-pgsql ——with-zlib ——with-curl ——with-freetype-dir ——with-gettext ——with-mhash ——with-openssl ——with-tidy ——enable-wddx ——with-xmlrpc ——with-jpeg-dir

我在來個換行版本的。

/configure  ——prefix=/usr/local/php ——with-config-file-path=/usr/local/php/etc ——with-config-file-scan-dir=/usr/local/php/etc/php。d ——with-fpm-user=www ——with-fpm-group=www ——enable-fpm 用fpm管理程序——enable-mysqlnd ——enable-opcache ——enable-pcntl ——enable-mbstring ——enable-soap ——enable-zip ——enable-calendar ——enable-bcmath ——enable-exif ——enable-intl ——with-mysqli ——with-pdo-mysql ——with-pdo-odbc=unixODBC,/usr/ ——with-pdo-pgsql ——with-zlib ——with-curl ——with-freetype-dir ——with-gettext ——with-mhash ——with-openssl ——with-tidy ——enable-wddx ——with-xmlrpc ——with-jpeg-dir

。/configure -h

或者搜尋某一個

。/configure -h | grep ‘pcntl’

目錄隨意配置,就是這麼牛。rpm就不行了

都放到一個目錄的好處是,不使用了,直接幹掉/usr/local/php 目錄就可以了。

7、考驗cpu的時候到了。

編譯make balabala一大堆#### /bin/sh /usr/local/src/php/libtool ——silent ——preserve-dup-deps ——mode=compile cc -DZEND_ENABLE_STATIC_TSRMLS_CACHE=1 -Iext/opcache/ -I/usr/local/src/php/ext/opcache/ -DPHP_ATOM_INC -I/usr/local/src/php/include -I/usr/local/src/php/main -I/usr/local/src/php -I/usr/local/src/php/ext/date/lib -I/usr/include/libxml2 -I/usr/local/src/php/ext/mbstring/oniguruma -I/usr/local/src/php/ext/mbstring/libmbfl -I/usr/local/src/php/ext/mbstring/libmbfl/mbfl -I/usr/local/src/php/ext/sqlite3/libsqlite -I/usr/local/src/php/ext/zip/lib -I/usr/local/src/php/TSRM -I/usr/local/src/php/Zend -I/usr/include -g -O2 -fvisibility=hidden -DZEND_SIGNALS -c /usr/local/src/php/ext/opcache/Optimizer/zend_cfg。c -o ext/opcache/Optimizer/zend_cfg。lo

8、安裝

make install

完事都把目錄列出了Installing shared extensions: /usr/local/php/lib/php/extensions/no-debug-non-zts-20180731/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/……。省率了 program: phpize program: php-configInstalling man pages: /usr/local/php/php/man/man1/ page: phpize。1 page: php-config。1Installing PEAR environment: /usr/local/php/lib/php/[PEAR] Archive_Tar - already installed: 1。4。9[PEAR] Console_Getopt - already installed: 1。4。3[PEAR] Structures_Graph- already installed: 1。1。1[PEAR] XML_Util - already installed: 1。4。5[PEAR] PEAR - already installed: 1。10。12Wrote PEAR system config file at: /usr/local/php/etc/pear。confYou may want to add: /usr/local/php/lib/php to your php。ini include_path/usr/local/src/php-7。3。24/build/shtool install -c ext/phar/phar。phar /usr/local/php/binln -s -f phar。phar /usr/local/php/bin/pharInstalling PDO headers: /usr/local/php/include/php/ext/pdo/

9、跑起來

# /usr/local/php/sbin/php-fpm 當然還有很多引數# /usr/local/php/sbin/php-fpm -h主要用到 -c 指定php。ini檔案

三、環境變數的加入

一般系統中都已經內建了Php。透過 whereis php命令可以查詢到。

[root@zjt-ecs-1 php]# whereis phpphp: /usr/bin/php /usr/lib64/php /etc/php。d /usr/local/lib/php。ini /usr/local/lib/php /usr/local/php /usr/share/php /usr/local/php7。3。24new/bin/php /usr/share/man/man1/php。1。gz

但版本比較舊或者不是你想要的。

透過下面的方式解決

1、直接將自己編譯好的二進位制php命令,覆蓋到/usr/bin/php。

比如

cp /usr/local/php/bin/php /usr/bin/php

2、建立軟連線

[root@zjt-ecs-1 php]# ln -s /usr/local/php/bin/php /usr/bin/php[root@zjt-ecs-1 php]# ll /usr/bin/phplrwxrwxrwx 1 root root 22 12月 17 22:19 /usr/bin/php -> /usr/local/php/bin/php

3、環境變數

在家目錄。bash_profile檔案新增下面的一行PATH=$PATH:/usr/local/php/bin/

但如果 /usr/bin/裡面和bash_profile都配置了。從左向右搜尋

[root@zjt-ecs-1 ~]# whereis phpphp: /usr/bin/php /usr/lib64/php /etc/php。d /usr/local/lib/php。ini /usr/local/lib/php /usr/local/php /usr/share/php /usr/local/php7。3。24new/bin/php /usr/share/man/man1/php。1。gz

所以如果想直接用自己定義的目錄的Php,需要去掉/usr/bin/php二進位制檔案

四、擴充套件安裝

不好,突然開發中遇到缺少擴充套件怎麼辦。就需要涉及到擴充套件的安裝。分兩種情況

php -m 可以檢視安裝的模組

1、本身原始碼包裡面帶了擴充套件包

[root@zjt-ecs-1 ext]# lsbcmath enchant gmp mbstring pdo phar skeleton sysvsem xslbz2 exif hash mysqli pdo_dblib posix snmp sysvshm zend_testcalendar ext_skel iconv mysqlnd pdo_firebird pspell soap tidy zipcom_dotnet ext_skel_win32。php imap oci8 pdo_mysql readline sockets tokenizer zlibctype fileinfo interbase odbc pdo_oci recode sodium wddxcurl filter intl opcache pdo_odbc reflection spl xmldate ftp json openssl pdo_pgsql session sqlite3 xmlreaderdba gd ldap pcntl pdo_sqlite shmop standard xmlrpcdom gettext libxml pcre pgsql simplexml sysvmsg xmlwriter

那步驟只是比其他軟體的原始碼安裝多一步而已,

假如沒有iconv

cd /usr/local/src/php/ext/iconv/usr/local/php/bin/phpize。/configure ——with-php-config=/usr/local/php/bin/php-configmakemake install

2、需要從網路上下載擴充套件

https://pecl。php。net/packages。php

下面是Php官網的原話

phpize 命令是用來準備 PHP 擴充套件庫的編譯環境的。下面例子中,擴充套件庫的源程式位於

extname

目錄中:

$ cd extname$ phpize$ 。/configure$ make# make install……Installing shared extensions: /usr/local/php/lib/php/extensions/no-debug-non-zts-20170718/Installing header files: /usr/local/php/include/php/

成功的安裝將建立

extname。so

並放置於 PHP 的擴充套件庫目錄中。需要調整

php。ini

,加入 extension=extname。so 這一行之後才能使用此擴充套件庫。

如果系統中沒有 phpize 命令並且使用了預編譯的包(例如 RPM),那要安裝 PHP 包相應的開發版本,此版本通常包含了 phpize 命令以及相應的用於編譯 PHP 及其擴充套件庫的標頭檔案。

3、用 PEAR 編譯共享 PECL 擴充套件庫

官網的,自己沒搞過

PECL 使建立共享 PHP 擴充套件庫更容易。

$ pecl install extname

這將下載

extname

的原始碼,編譯之,並將

extname。so

安裝到 extension_dir 中。然後

extname。so

就可以透過

php。ini

載入了。

五、yum安裝Php

因為生產環境中我都沒用yum安裝過,下面的步驟僅供參考哈。

第0步,也是先刪除舊版本的

yum list installed | grep ‘php’yum remove php-xxxxx

1、首先安裝 EPEL 源:

yum install epel-release

安裝 REMI 源:

yum install http://rpms。remirepo。net/enterprise/remi-release-7。rpm

2、安裝 Yum 源管理工具:

yum install yum-utils

3、

安裝 PHP7。3

yum install -y php72w-cli。x86_64 php72w-common。x86_64 php72w-dba。x86_64 php72w-devel。x86_64 php72w-embedded。x86_64 php72w-enchant。x86_64 php72w-fpm。x86_64

4、查詢安裝的配置資訊命令用的是rpm

rpm -ql php72-php-fpm[root@z yum。repos。d]# rpm -ql php72w-fpm/etc/logrotate。d/php-fpm/etc/php-fpm。conf/etc/php-fpm。d/etc/php-fpm。d/www。conf/etc/sysconfig/php-fpm/usr/lib/systemd/system/php-fpm。service/usr/lib/tmpfiles。d/php-fpm。conf/usr/sbin/php-fpm/usr/share/doc/php72w-fpm-7。2。34/usr/share/doc/php72w-fpm-7。2。34/fpm_LICENSE/usr/share/doc/php72w-fpm-7。2。34/php-fpm。conf。default/usr/share/fpm/usr/share/fpm/status。html/usr/share/man/man8/php-fpm。8。gz/var/log/php-fpm/var/run/php-fpm

5、安裝擴充套件

yum install php72w-pecl-redis。x86_64

6、解除安裝

yum remove -y php72w-cli。x86_64 php72w-common。x86_64 php72w-dba。x86_64 php72w-devel。x86_64 php72w-embedded。x86_64 php72w-enchant。x86_64 php72w-fpm。x86_64

六、服務管理

把php新增到systemctl 統一控制

建立檔案:/usr/lib/systemd/system/php-fpm。service

[Unit]Description=The PHP FastCGI Process ManagerAfter=network。target[Service]Type=simplePIDFile=/usr/local/php/var/run/php-fpm。pidExecStart=/usr/local/php/sbin/php-fpm ——nodaemonize ——fpm-config /usr/local/php/etc/php-fpm。confExecReload=/bin/kill -USR2 $MAINPIDPrivateTmp=true[Install]WantedBy=multi-user。target

可以使用以下方式去管理了。

systemctl start php-fpm systemctl status php-fpm systemctl stop php-fpm systemctl restart php-fpm systemctl enable php-fpm 將服務設定為每次開機啟動systemctl didable php-fpm

service的也跳轉了

[root@xxxx ~]# service php-fpm statusRedirecting to /bin/systemctl status php-fpm。service

七、php配置的設定

1、php-fpm的配置

關於www。conf和php-fpm的配置就屬於配置問題,最重要的是修改靜態和子程序數量

[root@xxxx ~]# cat /usr/local/php/etc/php-fpm。conf | grep -v ‘;’[global]pid = /var/run/php-fpm。piderror_log = log/php-fpm。loginclude=/usr/local/php/etc/php-fpm。d/*。conf[root@xxxx ~]# cat /usr/local/php/etc/php-fpm。d/www。conf | grep -v ‘;’[www]user = wwwgroup = wwwlisten = 127。0。0。1:9000pm = staticpm。max_children = 20pm。start_servers = 2pm。min_spare_servers = 1pm。max_spare_servers = 3

排錯的時候,一定確保程序啟動了。

1。1、檢查程序

ps axf | grep ‘php-fpm’

[root@xxxxx ~]# ps axf | grep php-fpm 4460 pts/0 S+ 0:00 \_ grep ——color=auto php-fpm 4452 ? Ss 0:00 php-fpm: master process (/usr/local/etc/php-fpm。conf) 4453 ? S 0:00 \_ php-fpm: pool www 4454 ? S 0:00 \_ php-fpm: pool www

2。1、檢查埠

[root@xxxx~]# netstat -ntlup | grep ‘9000’tcp 0 0 127。0。0。1:9000 0。0。0。0:* LISTEN 4452/php-fpm: maste

2、php。ini的配置

upload_max_filesize = 10M 記得修改哈。

allow_url_fopen = Onallow_url_include = Off[Assertion]auto_append_file =auto_globals_jit = Onauto_prepend_file =[bcmath]bcmath。scale = 0[browscap][CLI Server]cli_server。color = On[COM][curl][Date][dba]default_charset = “UTF-8”default_mimetype = “text/html”default_socket_timeout = 100disable_classes =disable_functions =display_errors = Offdisplay_startup_errors = Offdoc_root =enable_dl = Offengine = Onerror_log = /www/logs/php/php_errors。logerror_reporting = E_ALL[iconv]ignore_repeated_errors = Offignore_repeated_source = Offimplicit_flush = Off[Interbase][intl][mbstring]memory_limit = 128M[MySQLi]mysqli。allow_persistent = Onmysqli。cache_size = 2000mysqli。default_host =mysqli。default_port = 3306mysqli。default_pw =mysqli。default_socket =mysqli。default_user =mysqli。max_links = -1mysqli。max_persistent = -1mysqli。reconnect = Off[mysqlnd]mysqlnd。collect_memory_statistics = Onmysqlnd。collect_statistics = On[OCI8]省率一萬字……。[Session]session。auto_start = 0session。cache_expire = 180session。cache_limiter = nocachesession。cookie_domain =省率一萬字……。session。sid_length = 26session。trans_sid_tags = “a=href,area=href,frame=src,form=”session。use_cookies = 1session。use_only_cookies = 1session。use_strict_mode = 0session。use_trans_sid = 0short_open_tag = OffSMTP = localhostsmtp_port = 25

7、nginx的配置設定

現在都是單入口應用,基本都是php接管請求。nginx的配置,記得新增上。

新增到http的配置段落裡面

location / { try_files $uri $uri/ /index。php?$query_string; proxy_http_version 1。1; proxy_set_header Upgrade $http_upgrade; proxy_set_header Connection “upgrade”; } location ~* \。php$ { fastcgi_index index。php; fastcgi_pass 127。0。0。1:9000; include fastcgi_params; fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; fastcgi_param SCRIPT_NAME $fastcgi_script_name; }

終於到頭了。碼字不易。

感謝 點贊,收藏,轉發。關注我,瞭解更多軟體資訊~!