CentOS7下源碼編譯安裝PHP7.4

操作系統(tǒng):CentOS7
安裝版本:PHP7.4

【官網(wǎng)】https://www.php.net/downloads

1)到PHP官網(wǎng)下載PHP7.4,并且解壓

cd /home/install/php
wget https://www.php.net/distributions/php-7.4.12.tar.gz
tar -zxvf php-7.4.12.tar.gz
1.png

2)切換到解壓目錄編譯配置

#更多可以在  ./configure --help 去查看
./configure --prefix=/usr/local/php \
 --with-config-file-path=/etc --enable-fpm  --enable-inline-optimization \
 --disable-debug --enable-mysqlnd --enable-static --disable-rpath --enable-shared --enable-soap  --with-xmlrpc \
 --with-openssl --with-mhash  --with-external-pcre --with-pcre-jit --with-zlib \
 --enable-bcmath --with-iconv --with-bz2 --enable-calendar --with-curl \
 --with-cdb --enable-dom --enable-exif --enable-fileinfo --enable-filter --with-pear \
 --enable-opcache --enable-ftp --with-gdbm --with-openssl-dir --with-jpeg --with-zlib-dir \
 --with-freetype --enable-gd --enable-gd-jis-conv --with-gettext --with-gmp --with-mhash --enable-json --with-sqlite3\
 --enable-mbstring --enable-mbregex --enable-pdo --with-mysqli=mysqlnd --with-pdo-mysql=mysqlnd \
 --with-pdo-sqlite --with-readline --enable-session --enable-shmop --enable-simplexml --enable-sockets --enable-sysvmsg \
 --enable-sysvsem --enable-sysvshm --with-xsl --with-zip --enable-mysqlnd-compression-support --enable-intl

編譯時可能會出現(xiàn)一些錯誤 configure error:(我編譯安裝時遇到的報錯如下拭嫁,有其他報錯請另外自己解決)

1. configure: error: Please reinstall the BZip2 distribution
    解決:yum install bzip2 bzip2-devel -y

2. configure: error: Package requirements (libcurl >= 7.15.5) were not met:No package 'libcurl' found
    解決:yum install libcurl libcurl-devel -y

3.configure: error: xslt-config not found. Please reinstall the libxslt >= 1.1.0 distribution
    解決:yum install libxslt libxslt-devel -y

4.configure: error: Package requirements (sqlite3 > 3.7.4) were not met:
    解決:yum install sqlite-devel -y

5.configure: error: GNU MP Library version 4.2 or greater required.
    解決:yum install gmp-devel -y   

6.configure: error: Package requirements (oniguruma) were not met: No package 'oniguruma' found
    解決:yum install oniguruma-devel -y

7.configure: error: Please reinstall readline - I cannot find readline.h
    解決:yum install readline-devel -y

8.configure: error: Package requirements (libpcre2-8 >= 10.30) were not met: No package 'libpcre2-8' found
    解決:http://www.reibang.com/p/89646111a1ce

9.configure: error: DBA: Could not find necessary header file(s).
     解決:yum install gdbm-devel -y
10.configure: error: Package requirements (libzip >= 0.11 libzip != 1.3.1 libzip != 1.7.0) were not met:No package 'libzip' found
    解決:http://www.reibang.com/p/6cbd25addc29
11.configure: error: Package requirements (libxml-2.0 >= 2.7.6) were not met: No package 'libxml-2.0' found
    解決:yum install libxml2-devel -y
12.configure: error: Package requirements (libpng) were not met: No package 'libpng' found
    解決:yum install libpng-devel -y
13.configure: error: Package requirements (libjpeg) were not met:No package 'libjpeg' found
    解決:yum install libjpeg-devel -y
14.configure: error: Package requirements (freetype2) were not met:No package 'freetype2' found
    解決:yum install freetype-devel -y
15.configure: error: Package requirements (icu-uc >= 50.1 icu-io icu-i18n) were not met:
    No package 'icu-uc' found
    No package 'icu-io' found
    No package 'icu-i18n' found
    解決:yum install libicu-devel -y

