日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > php >内容正文

php

扩展模块 php.ini_php相关的配置,PHP动态扩展模块

發布時間:2023/12/15 php 34 豆豆
生活随笔 收集整理的這篇文章主要介紹了 扩展模块 php.ini_php相关的配置,PHP动态扩展模块 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

這篇文章介紹的內容是關于php相關的配置,PHP動態擴展模塊,有著一定的參考價值,現在分享給大家,有需要的朋友可以參考一下

PHP的相關配置

查看PHP配置文件的位置[root@shuai-01 111.com]# /usr/local/php/bin/php -i

或者用phpinfo函數去找(通過瀏覽器訪問)(推薦)[root@shuai-01 111.com]# vim index.php

phpinfo();

?>

這時用瀏覽器訪問就什么都出來了

配置文件所在目錄,加載配置文件

如果配置文件沒有加載就去源碼包配置文件里復制配置文件[root@abc php-5.6.30]# cp /usr/local/src/php-5.6.30/php.ini-development /usr/local/php/etc/php.ini

重新加載配置文件

[root@abc php-5.6.30]# /usr/local/apache2.4/bin/apachectl graceful

這里配置文件有兩個(一個是開發的,一個是生產環境的)

修改PHP配置文件:vim /usr/local/php/etc/php.ini

危險函數:(還包含phpinfo,phpinfo會將你所有的信息都展現出來,就很危險)eval,assert,popen,passthru,escapeshellarg,escapeshellcmd,passthru,exec,system,chroot,scandir,chgrp,chown,escapeshellcmd,escapeshellarg,shell_exec,proc_get_status,ini_alter,ini_restore,dl,pfsockopen,openlog,syslog,readlink,symlink,leak,popepassthru,stream_socket_server,popen,proc_open,proc_close

對于危險函數,我們可以把它禁掉。

禁掉函數:

搜索 disable_functions

把禁用函數加進去

disable_functions =eval,assert,popen,passthru,escapeshellarg,escapeshellcmd,passthru,exec,system,chroot,scandir,chgrp,chown,escapeshellcmd,escapeshellarg,shell_exec,proc_get_status,ini_alter,ini_restore,dl,pfsockopen,openlog,syslog,readlink,symlink,leak,popepassthru,stream_socket_server,popen,proc_open,proc_close,phpinfo

這時測試:

訪問111.com/index.php

PHP動態擴展模塊

當有業務需求要用到php在編譯安裝時沒有安裝的模塊,可以使用動態擴展的方式來安裝所需要的模塊。

現在介紹一下redis的安裝,redis是一個nosql,在LAMP架構下一般把它當做緩存來使用。

要安裝redis模塊就要先下載redis這個包

下載地址:

https://codeload.github.com/phpredis/phpredis/zip/develop[root@shuai-01 src]# wget https://codeload.github.com/phpredis/phpredis/zip/develop

改名為phpredis-develop.zip:[root@shuai-01 src]# mv develop phpredis-develop.zip

解壓這個包:[root@shuai-01 src]# unzip phpredis-develop.zip

到phpredis-develo目錄下進行編譯安裝:[root@shuai-01 src]# cd phpredis-develop

[root@shuai-01 phpredis-develop]# ls

arrays.markdown ISSUE_TEMPLATE.md redis_array_impl.h

cluster_library.c liblzf redis.c

cluster_library.h library.c redis_cluster.c

cluster.markdown library.h redis_cluster.h

common.h mkdeb-apache2.sh redis_commands.c

config.m4 mkdeb.sh redis_commands.h

config.w32 package.xml redis_session.c

COPYING php_redis.h redis_session.h

crc16.h README.markdown rpm

CREDITS redis_array.c serialize.list

debian redis_array.h tests

debian.control redis_array_impl.c

編譯安裝是要有configure文件的,這個沒有,就要先生成configure文件:

生成configure文件:[root@shuai-01 phpredis-develop]# /usr/local/php/bin/phpize

Configuring for:

PHP Api Version: 20131106

Zend Module Api No: 20131226

Zend Extension Api No: 220131226

[root@shuai-01 phpredis-develop]# ls

acinclude.m4 crc16.h README.markdown

aclocal.m4 CREDITS redis_array.c

arrays.markdown debian redis_array.h

autom4te.cache debian.control redis_array_impl.c

build install-sh redis_array_impl.h

cluster_library.c ISSUE_TEMPLATE.md redis.c

cluster_library.h liblzf redis_cluster.c

cluster.markdown library.c redis_cluster.h

common.h library.h redis_commands.c

config.guess ltmain.sh redis_commands.h

config.h.in Makefile.global redis_session.c

config.m4 missing redis_session.h

config.sub mkdeb-apache2.sh rpm

configure mkdeb.sh run-tests.php

configure.in mkinstalldirs serialize.list

config.w32 package.xml tests

COPYING php_redis.h

編譯:[root@shuai-01 phpredis-develop]# ./configure --with-php-config=/usr/local/php/bin/php-config

[root@shuai-01 phpredis-develop]# echo $?

0

make:[root@shuai-01 phpredis-develop]# make

[root@shuai-01 phpredis-develop]# echo $?

0

make install:[root@shuai-01 phpredis-develop]# make install

