首页 > 编程技术 > php

phpmyadmin无法加载mcrypt问题解决方法

发布时间:2016-11-25 17:38

今天在打开phpmyadmin时提示:phpMyAdmin出现无法载入 mcrypt 扩展,请检查PHP配置,下面我来给大家一起来看看无法载入 mcrypt问题解决办法。


你打开phpmyadmin就会提示 :无法载入 mcrypt 扩展,请检查 PHP 配置错误

出现以下几种情况后可能会造成运行phpmyadmin程序 提示“无法载入 mcrypt 扩展,<br />请检查 PHP 配置”的 错误提示


windows解决办法

1、没有正确安装Mysql数据库,在系统服务中Mysql相关的服务没有启动   (请查看正确安装Mysql的方法)

2、在系统的 system32(C:windowssystem32) 目录下缺少 libmcrypt.dll文件,解决方法是找到php目录下的libmcrypt.dll,并将libmcrypt.dll复制到C:windows system32目录中,然后重新启动Web服务。

3、在C:windows目录下的php.ini文件中,没有将“;extension=php_mcrypt.dll”中的前面一个“;”去 掉,所以不能使用相应功能,解决方法是打开php.ini文件

 代码如下 复制代码

找到

;extension=php_mcrypt.dll

改成

extension=php_mcrypt.dll    //去掉前面的;使之生效


linux系统下解决办法

一:无法加载 mcrypt扩展,请检查您的 PHP 配置

 

 代码如下 复制代码

 
sudo  apt-get install libmcrypt4 php5-mcrypt    //安装libmcrypt

  
sudo /etc/init.d/apache2  restart     //重启apache

二:配置文件现在需要一个短语密码


1、用编辑器打开目录phpmyadmin/libraries中的config.default.php文件

2、查找下面这行:$cfg['blowfish_secret'] = ‘这里就是需要的短语密码’;(短语密码请随意填写)

会出现这个问题,是在配置phpmyadmin填写认证方法时,即下面这行:

$cfg['Servers'][$i]['auth_type'] = ‘cookie’;

在此有四种模式可供选择,cookie,http,HTTP,config

config方式即输入phpmyadmin的访问网址即可直接进入,无需输入用户名和密码,是不安全的,不推荐使用。

当该项设置为cookie,http或HTTP时,登录phpmyadmin需要数据用户名和密码进行验证,,具体如下:

PHP安装模式为Apache,可以使用http和cookie;

PHP安装模式为CGI,可以使用cookie

今天买了一个空间发现空间不支持fsockopen函数,后来网上找了几种解决空间不支持fsockopen方法,下面给大家分享一下,希望对各位朋友有所帮助呀。

为了服务器安全考虑很多主机商禁用了php的fsockopen函数,昨天进博客,使用cos-html-cache生成静态文件,尼玛提示:

Warning: fsockopen() has been disabled for security reasons in D:...cos-html-cachecos-html-cache.php on line 35

换了其他版本的cos-html-cache,还是不行。后来找到下面的方法。 = =、(结果不行,因为函数都被禁用了。)

大家试下,很少有我这样的情况的,用其他替代函数。

一、如何禁用fsockopen()

下面是两种常用的禁用fsockopen的方法。

1、修改php.ini,将  disable_functions =   后加入  fsockopen  
2、修改php.ini,将  allow_url_fopen = On   改为  allow_url_fopen = Off  

二、如何解决fsockopen函数被禁用