到這里沒有報錯過一會會出現(xiàn)下圖界面

2.png

然后再執(zhí)行編譯安裝命令(編譯安裝過程時間有些長沈矿,須耐心等待)

make
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/
  program: phpize
  program: php-config
Installing man pages:             /usr/local/php/php/man/man1/
  page: phpize.1
  page: php-config.1
Installing PEAR environment:      /usr/local/php/lib/php/
[PEAR] Archive_Tar    - installed: 1.4.9
[PEAR] Console_Getopt - installed: 1.4.3
[PEAR] Structures_Graph- installed: 1.1.1
[PEAR] XML_Util       - installed: 1.4.5
warning: pear/PEAR dependency package "pear/Archive_Tar" installed version 1.4.9 is not the recommended version 1.4.4
[PEAR] PEAR           - installed: 1.10.12
Wrote PEAR system config file at: /usr/local/php/etc/pear.conf
You may want to add: /usr/local/php/lib/php to your php.ini include_path
/home/install/php/php-7.4.12/build/shtool install -c ext/phar/phar.phar /usr/local/php/bin/phar.phar
ln -s -f phar.phar /usr/local/php/bin/phar
Installing PDO headers:           /usr/local/php/include/php/ext/pdo/

3)以上終于完成PHP的源碼編譯安裝了篙耗,下面就是配置PHP

# 配置PHP
[root@localhost php-7.4.12]# php -v
bash: php: 未找到命令...
[root@localhost php-7.4.12]# /usr/local/php/bin/php -v
PHP 7.4.12 (cli) (built: Nov 16 2020 19:43:47) ( NTS )
Copyright (c) The PHP Group
Zend Engine v3.4.0, Copyright (c) Zend Technologies

為PHP添加環(huán)境變量

export PATH=$PATH:/usr/local/php/bin

php -v 直接就能查看php版本隧魄,不需要再 /usr/local/php/bin/php -v 這么長了

[root@localhost php-7.4.12]# php -v
PHP 7.4.12 (cli) (built: Nov 16 2020 19:43:47) ( NTS )
Copyright (c) The PHP Group
Zend Engine v3.4.0, Copyright (c) Zend Technologies

4)配置PHP-fpm涉馁,(請注意我的目錄江咳,是一直在PHP7的解壓目錄下操作命令)
/home/install/php/php-7.4.12/ 是我下載PHP包解壓出來的目錄
/usr/local/php/ 是PHP編譯安裝的目錄

3.png

開始配置PHP-fpm袖订,復(fù)制一些配置文件氮帐,做好備份準(zhǔn)備

[root@localhost php-7.4.12] cp php.ini-development /etc/php.ini
[root@localhost php-7.4.12] cp sapi/fpm/init.d.php-fpm /etc/init.d/php-fpm
[root@localhost php-7.4.12] cd /usr/local/php/etc
[root@localhost etc] cp php-fpm.conf.default php-fpm.conf
[root@localhost etc] cp php-fpm.d/www.conf.default php-fpm.d/www.conf
[root@localhost etc]chmod +x /etc/init.d/php-fpm


# /etc/init.d/php-fpm文件的內(nèi)容,確保正確
prefix=/usr/local/php
exec_prefix=${prefix}

php_fpm_BIN=${exec_prefix}/sbin/php-fpm
php_fpm_CONF=${prefix}/etc/php-fpm.conf
php_fpm_PID=${prefix}/var/run/php-fpm.pid

這時候就開始啟動php-fpm了

# service php-fpm {start|stop|force-quit|restart|reload|status|configtest}
service php-fpm start  #啟動命令
ps ax|grep php-fpm    # 查看是否啟動php-fpm
[root@localhost etc]  ps ax | grep php-fpm   # 或者  netstat -ant | grep 9000
 33891 ?        Ss     0:00 php-fpm: master process (/usr/local/php/etc/php-fpm.conf)
 33892 ?        S      0:00 php-fpm: pool www
 33893 ?        S      0:00 php-fpm: pool www
 34443 pts/0    S+     0:00 grep --color=auto php-fpm

終于完成了......

