PHP编译安装后的模块添加安装(比如,MySQL模块,gd模块)

您所在的位置:网站首页 php53下载 PHP编译安装后的模块添加安装(比如,MySQL模块,gd模块)

PHP编译安装后的模块添加安装(比如,MySQL模块,gd模块)

2023-03-27 06:50| 来源: 网络整理| 查看: 265

PHP的模块指的是 php -m 命令所输出的内容。那么,PHP的模块茫茫多,有时候采用源码编译安装源码包的方式安装的php和PHP-fpm,在预编译阶段很多模块就可能有所遗漏或者暂时不方便安装,或者是在安装后有新的需求,需要安装新的模块,这个时候就需要我们再次的将新模块(库)编译到原有的PHP里面了。

(一)实验目标

在刚编译安装完成的PHP5.6.40版本里,添加新的模块gd和mysql,主要原因是在第一次预编译的时候遗漏了gd模块,mysql的PHP连接支持只安装了mysqli,因此,计划再增加gd和mysql两个模块。

(二)解压后的源码安装包的位置和PHP5.6.40所指定的安装位置

源码安装包解压出来的文件夹放置在  /usr/local/src/php-5.6.40/

第一次编译安装后的PHP所在位置在  /usr/local/php/

(三)有哪些模块我们可以增加??

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

在源码包内,我们可以看到,茫茫多的可增加模块,其中有mysql模块和gd模块。

(四)现在已安装的有哪些模块??

[root@centos6 ext]# /usr/local/php/bin/php -m [PHP Modules] bcmath Core ctype curl date dom ereg filter ftp gettext hash iconv json libxml mbstring mhash mysqli mysqlnd openssl pcntl pcre PDO pdo_mysql pdo_sqlite Phar posix Reflection session shmop SimpleXML soap sockets SPL sqlite3 standard sysvsem tokenizer xml xmlreader xmlrpc xmlwriter

可以看到,没有mysql和gd模块,计划可以实施。

(五)开始编译安装新模块(要在源码包内安装)

[root@centos6 ext]# pwd /usr/local/src/php-5.6.40/ext [root@centos6 ext]# cd mysql [root@centos6 mysql]# ls config.m4 config.w32 CREDITS mysql.dsp mysql.mak mysql_mysqlnd.h package.xml php_mysql.c php_mysql.h php_mysql_structs.h tests

可以看到,现在模块内并没有configure脚本,自然无法预编译和编译安装啦。这个不用慌,在新模块的文件夹下,执行一个命令phpize(这个命令是在安装出来的php的bin里面哦)即可,预编译脚本即可出现了。

root@centos6 mysql]# /usr/local/php/bin/phpize Configuring for: PHP Api Version: 20131106 Zend Module Api No: 20131226 Zend Extension Api No: 220131226 [root@centos6 mysql]# ls acinclude.m4 build config.m4 configure.in install-sh missing mysql.mak php_mysql.c run-tests.php aclocal.m4 config.guess config.sub config.w32 ltmain.sh mkinstalldirs mysql_mysqlnd.h php_mysql.h tests autom4te.cache config.h.in configure CREDITS Makefile.global mysql.dsp package.xml php_mysql_structs.h

执行以下命令进行预编译工作:

./configure --with-php-config=/usr/local/php/bin/php-config --with-mysql  (第二小节所说的两个目录十分重要,要牢记哦,新增加模块的时候绝对路径指明一下php-config命令,with要新增的模块名)

[root@centos6 bin]# pwd /usr/local/php/bin [root@centos6 bin]# ls pear peardev pecl phar phar.phar php php-cgi php-config phpize

 

(六)make 和make install

过程就略了,只是需要关注最后的几行:

Build complete. Don't forget to run 'make test'. Installing shared extensions: /usr/local/php/lib/php/extensions/no-debug-zts-20131226/

(七)进入最后提示的目录 

[root@centos6 no-debug-zts-20131226]# pwd /usr/local/php/lib/php/extensions/no-debug-zts-20131226 [root@centos6 no-debug-zts-20131226]# ls bz2.so gd.so mysql.so opcache.a opcache.so

(八)将需要增加的模块名称.so 的绝对路径写入 PHP的配置文件,通常是 /etc/php.ini 这个文件的末尾:

;openssl.capath= ; Local Variables: ; tab-width: 4 ; End: extension=/usr/local/php/lib/php/extensions/no-debug-zts-20131226/gd.so extension=/usr/local/php/lib/php/extensions/no-debug-zts-20131226/mysql.so

像我这样就可以了(只是增加最后两行哦)。

(九)验证模块是否正确安装,同时验证PHP连接mysql是否正常

[root@centos6 ~]# /usr/local/php/bin/php -m | grep gd gd

有输出,证明模块安装成功。

验证PHP和MySQL的连接是否正常:

编写任意一个php文件,将该文件放置在web服务器的发布区,网页访问它即可。

vim testmysql.php

PHP编译安装后的模块添加安装(比如,MySQL模块,gd模块)_mysql



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3