搜尋
首頁後端開發PHP7yum php7.1怎麼增加擴展

yum php7.1怎麼增加擴展

Dec 31, 2021 am 09:22 AM
yum

yum php7.1增加擴充的方法:1、透過yum安裝php7.1;2、透過「yum -y install php-mysql php-gd php-ldap php-odbc...」指令加入PHP常用擴充功能即可。

yum php7.1怎麼增加擴展

本文操作環境:centos7系統、PHP7.1版、DELL G3電腦

yum php7.1怎麼增加擴充?

CentOS 7下部署php7.1與開啟MySQL擴充的方法教學

前言

之前在CentOS7安裝php7.1的時候有遇到PHP來源及PHP7.1不支援MySQL擴充問題,早上抽空安裝了下終於解決了這兩個問題,特此記錄備忘。

簡單安裝(yum方式)

安裝軟體來源

新增epel來源

[root@opstrip.com opt]# rpm --import /etc/pki/rpm-gpg/RPM-GPG-KEY*
[root@opstrip.com opt]# rpm -Uvh http://mirrors.rit.edu/fedora/epel//7/x86_64/e/epel-release-7-9.noarch.rpm

新增remi來源

[root@opstrip.com opt]# rpm -Uvh http://rpms.remirepo.net/enterprise/remi-release-7.rpm

安裝並更新軟體

安裝yum-config-manager實用程式

[root@opstrip.com opt]# yum -y install yum-utils

更新系統目前軟體版本

[root@opstrip.com opt]# yum -y update

更新完成後,就可以安裝所需的PHP版本了。

安裝PHP

以上準備工作完成後,就可以安裝所需的PHP版本了。

對於PHP5.4

[root@opstrip.com opt]# yum -y install php

安裝前可嘗試yum search php54搜尋可安裝的軟體包。

對於PHP7.0

[root@opstrip.com opt]# yum-config-manager --enable remi-php70
[root@opstrip.com opt]# yum -y install php php-opcache

安裝前可嘗試yum search php70搜尋可安裝的軟體包。

對於PHP7.1

[root@opstrip.com opt]# yum-config-manager --enable remi-php71
[root@opstrip.com opt]# yum -y install php php-opcache

安裝前可嘗試yum search php71搜尋可安裝的軟體包。

完成後也需要加入PHP常用擴充:

[root@opstrip.com opt]# yum -y install php-mysql php-gd php-ldap php-odbc php-pear php-xml php-xmlrpc php-mbstring php-soap curl curl-devel

對於Nginx

[root@opstrip.com opt]# yum -y install nginx nginx-mod-http-perl nginx-mod-stream nginx-filesystem nginx-mod-mail nginx-mod-http-image-filter nginx-all-modules nginx-mod-http-geoip nginx-mod-http-xslt-filter

安裝前仍建議嘗試yum search nginx搜尋可安裝的軟體套件。

安裝完成後設定PHP及Nginx並啟動用以測試phpinfo頁面,這時候應該可以正常顯示。

原始碼編譯安裝

安裝前的準備

下載PHP安裝套件

[root@opstrip.com opt]# wget -O php-7.1.5.tar.gz http://cn2.php.net/distributions/php-7.1.5.tar.gz

解壓縮

[root@opstrip.com opt]# tar xf php-7.1.5.tar.gz

安裝依賴套件

[root@opstrip.com php-7.1.5]# yum install -y 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

設定安裝

編譯設定

[root@opstrip.com opt]# cd php-7.1.5
[root@opstrip.com php-7.1.5]# ./configure \
--prefix=/usr/local/php \
--with-config-file-path=/etc \
--enable-fpm \
--with-fpm-user=nginx \
--with-fpm-group=nginx \
--enable-inline-optimization \
--disable-debug \
--disable-rpath \
--enable-shared \
--enable-soap \
--with-libxml-dir \
--with-xmlrpc \
--with-openssl \
--with-mcrypt \
--with-mhash \
--with-pcre-regex \
--with-sqlite3 \
--with-zlib \
--enable-bcmath \
--with-iconv \
--with-bz2 \
--enable-calendar \
--with-curl \
--with-cdb \
--enable-dom \
--enable-exif \
--enable-fileinfo \
--enable-filter \
--with-pcre-dir \
--enable-ftp \
--with-gd \
--with-openssl-dir \
--with-jpeg-dir \
--with-png-dir \
--with-zlib-dir \
--with-freetype-dir \
--enable-gd-native-ttf \
--enable-gd-jis-conv \
--with-gettext \
--with-gmp \
--with-mhash \
--enable-json \
--enable-mbstring \
--enable-mbregex \
--enable-mbregex-backtrack \
--with-libmbfl \
--with-onig \
--enable-pdo \
--with-mysqli=mysqlnd \
--with-pdo-mysql=mysqlnd \
--with-zlib-dir \
--with-pdo-sqlite \
--with-readline \
--enable-session \
--enable-shmop \
--enable-simplexml \
--enable-sockets \
--enable-sysvmsg \
--enable-sysvsem \
--enable-sysvshm \
--enable-wddx \
--with-libxml-dir \
--with-xsl \
--enable-zip \
--enable-mysqlnd-compression-support \
--with-pear \
--enable-opcache