1、如果服务器没有同时禁用pfsockopen,那么直接将fsockopen函数替换为pfsockopen。
具体操作:搜索程序中的字符串  fsockopen(   替换为  pfsockopen(   。示例如下
修改前:

 代码如下 复制代码

$fp = fsockopen($host, 80, $errno, $errstr, 30);

修改后:
 

$fp = pfsockopen($host, 80, $errno, $errstr, 30);


2、如果服务器同时禁用了pfsockopen,那么用其他函数代替,如stream_socket_client()。注意:stream_socket_client()和fsockopen()的参数不同。
具体操作:搜索程序中的字符串  fsockopen(   替换为  stream_socket_client(   ,然后,将原fsockopen函数中的端口参数“80”删掉,并加到$host。示例如下
修改前:
 

 代码如下 复制代码

$fp = fsockopen($host, 80, $errno, $errstr, 30);

修改后
 

$fp = stream_socket_client($host."80", $errno, $errstr, 30);


3、如果PHP版本低于5.0,fsockopen被禁用,又没有stream_socket_client()怎么办呢?自己写一个函数实现fsockopen的功能,参考代码:

 代码如下 复制代码
 
function b_fsockopen($host, $port, &$errno, &$errstr, $timeout) {
 $ip = gethostbyname($host);
 $s = socket_create(AF_INET, SOCK_STREAM, 0);
 if (socket_set_nonblock($s)) {
  $r = @socket_connect($s, $ip, $port);
  if ($r || socket_last_error() == EINPROGRESS) {
   $errno = EINPROGRESS;
   return $s;
  }
 }
 $errno = socket_last_error($s);
 $errstr = socket_strerror($errno);
 socket_close($s);
 return false;
}

具体操作:

1.首先找到使用fsockopen函数的代码段,将上面代码加至其上端,搜索该代码段中的字符串  fsockopen(   替换为  b_fsockopen(  

2.因为fsockopen函数返回文件指针所以可以被文件函数操作,但是这个b_fsockopen函数没能返回文件指针,需要继续修改代码段:用socket_read(   替换掉  fread(   ,用socket_write(   替换掉fwrite(   ,用socket_close(   替换掉fclose(   。


解决方案二:

fsockopen大多数应用是的获取远程页面数据,对于获取远程页面这种应用,PHP还有其他函数可以完美替代:
 
方法1:

 代码如下 复制代码
<?php
$str = file("http://www.111cn.net");
$count = count($str);
for ($i=0;$i<$count;$i++){
     $file .= $str[$i];
     }
echo $file;
?>

 
 
方法2:

 代码如下 复制代码
<?php
$str = file_get_contents("http://www.111cn.net");
echo $str;
?>
本文章来给大家介绍关于无法启动此程序,因为计算机丢失php_mbstring.dll的解决办法,希望此方法对各位同学有所帮助。

在使用命令行创建Zend FrameWork项目的时候,计算机提醒“无法启动此程序,因为计算机丢失php_mbstring.dll。尝试重新安装该程序以解决问题。”解决这个问题的方法是:

sublime text2 保存php文件提示“无法启动此程序,因为计算机中丢失php_pdo.dll 尝试重新安装该程序以解决此问题”



请教大神这是什么原因

装的插件有
 

      首先,你要确定你的PHP已经包含php_mbstring.dll文件,可以查看php安装目录下的ext文件下是否有此文件,没有请根据php版本下载合适的php_mbstring.dll文件,并放进ext目录下。

      然后,修改php.ini配置。去掉“;extension=php_mbstring.dll”和“;
extension=php_exif.dll”前的分号,并保证php_mbstring.dll在php_exif.dll之前加载,因为加载php_exif.dll需要用到php_mbstring.dll。然后保存php.ini,并重启web服务器。

 

strtotime()函数是php日期函数了,出现这种问题就是我们php.ini中的date.timezone没有设置好,只要配置一下时区即可解决。


php5.1.0开始,php.ini里加入了date.timezone这个选项,默认情况下是关闭的。显示的时间都是格林威治标准时间,和 北京时间差了正好8个小时。

解决方案是:

修改php.ini文件,查找 ;date.timezone = ,把前面的分号去掉在 “=”后面加上时区。

比如:

Asia/Chongqing (重庆),
Asia/Shanghai (上海),
Asia/Urumqi (乌鲁木齐),
Asia/Macao (澳门),
Asia/Hong_Kong (香港),
Asia/Taipei (台北),
PRC 中国

 代码如下 复制代码

date.timezone = PRC

也可以才php中程序页面最前面加

 代码如下 复制代码

<?php
date_default_timezone_set('Asia/Chongqing');
echo date('Y-m-d H:i:s');
?>

相关推荐阅读

php中时间相差8小时的多种解决办法

http://www.111cn.net/phper/31/42398.htm

php 日期时差8小时间解决方法

http://www.111cn.net/phper/31/37224.htm

php获取服务器时间(解决8小时差距问题)

http://www.111cn.net/phper/31/34041.htm

今天刚配置的php环境结果在php启动时无法加载php_mysql.dll、php_mysqli.dll了,这个我配置是没有问题呀,下面我来给大家介绍php_mysql.dll、php_mysqli.dll无法加载解决方法。

今天启动php环境时,发现mysql模块功能不能使用,网站返回500错误。查看了下apache下错误日志。发现下面一段错误信息:

PHP Warning: PHP Startup: Unable to load dynamic library 'D:/wwwserver/php/ext//php_mysql.dll' - /xd5/xd2/xb2/xbb/xb5/xbd/xd6/xb8/xb6/xa8/xb5/xc4/xc4/xa3/xbf/xe9/xa1/xa3/r/n in Unknown on line 0

这说明php没有成功加载php_mysql.dll这个文件

首先要确保php配置文件php.ini中extension_dir值填写正确,最好使用绝对地址。


extension_dir = "D:/wwwserver/php/ext"

如果其他dll加载成功,而php_mysql.dll、php_mysqli.dll加载未成功。

则按下面两种方法解决:

(1)、将php目录下libmysql.dll复制到apache目录下bin子目录中
(2)、apache配置文件httpd.conf 加上下面一段话
LoadFile "D:/wwwserver/php/libmysql.dll"

ps:上面代码LoadFile "D:/wwwserver/php/libmysql.dll" 其中"D:/wwwserver/php/"为php的目录
ps:重启过后还是不行,可能就是版本的问题了,如apache下不要使用vc9版本php。新手就建议下个一键安装包

附另一解决办法


apache下

比如我的apache装在D盘,目录是D:/severs/apache
PHP的目录是D:/servers/php5
这样,把D:/servers/php5/libmysql.dll拷贝到D:/servers/apache/bin这个目录下面
重启apache,问题迎刃而解!~~

iis下:
将php目录下的libmysql.dll复制到c:/windows/system32/目录里面,然后重启iis即可。如果提示正在使用,可以先停止iis(iisreset /stop)即可

当然提示其它dll文件也是一样的解决方法,一般情况下是先检查php目录权限,一般everyone读取,浏览 运行即可。

标签:[!--infotagslink--]

您可能感兴趣的文章: