扩展模块 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动态扩展模块的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 传音发布折叠屏手机Phantom V F
- 下一篇: 开放原子开源基金会开源安全委员会新增多家