具體可以參考PHP官方安裝說明文件:http://php.net/manual/zh/install.unix.nginx.php

編譯安裝

[root@opstrip.com php-7.1.5]# make && make install

設定環境變數: 

在/etc/profile最後追加export PATH=$PATH:/usr/local/php/bin,然後執行source / etc/profile生效後查看php版本:

[root@opstrip.com php-7.1.5]# php -v
PHP 7.1.5 (cli) (built: May 31 2017 16:12:38) ( NTS )
Copyright (c) 1997-2017 The PHP Group
Zend Engine v3.1.0, Copyright (c) 1998-2017 Zend Technologies

安裝後的設定

設定php-fpm 

安裝完成後可以透過sapi/fpm/php-fpm.server來啟動php-fpm了。不過為了日後管理方便,通常需要將設定檔統一放到/etc目錄下,並將php-fpm.server新增至systemctl服務。如下:

[root@opstrip.com php-7.1.5]# mkdir -p /etc/php-fpm.d
[root@opstrip.com php-7.1.5]# cp php.ini-production /etc/php.ini
[root@opstrip.com php-7.1.5]# cp sapi/fpm/php-fpm.service /usr/lib/systemd/system/
[root@opstrip.com php-7.1.5]# cp sapi/fpm/www.conf /etc/php-fpm.d/

然後更改/usr/lib/systemd/system/php-fpm.service檔案使其執行正確的路徑,如下:

[root@opstrip.com php-7.1.5]# vi /usr/lib/systemd/system/php-fpm.service
# It's not recommended to modify this file in-place, because it
# will be overwritten during upgrades. If you want to customize,
# the best way is to use the "systemctl edit" command.
 
[Unit]
Description=The PHP FastCGI Process Manager
After=network.target
 
[Service]
Type=simple
PIDFile=/var/run/php-fpm.pid
ExecStart=/usr/local/php/sbin/php-fpm --nodaemonize --fpm-config /etc/php-fpm.conf
ExecReload=/bin/kill -USR2 $MAINPID
PrivateTmp=true
 
[Install]
WantedBy=multi-user.target

啟動php-fpm 

第一次透過systemctl啟動PHP服務時需要先將php-fpm服務enable:

[root@opstrip.com php-7.1.5]# systemctl enable php-fpm.service
[root@opstrip.com php-7.1.5]# systemctl start php-fpm.service

#編譯安裝Nginx

詳見這篇文章,並根據需要設定並啟動Nginx。這裡就不在寫了。

開啟MySQL擴充(僅編譯安裝)

由於PHP7已經完全移除了MySQL的擴充支援(由mysqli與mysqlnd取代),因此有些舊的軟體在升級PHP版本後會報類似mysql_connect()函數未定義的錯誤,一般建議使用新的PHPmysqli或pdo擴充進行替換。當然也可以檢出遺留版本的支援MySQL擴充的PHP7程式碼自行編譯安裝了,不過要注意的就是MySQL擴充功能可是完全沒有後續更新的了。

安裝前準備

查看目前擴充

 查看目前PHP7.1自帶擴充功能:

[root@opstrip.com php-7.1.5]# ls ext
bcmath  dom     gd   json  oci8   pdo_firebird posix   skeleton sysvsem  xmlwriter
bz2   enchant    gettext  ldap  odbc   pdo_mysql  pspell  snmp  sysvshm  xsl
calendar  exif    gmp   libxml  opcache  pdo_oci   readline  soap  tidy   zip
com_dotnet ext_skel   hash   mbstring openssl  pdo_odbc  recode  sockets  tokenizer zlib
ctype   ext_skel_win32.php iconv  mcrypt  pcntl  pdo_pgsql  reflection spl   wddx
curl   fileinfo   imap   mysql  pcre   pdo_sqlite  session  sqlite3  xml
date   filter    interbase mysqli  pdo   pgsql   shmop   standard xmlreader
dba   ftp     intl   mysqlnd  pdo_dblib phar   simplexml  sysvmsg  xmlrpc

