1 建立php使用者和使用者群組,並在github下載php7來源碼
先建立一個名為php且沒有登入權限的使用者和一個名為php的使用者群組,然後去GitHub下載php7來源碼包。
#######新php使用者和php群組
[root@typecodes ~]# groupadd -r php && useradd -r -g php -s /bin/false -d /usr/local/php7 -M php
######從GitHub下載php7安裝套件
[root@typecodes ~]# wget -c --no-check-certificate -O php7-src-master.zip https://github.com/php/ php-src/archive/master.zip
######開始解壓縮php7套件
[root@typecodes ~]# unzip -q php7-src-master.zip && cd php-src-master
#### #安裝編譯php7時需要的依賴套件
[root@typecodes php-src-master]# yum -y install libxml2 libxml2-devel openssl openssl-devel curl-devel libjpeg-devel libpng-devel freetype-devel curl-devel libjpeg-devel libpng-devel freetype-devel libmcpt-de PHP7編譯參數的設定
準備工作做好後,就開始正式設定php7的安裝明細了。注意,操作時一定要先把下面反斜線「」後面加上的註解文字去掉! ! !
######開始產生設定檔
[root@typecodes php-src-master]# ./buildconf
buildconf: checking installation...
buildconf: autoconf version 2.69 (ok)
. configure
rebuilding main/php_config.h.in
######開始設定
[root@typecodes php-src-master]# ./configure
--prefix=/usr/local/php7 P7安裝的根目錄]
--exec-prefix=/usr/local/php7
--bindir=/usr/local/php7/bin
--sbindir=/usr/local/php7/sbin
--includedir=/usr/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文件]--within/mco-crywo-prywrywo/mcm/mcpto--三/mcpto--cryo-crywryo-crywo/mcpt with-mhash
--with-openssl
--with-mysqli=shared,mysqlnd sql my [PHP7依賴mysql函式庫]
--with-gd
--with-iconv
--with-zlib
--enable-zip
--enable-inline-optimization
--disable-debug
--disable-rpath = --enable-bcmath
--enable-shmop
--enable-sysvsem
--enable-mbregex
--enable-mbstring
--enable-ftp
--enable-gd-native-ttable
--enable-ftp
--enable-gd-native-ttable
--enable-ftp
--enable-gd-native-ttable
--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=no
--with-fpm-user=nginx [ php-fpm的使用者]
--with-fpm-group=nginx 中對下的使用者組上進行相結合時的用戶組 - = /usr/local/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
--with-mysql-sock=/var/run/mysql/mysql.sock --with-mcrypt=/usr/include --with-mhash --with-openssl --with-mysqli=shared,mysqlnd --with -pdo-mysql=shared,mysqlnd --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 --with-curl
--with-jpeg-dir --with-freetype-dir --enable-opcache=no --enable-fpm --with-fpm-user=nginx --with-fpm-group=nginx --without-gdbm - -disable-fileinfo
錯誤訊息:configure: error: mcrypt.h not found. Please reinstall libmcrypt
解決方法:下載libmcrypt-2.5.8.tar.gz 然後編譯安裝
下載位址:http://sourceforge.net/ projects/mcrypt/files/Libmcrypt/
如果重新編譯了libmcrypt 記住安裝目錄,然後php的編譯項目--with-mcrypt=你的libmcrypt安裝目錄
./configure --prefix=/usr/local/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/等
--with-mysql-sock=/var/run/mysql/mysql.sock --with-mcrypt=/usr/local/libmcrytp/ --with-mhash --with-openssl --with-mysqli=mysqlnd -- with-pdo-mysql=mysqlnd --with-gd --with-iconv --with-zlib --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 --with-curl --with-jpeg-dir
--with-freetype-dir --enable-opcache --enable-fpm --with-fpm-user=nginx --with-fpm-group=nginx --without-gdbm --disable-fileinfo
編譯時遇到到問題:不知道如何在這個系統上定義struct資源,設定--enable-opcache=no
解決方法:(我最終用這些方法還是沒有解決)
一、yum groupinstall「開發工具」。二、編輯/etc/ld.so.conf 加入/usr/local/lib,在執行ldconfig -v
提示:我在/usr/lib libmysqlclient.so so在編輯/etc/ld.so.conf的時候看到,需要看一下,這裡面是否有
3開始編譯安裝PHP7
相對編譯安裝MySQL的大量CPU和記憶體消耗,PHP7的編譯安裝輕鬆多了,整個過程大約1個小時左右存在。時候,把--enable-opcache=no設為no,去掉了--enable-zip,完成安裝後,需要單獨把這兩個當作擴充安裝
[root@typecodes php-src-master]# make clean && make && make install
如果遇到錯誤可參考:http://blog.chinaunix.net/uid-20776139-id-5421615.html
4 選做步驟:執行make test指令進行測試
這是一個非常簡單的操作步驟,執行make test指令。一致後面的PHP7安裝目錄
由於需要和MySQL進行通信,所以需要特別查看PHP7安裝後面的lib擴展庫目錄(/usr/local/php7/lib/php/extensions/no-debug-non-zts-20141001/ ) 。設定檔複製到PHP7的設定目錄(/usr/local/php7/etc/),建議使用《PHP7中php.ini、php-fpm和www.conf的設定》文中整理的3個PHP7設定檔和php - fpm服務控制腳本。 /php .ini
[root@typecodes php-src-master]# cp /php-src-master/sapi/fpm/init.d.php-fpm /etc/init.d/php-fpm
[ root@typecodes php- src-master]# cp /usr/local/php7/etc/php-fpm.conf.default /usr/local/php7/etc/php-fpm.conf
[root@typecodes php-src- master]# cp / usr/local/php7/etc/php-fpm.d/www.conf.default /usr/local/php7/etc/php-fpm.d/www.conf
#########方法二:使用https://typecodes.com/web/php7configure.html 文中的設定
[root@typecodes php-src-master]# mv ~/php.ini /usr/local/php7/etc/php.ini && mv ~/ php-fpm /etc/init.d/php-fpm
[root@typecodes php-src-master]# mv ~/php-fpm.conf /usr/local/php7/etc/php-fpm.conf conf && mv ~/www.conf /usr/local/php7/etc/php-fpm.d/www.conf
7加入php的環境變數
將php編譯產生的bin目錄加入到目前Linux系統的環境變數中
[root@typecodes ~]# echo -e 'nexport PATH=/usr/local/php7/bin:/usr/local/php7/sbin:$PATHn' >>> /etc/profile && source /etc/profile
8 設定PHP日誌目錄和php-fpm進程檔案(php-fpm.sock)目錄
其中,設定php-fpm進程目錄的使用者和使用者群組為nginx,並建立php會話會話目錄。
#######設定PHP日誌目錄和php-fpm的運行進程ID檔案(php-fpm.sock)目錄
[root@typecodes ~]# mkdir -p /var/log/php-fpm/ && mkdir -p /var/run/php-fpm && cd /var/run/ && chown -R nginx:nginx php-fpm
######修改session的目錄配置
[root@typecodes etc]# mkdir -p /var/lib/php/session
[root@typecodes etc]# chown -R nginx:nginx /var/lib/php
9 設定PHP開機啟動以及測試設定檔是否正確
######設定開機自啟動,增加到主機sysV服務
[root@typecodes php-src-master]# chmod +x /etc/init.d/php-fpm
[root@typecodes php-src-master]# chkconfig --add php-fpm
[root@typecodes php-src-master]# chkconfig php-fpm on
######測試PHP的設定檔是否正確合法
[root@typecodes sbin]# php-fpm -t
[ 03-May-2015 17:50:04] NOTICE: configuration file /usr/local/php7/etc/php-fpm.conf test is successful
10 啟動php服務
在完成上面的操作後,就可以正式使用php服務了。啟動php行程服務的指令如下:
[root@typecodes sbin]# service php-fpm start
Starting php-fpm done
11 安裝opcache
教學:http://blog.jjonline.cn/linux/135.html
教學:http://blog.ich8.com/post/4142
教學:http://my.oschina.net/u/919580/blog/406900 實務證明這個可用
安裝:
Linux
安裝Zend Opcache(pecl版本):
刪除eaccelerator、xcache、apc:
yum remove php-eaccelerator php-xcache php-apcu
沒有使用則跳過。
對系統執行升級:
yum update
安裝Zend Opcache(pecl 版本)
yum install php-pecl-zendopcache PS:但是在centos7上還是沒有找到php-pecl-zendopcache擴展,所以下面無法繼續安裝操作
時產生的opcache 的設定檔位於預設的/etc/php.d 目錄中:
opcache-default.blacklist
opcache.ini
這個設定檔採用的基本上就是README 中的建議設置,只有幾個地方需要修改。
vi /etc/php.d/opcache.ini
對照如下建議配置修改並儲存即可:
opcache.memory_c>opcache.interned_strings_buffer=8
opcache.max_accelerated_files=400000cm>> 1
opcache.enable_cli=1
不需要修改php.ini 配置,重起Apache 服務使之生效:
service httpd restart
查詢一下看看是否正確啟動了:
php -v
輸出結果類似於:
PHP 7 (cli) (built: Apr 11 2013 11:04:35)
Copyright (c) 1997-2013 The PHP Group
Zend Engine v2.4.0, , Copyright (c) 1999-2013, 由 Zend Technologies
以上就介紹了CentOS 71編譯安裝PHP7,包含了方面的內容,希望對PHP教學有興趣的朋友有幫助。