Installing shared extensions: /usr/local/php/lib/php/extensions/no-debug-zts-20131226/

[root@shuai-01 phpredis-develop]# echo $?

0

查看有沒有生成redis.so文件:[root@shuai-01 phpredis-develop]# ls /usr/local/php/lib/php/extensions/no-debug-zts-20131226/

opcache.so redis.so

這個時候PHP還是不支持的[root@shuai-01 phpredis-develop]# /usr/local/php/bin/php -m |grep redis

[root@shuai-01 phpredis-develop]#

通過編輯配置文件在PHP中加載redis

先找擴展模塊的目錄路徑:[root@shuai-01 phpredis-develop]# /usr/local/php/bin/php -i |grep -i extension_dir

extension_dir => /usr/local/php/lib/php/extensions/no-debug-zts-20131226 => /usr/local/php/lib/php/extensions/no-debug-zts-20131226

sqlite3.extension_dir => no value => no value

發現在/usr/local/php/lib/php/extensions/no-debug-zts-20131226

這個extension_dir是可以自定義路徑的,不過一般不會去定義它,安裝的擴展模塊會默認放在個目錄下

編輯php.ini:[root@shuai-01 phpredis-develop]# vim /usr/local/php/etc/php.ini

將redis.so文件加入進去;extension=php_xmlrpc.dll

;extension=php_xsl.dll

extension=redis.so

保存退出

這時就加載了:[root@shuai-01 phpredis-develop]# /usr/local/php/bin/php -m |grep redis

redis

問題1:

生成configure文件時出現:[root@shuai-01 phpredis-develop]# /usr/local/php/bin/phpize

Configuring for:

PHP Api Version: 20131106

Zend Module Api No: 20131226

Zend Extension Api No: 220131226

Cannot find autoconf. Please check your autoconf installation and the

$PHP_AUTOCONF environment variable. Then, rerun this script.

少了autoconf這個包

安裝:[root@shuai-01 phpredis-develop]# yum install -y autoconf

安裝完了之后再生成文件。

有些第三方擴展模塊是要通過下載源碼包來安裝,有些模塊是PHP源碼包中自帶的(在ext目錄下)。[root@shuai-01 php-5.6.30]# cd ext/

[root@shuai-01 ext]# ls

bcmath ftp mysqli pgsql standard

bz2 gd mysqlnd phar sybase_ct

calendar gettext oci8 posix sysvmsg

com_dotnet gmp odbc pspell sysvsem

ctype hash opcache readline sysvshm

curl iconv openssl recode tidy

date imap pcntl reflection tokenizer

dba interbase pcre session wddx

dom intl pdo shmop xml

enchant json pdo_dblib simplexml xmlreader

ereg ldap pdo_firebird skeleton xmlrpc

exif libxml pdo_mysql snmp xmlwriter

ext_skel mbstring pdo_oci soap xsl

ext_skel_win32.php mcrypt pdo_odbc sockets zip

fileinfo mssql pdo_pgsql spl zlib

filter mysql pdo_sqlite sqlite3

如果想安裝里面的模塊,直接進入模塊目錄下,執行phpize進行生成configure文件。

例如我現在要安裝zip模塊:

進入zip目錄:[root@shuai-01 ext]# cd zip/

[root@shuai-01 zip]# ls

config.m4 CREDITS lib php_zip.c tests zip_stream.c

config.w32 examples LICENSE_libzip php_zip.h TODO

生成configure文件:[root@shuai-01 zip]# /usr/local/php/bin/phpize

Configuring for:

PHP Api Version: 20131106

Zend Module Api No: 20131226

Zend Extension Api No: 220131226

編譯安裝:[root@shuai-01 zip]# ./configure --with-php-config=/usr/local/php/bin/php-config

[root@shuai-01 zip]# echo $?

0

make:[root@shuai-01 zip]# make

[root@shuai-01 zip]# echo $?

0

make install:[root@shuai-01 zip]# make install

Installing shared extensions: /usr/local/php/lib/php/extensions/no-debug-zts-20131226/

查看有沒有生成redis.so文件[root@shuai-01 zip]# ls /usr/local/php/lib/php/extensions/no-debug-zts-20131226/

opcache.so redis.so zip.so

這個時候PHP還是不支持的[root@shuai-01 zip]# /usr/local/php/bin/php -m |grep zip

[root@shuai-01 zip]#

編輯php.ini:[root@shuai-01 phpredis-develop]# vim /usr/local/php/etc/php.ini

將zip.so文件加入進去;extension=php_xsl.dll

extension=redis.so

extension=zip.so

保存退出

這時就加載了:[root@shuai-01 zip]# /usr/local/php/bin/php -m |grep zip

zip

擴展

apache rewrite教程 http://coffeelet.blog.163.com/blog/static/13515745320115842755199/ http://www.cnblogs.com/top5/archive/2009/08/12/1544098.html

apache rewrite 出現死循環 http://ask.apelearn.com/question/1043

php錯誤日志級別參考 http://ask.apelearn.com/question/6973

php開啟短標簽 http://ask.apelearn.com/question/120

php.ini詳解 http://legolas.blog.51cto.com/2682485/493917

相關推薦:

總結

以上是生活随笔為你收集整理的扩展模块 php.ini_php相关的配置,PHP动态扩展模块的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。