可以看到MySQL擴充確實已經移除了,我們可以直接在ext目錄下檢出舊的PHP MySQL擴充程式碼。

取得PHP MySQL擴充原始碼

[root@opstrip.com ext]# git clone https://github.com/php/pecl-database-mysql mysql --recursive
Cloning into 'mysql'...
remote: Counting objects: 145, done.
remote: Total 145 (delta 0), reused 0 (delta 0), pack-reused 145
Receiving objects: 100% (145/145), 88.41 KiB | 0 bytes/s, done.
Resolving deltas: 100% (65/65), done.
Checking connectivity... done.

編譯安裝MySQL擴充功能

使用phpize編譯

[root@opstrip.com ext]# cd mysql
[root@opstrip.com mysql]# ls
config.m4 config.w32 CREDITS LICENSE mysql.mak mysql_mysqlnd.h package.xml php_mysql.c php_mysql.h php_mysql_structs.h README.md tests
[root@opstrip.com mysql]# /usr/local/php/bin/phpize
Configuring for:
PHP Api Version:   20151012
Zend Module Api No:  20151012
Zend Extension Api No: 320151012
[root@opstrip.com mysql]# ./configure --with-php-config=/usr/local/php/bin/php-config

安裝

[root@opstrip.com mysql]# make && make install
[root@opstrip.com mysql]# ls /usr/local/php/lib/php/extensions/no-debug-non-zts-20160303/
mysql.so opcache.a opcache.so

安裝完成後需確認MySQL擴充安裝是否正確。

最後修改php.ini設定文件,增加一行:

extension = "mysql.so"

重新啟動php-fpm服務就能在phpinfo裡看到MySQL擴充了: 

yum php7.1怎麼增加擴展

–本配置完。

推薦學習:《PHP影片教學

以上是yum php7.1怎麼增加擴展的詳細內容。更多資訊請關注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脫衣器

AI Hentai Generator

AI Hentai Generator

免費產生 AI 無盡。

熱門文章

R.E.P.O.能量晶體解釋及其做什麼(黃色晶體)
3 週前By尊渡假赌尊渡假赌尊渡假赌
R.E.P.O.最佳圖形設置
3 週前By尊渡假赌尊渡假赌尊渡假赌
R.E.P.O.如果您聽不到任何人,如何修復音頻
3 週前By尊渡假赌尊渡假赌尊渡假赌
WWE 2K25:如何解鎖Myrise中的所有內容
4 週前By尊渡假赌尊渡假赌尊渡假赌

熱工具

MinGW - Minimalist GNU for Windows

MinGW - Minimalist GNU for Windows

這個專案正在遷移到osdn.net/projects/mingw的過程中,你可以繼續在那裡關注我們。 MinGW:GNU編譯器集合(GCC)的本機Windows移植版本,可自由分發的導入函式庫和用於建置本機Windows應用程式的頭檔;包括對MSVC執行時間的擴展,以支援C99功能。 MinGW的所有軟體都可以在64位元Windows平台上運作。

WebStorm Mac版

WebStorm Mac版

好用的JavaScript開發工具

SecLists

SecLists

SecLists是最終安全測試人員的伙伴。它是一個包含各種類型清單的集合,這些清單在安全評估過程中經常使用,而且都在一個地方。 SecLists透過方便地提供安全測試人員可能需要的所有列表,幫助提高安全測試的效率和生產力。清單類型包括使用者名稱、密碼、URL、模糊測試有效載荷、敏感資料模式、Web shell等等。測試人員只需將此儲存庫拉到新的測試機上,他就可以存取所需的每種類型的清單。

Dreamweaver Mac版

Dreamweaver Mac版

視覺化網頁開發工具

Safe Exam Browser

Safe Exam Browser

Safe Exam Browser是一個安全的瀏覽器環境,安全地進行線上考試。該軟體將任何電腦變成一個安全的工作站。它控制對任何實用工具的訪問,並防止學生使用未經授權的資源。