最后補(bǔ)個小tips

假如在編譯配置里加入這兩個配置而導(dǎo)致啟動失敗
--with-fpm-user=nginx
--with-fpm-group=nginx
如果啟動php-fpm失敗洛姑,則需要在安裝完之后的目錄 /usr/local/php/etc/php-fpm.d/www.conf(配置完后的文件)

找到user和group修改他們的值為 nobody 就可以啟動成功了

; Unix user/group of processes
; Note: The user is mandatory. If the group is not set, the default user's group
;       will be used.
user = nobody
group = nobody
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末上沐,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子楞艾,更是在濱河造成了極大的恐慌参咙,老刑警劉巖,帶你破解...
    沈念sama閱讀 221,888評論 6 515
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件硫眯,死亡現(xiàn)場離奇詭異蕴侧,居然都是意外死亡,警方通過查閱死者的電腦和手機(jī)两入,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 94,677評論 3 399
  • 文/潘曉璐 我一進(jìn)店門净宵,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人,你說我怎么就攤上這事择葡〗粑洌” “怎么了?”我有些...
    開封第一講書人閱讀 168,386評論 0 360
  • 文/不壞的土叔 我叫張陵敏储,是天一觀的道長阻星。 經(jīng)常有香客問我,道長已添,這世上最難降的妖魔是什么妥箕? 我笑而不...
    開封第一講書人閱讀 59,726評論 1 297
  • 正文 為了忘掉前任,我火速辦了婚禮更舞,結(jié)果婚禮上畦幢,老公的妹妹穿的比我還像新娘。我一直安慰自己缆蝉,他們只是感情好呛讲,可當(dāng)我...
    茶點故事閱讀 68,729評論 6 397
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著返奉,像睡著了一般。 火紅的嫁衣襯著肌膚如雪吗氏。 梳的紋絲不亂的頭發(fā)上芽偏,一...
    開封第一講書人閱讀 52,337評論 1 310
  • 那天,我揣著相機(jī)與錄音弦讽,去河邊找鬼污尉。 笑死,一個胖子當(dāng)著我的面吹牛往产,可吹牛的內(nèi)容都是我干的被碗。 我是一名探鬼主播,決...
    沈念sama閱讀 40,902評論 3 421
  • 文/蒼蘭香墨 我猛地睜開眼仿村,長吁一口氣:“原來是場噩夢啊……” “哼锐朴!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起蔼囊,我...
    開封第一講書人閱讀 39,807評論 0 276
  • 序言:老撾萬榮一對情侶失蹤焚志,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后畏鼓,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體酱酬,經(jīng)...
    沈念sama閱讀 46,349評論 1 318
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 38,439評論 3 340
  • 正文 我和宋清朗相戀三年云矫,在試婚紗的時候發(fā)現(xiàn)自己被綠了膳沽。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 40,567評論 1 352
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖挑社,靈堂內(nèi)的尸體忽然破棺而出陨界,到底是詐尸還是另有隱情,我是刑警寧澤滔灶,帶...
    沈念sama閱讀 36,242評論 5 350
  • 正文 年R本政府宣布普碎,位于F島的核電站,受9級特大地震影響录平,放射性物質(zhì)發(fā)生泄漏麻车。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點故事閱讀 41,933評論 3 334
  • 文/蒙蒙 一斗这、第九天 我趴在偏房一處隱蔽的房頂上張望动猬。 院中可真熱鬧,春花似錦表箭、人聲如沸赁咙。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,420評論 0 24
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽彼水。三九已至,卻和暖如春极舔,著一層夾襖步出監(jiān)牢的瞬間凤覆,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 33,531評論 1 272
  • 我被黑心中介騙來泰國打工拆魏, 沒想到剛下飛機(jī)就差點兒被人妖公主榨干…… 1. 我叫王不留盯桦,地道東北人。 一個月前我還...
    沈念sama閱讀 48,995評論 3 377
  • 正文 我出身青樓渤刃,卻偏偏與公主長得像拥峦,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子卖子,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 45,585評論 2 359

推薦閱讀更多精彩內(nèi)容