原创

Linux下PHP7.2.21编译安装配置详细图文步骤

1、下载php7.2.21

通过浏览器直接访问下方链接即可下载使用wget命令下载。

wget https://www.php.net/distributions/php-7.2.7.tar.gz

解压php-7.2.21.tar.gz 压缩包,执行tar -xvf php-7.2.21.tar.gz命令。

[root@Java-JingXuan home]# tar -xvf php-7.2.21.tar.gz

2、php7.2.21安装

1)切换至php-7.2.21目录,执行cd /php-7.2.21命令。

[root@Java-JingXuan home]# cd /php-7.2.21
[root@Java-JingXuan home]# ll

1.jpg

2)安装依赖包,执行如下命令。

[root@Java-JingXuan php-7.2.21]# yum install -y gcc gcc-c++  make zlib zlib-devel pcre pcre-devel  libjpeg libjpeg-devel libpng libpng-devel freetype freetype-devel libxml2 libxml2-devel glibc glibc-devel glib2 glib2-devel bzip2 bzip2-devel ncurses ncurses-devel curl curl-devel e2fsprogs e2fsprogs-devel krb5 krb5-devel openssl openssl-devel openldap openldap-devel nss_ldap openldap-clients openldap-servers

3)执行编译命令。

[root@Java-JingXuan php-7.2.21]# ./configure --prefix=/usr/local/php --with-config-file-path=/usr/local/php --enable-mbstring --with-openssl --enable-ftp --with-gd --with-jpeg-dir=/usr --with-png-dir=/usr --with-mysql=mysqlnd --with-mysqli=mysqlnd --with-pdo-mysql=mysqlnd --with-pear --enable-sockets --with-freetype-dir=/usr --with-zlib --with-libxml-dir=/usr --with-xmlrpc --enable-zip --enable-fpm --enable-xml --enable-sockets --with-gd --with-zlib --with-iconv --enable-zip --with-freetype-dir=/usr/lib/ --enable-soap --enable-pcntl --enable-cli --with-curl
...
config.status: creating sapi/fpm/php-fpm.8
config.status: creating sapi/fpm/status.html
config.status: creating sapi/phpdbg/phpdbg.1
config.status: creating sapi/cgi/php-cgi.1
config.status: creating ext/phar/phar.1
config.status: creating ext/phar/phar.phar.1
config.status: creating main/php_config.h
config.status: executing default commands
configure: WARNING: unrecognized options: --with-mysql

注意:警告“WARNING: unrecognized options: --with-mysql”信息,由于PHP7.2不再支持mysql,而是用mysqli替代,所以会出现上述的警告信息。其实没什么关系,如果需要安装php的mysql扩展,下文有讲述可参考安装。

4)编译通过后,执行make && make install安装命令。

[root@Java-JingXuan php-7.2.21]# make && make install
/bin/sh /home/php-7.2.21/libtool --silent --preserve-dup-deps --mode=compile cc -DZEND_ENABLE_STATIC_TSRMLS_CACHE=1 -Iext/opcache/ -I/home/php-7.2.21/ext/opcache/ -DPHP_ATOM_INC -I/home/php-7.2.21/include -I/home/php-7.2.21/main -I/home/php-7.2.21 -I/home/php-7.2.21/ext/date/lib -I/usr/include/libxml2 -I/usr/include/freetype2 -I/usr/include/libpng15 -I/home/php-7.2.21/ext/mbstring/oniguruma -I/home/php-7.2.21/ext/mbstring/libmbfl -I/home/php-7.2.21/ext/mbstring/libmbfl/mbfl -I/home/php-7.2.21/ext/sqlite3/libsqlite -I/home/php-7.2.21/ext/zip/lib -I/home/php-7.2.21/TSRM -I/home/php-7.2.21/Zend    -I/usr/include -g -O2 -fvisibility=hidden -DZEND_SIGNALS    -c /home/php-7.2.21/ext/opcache/ZendAccelerator.c -o ext/opcache/ZendAccelerator.lo 
/bin/sh /home/php-7.2.21/libtool --silent --preserve-dup-deps --mode=compile cc -DZEND_ENABLE_STATIC_TSRMLS_CACHE=1 -Iext/opcache/ -I/home/php-7.2.21/ext/opcache/ -DPHP_ATOM_INC -I/home/php-7.2.21/include -I/home/php-7.2.21/main -I/home/php-7.2.21 -I/home/php-7.2.21/ext/date/lib -I/usr/include/libxml2 -I/usr/include/freetype2 -I/usr/include/libpng15 -I/home/php-7.2.21/ext/mbstring/oniguruma -I/home/php-7.2.21/ext/mbstring/libmbfl -I/home/php-7.2.21/ext/mbstring/libmbfl/mbfl -I/home/php-7.2.21/ext/sqlite3/libsqlite -I/home/php-7.2.21/ext/zip/lib -I/home/php-7.2.21/TSRM -I/home/php-7.2.21/Zend    -I/usr/include -g -O2 -fvisibility=hidden -DZEND_SIGNALS    -c /home/php-7.2.21/ext/opcache/zend_accelerator_blacklist.c -o ext/opcache/zend_accelerator_blacklist.lo 
/bin/sh /home/php-7.2.21/libtool --silent --preserve-dup-deps --mode=compile cc -DZEND_ENABLE_STATIC_TSRMLS_CACHE=1 -Iext/opcache/ -I/home/php-7.2.21/ext/opcache/ -DPHP_ATOM_INC -I/home/php-7.2.21/include -I/home/php-7.2.21/main -I/home/php-7.2.21 -I/home/php-7.2.21/ext/date/lib -I/usr/include/libxml2 -I/usr/include/freetype2 -I/usr/include/libpng15 -I/home/php-7.2.21/ext/mbstring/oniguruma -I/home/php-7.2.21/ext/mbstring/libmbfl -I/home/php-7.2.21/ext/mbstring/libmbfl/mbfl -I/home/php-7.2.21/ext/sqlite3/libsqlite -I/home/php-7.2.21/ext/zip/lib -I/home/php-7.2.21/TSRM -I/home/php-7.2.21/Zend    -I/usr/include -g -O2 -fvisibility=hidden -DZEND_SIGNALS    -c /home/php-7.2.21/ext/opcache/zend_accelerator_debug.c -o ext/opcache/zend_accelerator_debug.lo 
...
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/php-7.2.21/build/shtool install -c ext/phar/phar.phar /usr/local/php/bin
ln -s -f phar.phar /usr/local/php/bin/phar
Installing PDO headers:   /usr/local/php/include/php/ext/pdo/

