目錄
建立php使用者和使用者群組
編譯安裝php 7所需的依賴
PHP 7編譯參數的配置
[root@localhost php-7.0.0]# make clean && make && make install
登入後複製
" >
[root@localhost php-7.0.0]# make clean && make && make install
登入後複製
[root@localhost php-7.0.0]# echo -e '\nexport PATH=/usr/local/php7/bin:/usr/local/php7/sbin:$PATH\n' >> /etc/profile && source /etc/profile
登入後複製
" >
[root@localhost php-7.0.0]# echo -e '\nexport PATH=/usr/local/php7/bin:/usr/local/php7/sbin:$PATH\n' >> /etc/profile && source /etc/profile
登入後複製
首頁 後端開發 php教程 詳細介紹CentOS7編譯安裝PHP7的範例程式碼(圖)

詳細介紹CentOS7編譯安裝PHP7的範例程式碼(圖)

Mar 28, 2017 pm 04:16 PM

建立php使用者和使用者群組

首先建立一個名為php且沒有登入權限的使用者和一個名為php的使用者群組

#######新建php用户和php组[root@localhost ~]
# groupadd -r php && useradd -r -g php -s /bin/false -d /usr/local/php7 -M php
登入後複製

編譯安裝php 7所需的依賴

編譯安裝 libmcrypt,  mhash,  mcrypt  二進位原始碼包
這裡之所以編譯安裝libmcrypt,原因是yum安裝的貌似會報錯

######编译安装libmcrypt-2.5.7
[root@localhost ~]# tar zxvf libmcrypt-2.5.7.tar.gz
[root@localhost ~]# cd libmcrypt-2.5.7
[root@localhost libmcrypt-2.5.7]# ./configure --prefix=/usr/local/related/libmcrypt
[root@localhost libmcrypt-2.5.7]# make && make install
[root@localhost libmcrypt-2.5.7]# cd ~
[root@localhost ~]# rm -rf libmcrypt-2.5.7*
登入後複製
######编译安装mhash-0.9.9.9
[root@localhost ~]# tar zxf mhash-0.9.9.9.tar.gz 
[root@localhost ~]# cd mhash-0.9.9.9
[root@localhost mhash-0.9.9.9]# ./configure --prefix=/usr/local/related/mhash
[root@localhost mhash-0.9.9.9]# make && make install
[root@localhost mhash-0.9.9.9]# cd ~
[root@localhost ~]# rm -rf mhash-0.9.9.9*
登入後複製
######编译安装mcrypt-2.6.8
[root@localhost ~]# tar zxf mcrypt-2.6.8.tar.gz && cd mcrypt-2.6.8
[root@localhost mcrypt-2.6.8]# export LD_LIBRARY_PATH=/usr/local/related/libmcrypt/lib:/usr/local/related/mhash/lib
[root@localhost mcrypt-2.6.8]# export LDFLAGS="-L/usr/local/related/mhash/lib -I/usr/local/related/mhash/include/"
[root@localhost mcrypt-2.6.8]# export CFLAGS="-I/usr/local/related/mhash/include/"
[root@localhost mcrypt-2.6.8]# ./configure --prefix=/usr/local/related/mcrypt --with-libmcrypt-prefix=/usr/local/related/libmcrypt
[root@localhost mcrypt-2.6.8]# make && make install
[root@localhost mcrypt-2.6.8]# cd ~
[root@localhost ~]# rm -rf mcrypt-2.6.8*
登入後複製
######其他依赖yum安装[root@localhost ~]
# yum -y install libxml2 libxml2-devel openssl openssl-devel curl-devel libjpeg-devel libpng-devel freetype-devel
登入後複製

PHP 7編譯參數的配置

注意,操作時一定要先把下面反斜線「\」後面新增的註解文字去掉! ! !

######生成配置文件
[root@localhost ~]# tar -zxf php-7.0.0.tar.gz && cd php-7.0.0
[root@localhost php-7.0.0]# ./buildconf --force
Forcing buildconf
Removing configure caches
buildconf: checking installation...
buildconf: autoconf version 2.69 (ok)
rebuilding configure
rebuilding main/php_config.h.in
######开始配置

