PHP M 打开看不到扩展模块而 phpinfo 可以看到的解决方法
在PHP开发和调试过程中,了解系统配置信息是一个重要的步骤。phpinfo()
函数可以显示所有已安装的扩展模块及其版本信息,在某些情况下,你可能需要查看更详细的配置信息,尤其是在服务器管理工具中无法提供完整信息的情况下,本文将介绍如何通过不同的方法来查看PHP中的扩展模块,并解决MIME类型设置问题。
使用php -m
命令查看所有已安装的扩展模块
在Linux或Unix环境下,你可以使用php -m
命令来列出所有已安装的PHP扩展模块,这个命令会输出所有的PHP扩展名和它们对应的路径。
php -m
这将显示类似以下的内容:
bcmath
bz2
calendar
Core
ctype
curl
date
dom
ereg
filter
ftp
gd
gettext
hash
iconv
imagick
imap
intl
json
ldap
libxml
mbstring
mysqli
mysqlnd
oauth
openssl
pcntl
pcre
PDO
pdo_mysql
pgsql
readline
redis
Reflection
session
SimpleXML
sockets
spl
standard
tokenizer
Xdebug
xmlreader
xmlwriter
xsl
yaml
zip
zlib
使用Web浏览器访问Apache的错误报告页面
如果你已经启用了Apache Web服务器并且启用了错误报告功能(如启用mod_rewrite),你可以在浏览器中输入以下URL来查看错误日志:
http://你的域名/your_directory/php_error.log
在错误日志文件中,你可以找到关于PHP扩展模块的信息,特别是,如果遇到“extension=模块名称.so”这样的记录,这表明该模块已经被正确加载并可用。
使用第三方软件检查扩展模块状态
有许多第三方软件可以帮助你检查PHP扩展模块的状态。PHP-Info 是一款免费且开源的脚本,用于展示PHP环境的各种信息,包括扩展模块,只需将此脚本粘贴到PHP文档头部分,然后按回车即可开始运行。
修改PHP.ini文件进行MIME类型设置
有时,即使扩展模块被正确地加载,但MIME类型仍然不能识别某些文件格式,这时,你需要修改PHP的php.ini
文件中的相关设置,具体操作如下:
- 打开PHP配置文件:通常是位于
/etc/php/<version>/apache2/php.ini
或者/etc/php/<version>/cli/php.ini
。 - 查找
upload_max_filesize
和post_max_size
:这两个参数决定了上传文件的最大大小和POST数据的最大大小,确保这些值大于或等于你尝试上传或处理的文件大小。 - 增加允许的MIME类型:如果某些类型的文件没有被正确识别,你可能需要添加新的MIME类型支持,在
upload_types
数组中,为新类型添加一条记录:upload_types = text/plain,application/pdf,application/msword,application/vnd.openxmlformats-officedocument.wordprocessingml.document,text/html,application/xhtml+xml,text/css,application/javascript,image/jpeg,image/png,image/gif,text/xml,application/xml,application/octet-stream,application/x-shockwave-flash,image/tiff;
检查服务器端的MIME类型配置
服务器端的MIME类型配置也可能影响扩展模块的正确加载,检查Apache或Nginx的配置文件,确保MIME类型指向了正确的扩展模块,对于.pdf
文件,你可能需要确保配置如下:
<FilesMatch "\.(pdf)$"> SetHandler application/x-httpd-php </FilesMatch>
通过以上方法,你应该能够解决PHP M不能看到扩展模块的问题,无论是通过手动配置、使用特定命令还是借助第三方工具,只要仔细查阅和调整相关的设置,就能够顺利解决问题。