编译安装过程大概持续10分钟左右,耐心等待即可。

3、php7.2.21配置

1)在php-7.2.21源码包(即php-7.2.21.tar.gz压缩包编译前的解压目录)中,找到php.ini-production文件,复制到/usr/local/php/目录,并重名为php.ini文件。

[root@Java-JingXuan php-7.2.21]# cp -a php.ini-production /usr/local/php/php.ini
[root@Java-JingXuan php-7.2.21]# cd /usr/local/php/
[root@Java-JingXuan php]# ll

2.jpg

设置php错误信息打印到页面上,使用vim /usr/local/php/php.ini命令,编辑文件,将display_errors参数设置为on,注意把“;”分号去掉。

3.jpg

然后使用:wq命令,保存并退出即可。

2)复制启动脚本

[root@Java-JingXuan php-7.2.21]# cp /home/php-7.2.21/sapi/fpm/init.d.php-fpm /etc/init.d/php-fpm
[root@Java-JingXuan php-7.2.21]# chmod +x /etc/init.d/php-fpm

3)修改配置文件

A、将php-fpm.conf.default文件复制一份,并重名为php-fpm.conf,使用cp php-fpm.conf.default php-fpm.conf命令。

[root@Java-JingXuan php-7.2.21]# cd /usr/local/php/etc
[root@Java-JingXuan etc]# ls
pear.conf  php-fpm.conf.default  php-fpm.d
[root@Java-JingXuan etc]# cp php-fpm.conf.default php-fpm.conf
[root@Java-JingXuan etc]# ls
pear.conf  php-fpm.conf  php-fpm.conf.default  php-fpm.d

修改php-fpm.conf配置文件,使用vim php-fpm.conf命令,编辑文件,去掉pid = run/php-fpm.pid前面的“;”分号,然后使用:wq命令,保存并退出即可。

4.jpg

B、将www.conf.default文件复制一份,并重名为www.conf,使用cp www.conf.default www.conf命令。

[root@Java-JingXuan etc]# cd /usr/local/php/etc/php-fpm.d/
[root@Java-JingXuan php-fpm.d]# ls
www.conf.default
[root@Java-JingXuan php-fpm.d]# cp www.conf.default www.conf
[root@Java-JingXuan php-fpm.d]# ls
www.conf  www.conf.default

修改www.conf配置文件,使用vim www.conf命令,编辑文件,注意:修改user和group的用户为当前用户,也可以不改,其默认添加nobody这个用户和用户组。

4、启动PHP

php-fpm启动命令

[root@Java-JingXuan php-7.2.21]# /etc/init.d/php-fpm start

php-fpm停止命令

[root@Java-JingXuan php-7.2.21]# /etc/init.d/php-fpm stop

php-fpm重启命令

[root@Java-JingXuan php-7.2.21]# /etc/init.d/php-fpm restart

查看是否已经成功启动PHP