PHP在現代編程中仍然是一個強大且廣泛使用的工具,尤其在web開發領域。 1)PHP易用且與數據庫集成無縫,是許多開發者的首選。 2)它支持動態內容生成和麵向對象編程,適合快速創建和維護網站。 3)PHP的性能可以通過緩存和優化數據庫查詢來提升,其廣泛的社區和豐富生態系統使其在當今技術棧中仍具重要地位。

在PHP中,弱引用是通過WeakReference類實現的,不會阻止垃圾回收器回收對象。弱引用適用於緩存系統和事件監聽器等場景,需注意其不能保證對象存活,且垃圾回收可能延遲。

\_\_invoke方法允許對象像函數一樣被調用。 1.定義\_\_invoke方法使對象可被調用。 2.使用$obj(...)語法時,PHP會執行\_\_invoke方法。 3.適用於日誌記錄和計算器等場景,提高代碼靈活性和可讀性。

Fibers在PHP8.1中引入,提升了並發處理能力。 1)Fibers是一種輕量級的並發模型,類似於協程。 2)它們允許開發者手動控制任務的執行流,適合處理I/O密集型任務。 3)使用Fibers可以編寫更高效、響應性更強的代碼。

PHP社區提供了豐富的資源和支持,幫助開發者成長。 1)資源包括官方文檔、教程、博客和開源項目如Laravel和Symfony。 2)支持可以通過StackOverflow、Reddit和Slack頻道獲得。 3)開發動態可以通過關注RFC了解。 4)融入社區可以通過積極參與、貢獻代碼和學習分享來實現。