[root@localhost php-7.0.0]# ./configure \
--prefix=/usr/local/php7 \                              [PHP7安装的根目录]
--exec-prefix=/usr/local/php7 \
--bindir=/usr/local/php7/bin \
--sbindir=/usr/local/php7/sbin \
--includedir=/usr/local/php7/include \
--libdir=/usr/local/php7/lib/php \
--mandir=/usr/local/php7/php/man \
--with-config-file-path=/usr/local/php7/etc \           [PHP7的配置目录]
--with-mysql-sock=/var/run/mysql/mysql.sock \           [PHP7的Unix socket通信文件]
--with-mcrypt=/usr/include \
--with-mhash \
--with-openssl \
--with-mysql=shared,mysqlnd \                           [PHP7依赖mysql库]              
--with-mysqli=shared,mysqlnd \                          [PHP7依赖mysql库]
--with-pdo-mysql=shared,mysqlnd \                       [PHP7依赖mysql库]
--with-gd \
--with-iconv \
--with-zlib \
--enable-zip \
--enable-inline-optimization \
--disable-debug \
--disable-rpath \
--enable-shared \
--enable-xml \
--enable-bcmath \
--enable-shmop \
--enable-sysvsem \
--enable-mbregex \
--enable-mbstring \
--enable-ftp \
--enable-gd-native-ttf \
--enable-pcntl \
--enable-sockets \
--with-xmlrpc \
--enable-soap \
--without-pear \
--with-gettext \
--enable-session \                                      [允许php会话session]
--with-curl \                                           [允许curl扩展]
--with-jpeg-dir \
--with-freetype-dir \
--enable-opcache \                                      [使用opcache缓存]
--enable-fpm \
--enable-fastcgi \
--with-fpm-user=nginx \                                 [php-fpm的用户]
--with-fpm-group=nginx \                                [php-fpm的用户组]
--without-gdbm \
--with-mcrypt=/usr/local/related/libmcrypt \            [指定libmcrypt位置]
--disable-fileinfo
登入後複製

執行上面的設定指令的執行結果如下:


php 7配置结果

#開始編譯安裝PHP 7

[root@localhost php-7.0.0]# make clean && make && make install
登入後複製

PHP 7編譯安裝成功


PHP 7编译安装成功

選做步驟:執行make test指令進行測試

這是一個非必要的操作步驟,執行make test指令

PHP 7 test

查看編譯成功後的PHP7安裝目錄

由於需要和MySQL進行通信,所以需要特別查看PHP7安裝後的lib擴展庫目錄(/usr/local/php7/lib/php/ extensions/no-debug-non-zts-20151012/)。需要確保至少存在mysqli.so、pdo_mysql.so這兩個動態庫文件,如下圖所示。

[root@localhost php-7.0.0]# ls -lrt /usr/local/php7/lib/php/extensions/no-debug-non-zts-20151012/
登入後複製

php 7 目录

開始設定PHP7的設定檔php.ini、php-fpm.conf、www.conf和php-fpm腳本

可以用編譯後的設定檔複製到PHP7的設定目錄(/usr/local/php7/etc/),建議使用github中的設定。這個配置來自《PHP7中php.ini、php-fpm和www.conf的配置》

#######方法一:直接使用编译后未经优化处理的配置
[root@localhost php-7.0.0]# cp php.ini-production /usr/local/php7/etc/php.ini
[root@localhost php-7.0.0]# cp /root/php-7.0.0/sapi/fpm/init.d.php-fpm /etc/init.d/php-fpm
[root@localhost php-7.0.0]# cp /usr/local/php7/etc/php-fpm.conf.default /usr/local/php7/etc/php-fpm.conf
[root@localhost php-7.0.0]# cp /usr/local/php7/etc/php-fpm.d/www.conf.default /usr/local/php7/etc/php-fpm.d/www.conf

#######方法二:使用https://github.com/lizer2014/mylnmp/tree/master/PHP文中的配置 
[root@localhost php-7.0.0]# mv ~/php.ini /usr/local/php7/etc/php.ini && mv ~/php-fpm /etc/init.d/php-fpm
[root@localhost php-7.0.0]# mv ~/php-fpm.conf /usr/local/php7/etc/php-fpm.conf && mv ~/www.conf /usr/local/php7/etc/php-fpm.d/www.conf
登入後複製

注意:需要修改php.ini配置中的參數,extension_dir改為自己的

extension_dir = "/usr/local/php7/lib/php/extensions/no-debug-non-zts-20151012/"
登入後複製

其中在/etc/init.d/php-fpm中在start函數的守護程序前必須有make /var/run/php-fpm指令,否則重啟伺服器會導致啟動失敗,nginx中設定也有這個問題

新增php的環境變數

