>백엔드 개발 >PHP7 >yum php7.1에 확장을 추가하는 방법

yum php7.1에 확장을 추가하는 방법

藏色散人
藏色散人원래의
2021-12-31 09:22:581999검색

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에 확장 기능을 추가하는 방법은 무엇입니까?

php7.1 배포 방법에 대한 자습서 및 CentOS 7에서 MySQL 확장 기능 활성화

Foreword

이전에 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

현재 소프트웨어 버전 업데이트 system

[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

Unzip

[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

환경 변수 구성:

Append 내보내기 PATH=$PATH:/usr/local/php / /etc/profile bin 끝에서 /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

Start php-fpm

systemctl을 통해 PHP 서비스를 시작할 때 필요합니다. 처음으로 php-fpm 서비스를 활성화하세요:

[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 확장이 실제로 제거된 것을 볼 수 있습니다. 이전 PHP MySQL 확장을 직접 확인할 수 있습니다. ext 디렉토리 코드.

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으로 문의하세요.