PHP和Python各有優勢,選擇應基於項目需求。 1.PHP適合web開發,語法簡單,執行效率高。 2.Python適用於數據科學和機器學習,語法簡潔,庫豐富。

PHP不是在消亡,而是在不斷適應和進化。 1)PHP從1994年起經歷多次版本迭代,適應新技術趨勢。 2)目前廣泛應用於電子商務、內容管理系統等領域。 3)PHP8引入JIT編譯器等功能,提升性能和現代化。 4)使用OPcache和遵循PSR-12標準可優化性能和代碼質量。

PHP的未來將通過適應新技術趨勢和引入創新特性來實現:1)適應云計算、容器化和微服務架構,支持Docker和Kubernetes;2)引入JIT編譯器和枚舉類型,提升性能和數據處理效率;3)持續優化性能和推廣最佳實踐。


熱AI工具

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

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

Undress AI Tool
免費脫衣圖片

Clothoff.io
AI脫衣器

AI Hentai Generator
免費產生 AI 無盡。

熱門文章

熱工具

VSCode Windows 64位元 下載
微軟推出的免費、功能強大的一款IDE編輯器

mPDF
mPDF是一個PHP庫,可以從UTF-8編碼的HTML產生PDF檔案。原作者Ian Back編寫mPDF以從他的網站上「即時」輸出PDF文件,並處理不同的語言。與原始腳本如HTML2FPDF相比,它的速度較慢,並且在使用Unicode字體時產生的檔案較大,但支援CSS樣式等,並進行了大量增強。支援幾乎所有語言,包括RTL(阿拉伯語和希伯來語)和CJK(中日韓)。支援嵌套的區塊級元素(如P、DIV),

MantisBT
Mantis是一個易於部署的基於Web的缺陷追蹤工具,用於幫助產品缺陷追蹤。它需要PHP、MySQL和一個Web伺服器。請查看我們的演示和託管服務。

WebStorm Mac版
好用的JavaScript開發工具

ZendStudio 13.5.1 Mac
強大的PHP整合開發環境