[root@localhost php-7.0.0]# echo -e '\nexport PATH=/usr/local/php7/bin:/usr/local/php7/sbin:$PATH\n' >> /etc/profile && source /etc/profile
登入後複製

設定PHP日誌目錄和php-fpm行程檔(php-fpm.sock)目錄

其中,設定php -fpm進程目錄的使用者和使用者群組為nginx,並建立php會話session目錄

#######设置PHP日志目录和php-fpm的运行进程ID文件(php-fpm.sock)目录
[root@localhost php-7.0.0]
# groupadd -r nginx && useradd -r -g nginx -s /bin/false -M nginx
[root@localhost php-7.0.0]
# mkdir -p /var/log/php-fpm/ && mkdir -p /var/run/php-fpm && cd /var/run/ && chown -R nginx:nginx php-fpm
#######修改session的目录配置
[root@localhost run]# mkdir -p /var/lib/php/session
[root@localhost run]
# chown -R nginx:nginx /var/lib/php
登入後複製

設定PHP開機啟動以及測試設定檔是否正確

######配置开机自启动,增加到主机sysV服务
[root@localhost run]# chmod +x /etc/init.d/php-fpm
[root@localhost run]# chkconfig --add php-fpm
[root@localhost run]# chkconfig php-fpm on
######测试PHP的配置文件是否正确合法
[root@localhost run]# php-fpm -t
[05-Dec-2015 17:33:03] NOTICE: configuration file /usr/local/php7/etc/php-fpm.conf test is successful
登入後複製

啟動php服務

在完成上面的操作後,就可以正式使用php服務了。啟動php進程服務的命令如下:

[root@localhost init.d]# service php-fpm startStarting php-fpm  done
登入後複製
然後可以透過命令ps -aux|grep php查看是否成功(圖中的php-fpm進程數和進程用戶nginx都是由www.conf中pm. start_servers和user的值分別決定的):

PHP 7 ps -aux

查看PHP7版本資訊

#最後,可以透過指令php -v查看目前PHP版本信息,圖中可以看到目前PHP7也使用了Zend OPcache緩存,是因為在php.ini檔案中加入了zend_extension=opcache.so配置。

PHP 7 version

相關文章:

Mac預設使用自己安裝的php

centos6.7安裝php7的詳細介紹

詳細介紹Linux下安裝php環境並且設定Nginx支援php-fpm模組(圖文)#

以上是詳細介紹CentOS7編譯安裝PHP7的範例程式碼(圖)的詳細內容。更多資訊請關注PHP中文網其他相關文章!

本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn

熱AI工具

Undresser.AI Undress

Undresser.AI Undress

人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover

AI Clothes Remover

用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool

Undress AI Tool

免費脫衣圖片

Clothoff.io

Clothoff.io

AI脫衣器

Video Face Swap

Video Face Swap

使用我們完全免費的人工智慧換臉工具,輕鬆在任何影片中換臉!

熱工具

記事本++7.3.1

記事本++7.3.1

好用且免費的程式碼編輯器

SublimeText3漢化版

SublimeText3漢化版

中文版,非常好用

禪工作室 13.0.1

禪工作室 13.0.1

強大的PHP整合開發環境

Dreamweaver CS6

Dreamweaver CS6

視覺化網頁開發工具

SublimeText3 Mac版

SublimeText3 Mac版

神級程式碼編輯軟體(SublimeText3)

CentOS7各版本鏡像下載地址及版本說明(包括Everything版) CentOS7各版本鏡像下載地址及版本說明(包括Everything版) Feb 29, 2024 am 09:20 AM

載CentOS-7.0-1406的時候,有很多可選則的版本,對於普通用戶來說,不知道選擇哪個好,下面做一下簡單介紹:(1)CentOS-xxxx-LiveCD.ios和CentOS-xxxx- bin-DVD.iso有什麼差別?前者只有700M,後者有3.8G。其差異不僅在大小上,其更本質的差異是,CentOS-xxxx-LiveCD.ios只能載入到記憶體裡運行,不能安裝。 CentOS-xxx-bin-DVD1.iso才可以安裝到硬碟上。 (2)CentOS-xxx-bin-DVD1.iso,Ce

CentOS 7 緊急修復模式的進入步驟 CentOS 7 緊急修復模式的進入步驟 Jan 13, 2024 am 09:36 AM