[root@Java-JingXuan php-7.2.21]# ps -ef|grep php

5、配置全局环境变量

修改/etc/profile文件使其永久性生效,并对所有系统用户生效,使用vim /etc/profile命令,在文件末尾处加上如下两行代码:

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

让刚刚修改的php环境变量生效,执行source /etc/profile命令,执行php -v查看配置是否生效。

[root@Java-JingXuan run]# source /etc/profile
[root@Java-JingXuan run]# php -v
PHP 7.2.21 (cli) (built: Jan 17 2022 10:27:53) ( NTS )
Copyright (c) 1997-2018 The PHP Group
Zend Engine v3.2.0, Copyright (c) 1998-2018 Zend Technologies

6、PHP7.2.21安装MySQL扩展

1)mysql扩展下载

http://git.php.net/?p=pecl/database/mysql.git;a=summary

若是无法下载,可通过公众号Java精选,回复php-mysql关键词获取php的mysql扩展压缩包,一定要输入准确否则什么也没有,切记!!!然后通过远程工具上传压缩包,然后解压mysql-24d32a0.tar.gz压缩包,并进入目录。

[root@Java-JingXuan home]# tar -xvf mysql-24d32a0.tar.gz
[root@Java-JingXuan mysql-24d32a0]# ll
total 140
-rw-rw-r-- 1 root root  4782 Dec 27  2017 config.m4
-rw-rw-r-- 1 root root  1040 Dec 27  2017 config.w32
-rw-rw-r-- 1 root root    62 Dec 27  2017 CREDITS
-rw-rw-r-- 1 root root  3218 Dec 27  2017 LICENSE
-rw-rw-r-- 1 root root  4438 Dec 27  2017 mysql.mak
-rw-rw-r-- 1 root root  1505 Dec 27  2017 mysql_mysqlnd.h
-rw-rw-r-- 1 root root  6557 Dec 27  2017 package.xml
-rw-rw-r-- 1 root root 80096 Dec 27  2017 php_mysql.c
-rw-rw-r-- 1 root root  1459 Dec 27  2017 php_mysql.h
-rw-rw-r-- 1 root root  4199 Dec 27  2017 php_mysql_structs.h
-rw-rw-r-- 1 root root   534 Dec 27  2017 README.md
drwxrwxr-x 2 root root  4096 Dec 27  2017 tests

2)使用phpize初始化

在解压后的目录中执行/usr/local/php/bin/phpize命令。

[root@Java-JingXuan mysql-24d32a0]# pwd
/home/mysql-24d32a0
[root@Java-JingXuan mysql-24d32a0]# /usr/local/php/bin/phpize
Configuring for:
PHP Api Version: 20170718
Zend Module Api No:      20170718
Zend Extension Api No:   320170718

3)编译mysql扩展,使用mysql native driver作为mysql链接库。

[root@Java-JingXuan mysql-24d32a0]# ./configure --with-php-config=/usr/local/php/bin/php-config --with-mysql=mysqlnd
checking for grep that handles long lines and -e... /usr/bin/grep
checking for egrep... /usr/bin/grep -E
checking for a sed that does not truncate output... /usr/bin/sed
checking for cc... cc
...
creating libtool
appending configuration tag "CXX" to libtool
configure: creating ./config.status
config.status: creating config.h

4)安装mysql扩展,执行make && make install命令。

[root@Java-JingXuan mysql-24d32a0]# make && make install

5)配置mysql扩展

编辑php.ini文件,在末尾处添加extension=mysql.so配置即可。

[root@Java-JingXuan mysql-24d32a0]# vim /usr/local/php/php.ini

1642396468(1).jpg

然后执行:wq命令,保存并退出。

重启php服务,执行php -r 'phpinfo();'命令,查看phpinfo()。

[root@Java-JingXuan mysql-24d32a0]# /etc/init.d/php-fpm restart
Gracefully shutting down php-fpm . done
Starting php-fpm  done

另外,更多其他软件安装配置步骤,如php、mysql、kafka、fastdfs、elasticsearch、composer各种版本等中间件安装配置图文步骤,公众号Java精选,回复中间件三个汉字,获取所有软件安装步骤。切勿乱回复,否则什么也没有!!!

~阅读全文-人机检测~

微信公众号“Java精选”(w_z90110),专注Java技术干货分享!让你从此路人变大神!回复关键词领取资料:如Mysql、Hadoop、Dubbo、Spring Boot等,免费领取视频教程、资料文档和项目源码。微信搜索小程序“Java精选面试题”,内涵3000+道Java面试题!

涵盖:互联网那些事、算法与数据结构、SpringMVC、Spring boot、Spring Cloud、ElasticSearch、Linux、Mysql、Oracle等

评论

分享:

支付宝

微信