打開centos7頁面出現:welcometoemergencymode! afterloggingin,type“journalctl-xb”toviewsystemlogs,“systemctlreboot”toreboot,“systemctldefault”totryagaintobootintodefaultmode。 giverootpasswordformaintenance(??Control-D???):解決方法:執行r

如何在CentOS 7中存取並清理/tmp目錄中的垃圾檔案? 如何在CentOS 7中存取並清理/tmp目錄中的垃圾檔案? Dec 27, 2023 pm 09:10 PM

centos7系統中tmp目錄下有很多垃圾,想要清除垃圾,該怎麼清除呢?下面我們就來看看詳細的教學。查看tmp檔案目錄下檔案列表,執行指令cdtmp/切換到tmp目前檔案目錄,執行ll指令,查看目前目錄下檔列表。如下圖所示。使用rm刪除檔案指令,需要注意的是rm指令是將檔案永遠從系統中刪除,因此建議在使用rm指令時,最好是在刪除檔案前給予提示。使用指令rm-i檔名,等用戶確認刪除(y)或跳過刪除(n),系統進行對應的操作。如下圖所示。

centos7如何設定密碼規則?centos7設定密碼規則的方法 centos7如何設定密碼規則?centos7設定密碼規則的方法 Jan 07, 2024 pm 01:17 PM

出於安全考慮設定密碼規則設定密碼到期的天數。使用者必須在天內更改密碼。此設定僅影響建立用戶,而不會影響現有用戶。如果設定為現有用戶,請執行指令「chage-M(days)(user)」。 PASS_MAX_DAYS60#密碼到期時間PASS_MIN_DAYS3#初始密碼更改時間PASS_MIN_LEN8#密碼最小長度PASS_WARN_AGE7#密碼過期提示時間重複密碼限制使用[root@linuxprobe~]#vi/etc/pam.d/system-auth#nearline15:

centos7下解壓縮檔案指令(zip)詳解 centos7下解壓縮檔案指令(zip)詳解 Jan 07, 2024 pm 06:30 PM

1.壓縮資料夾為zip檔[root@cgls]#zip-rmydata.zipmydata2.把mydata.zip解壓縮到mydatabak目錄裡面[root@cgls]#unzipmydata.zip-dmydatabak3.mydata01資料夾和mydata02.txt mydata.zip[root@cgls]#zipmydata.zipmydata01mydata02.txt4.直接解壓縮mydata.zipmydata.zipmydata01mydata02.txt4.直接解壓縮mydata.zip檔[root@cgls]#unzipmydata.zip5.查看myd

CENTOS7下如何安裝mbstring擴充? CENTOS7下如何安裝mbstring擴充? Jan 06, 2024 pm 09:59 PM

1.UncaughtError:Calltoundefinedfunctionmb_strlen();出現如上錯誤時,說明我們沒裝上mbstring擴展;2.進入PHP安裝目錄cd/temp001/php-7.1.0/ext/mbstring3.啟動phpize(/usr/local/bin /phpize或/usr/local/php7-abel001/bin/phpize)指令來安裝php擴充4../configure--with-php-config=/usr/local/php7-abel

php7.0安裝了插件還是顯示未安裝怎麼辦 php7.0安裝了插件還是顯示未安裝怎麼辦 Apr 02, 2024 pm 07:39 PM

解決 PHP 7.0 中插件未顯示已安裝問題的方法:檢查插件配置並啟用插件。重新啟動 PHP 以套用配置變更。檢查插件檔案權限,確保其正確。安裝遺失的依賴項,以確保插件正常運作。如果其他步驟都失敗,則重建 PHP。其他可能原因包括外掛程式版本不相容、載入錯誤版本或 PHP 配置問題。

如何修改和設定CentOS7的預設快捷鍵? 如何修改和設定CentOS7的預設快捷鍵? Jan 09, 2024 pm 06:14 PM

當預設快捷鍵與使用的軟體按鍵衝突或需要按照自己的習慣使用快捷鍵,這時候只好修改和設定預設快捷鍵,該怎麼修改CentOS7預設的快捷鍵額?下面我們就來看看詳細的教學。 1.開啟虛擬機器中的Centos7系統,進入桌面2、點選左上角的應用程式->系統工具->設定3、進入設定介面,點選裝置4、選擇Keyboard,點選右邊任一項,並在鍵盤上按下要設定的快捷鍵,即可更改其快捷鍵,(注意有些是無法更改的!)5、更改後如下所示,最後點擊設置,這樣快捷鍵的設定修改就完成了。

See all articles