设为首页 收藏本站
查看: 1646|回复: 0

[经验分享] 记2013年5月17日,php部分模块加载失败案例

[复制链接]
累计签到:1 天
连续签到:1 天
发表于 2018-12-22 07:21:17 | 显示全部楼层 |阅读模式
  公元2013年5月17日,星期五。今天是个普通的日子,但对于我而言,这一天似乎充满着劫难。算了,不白话了,直接上苦情剧吧!
  今天部署测试服务平台,基于PHP网站的服务器架构。
  平台搭建
  平台软件:appserv-win32-2.5.9_PConline(朋友给的)
  该软件的特点就是安装完成之后,PHP,MySQL,Apache服务就全有了,而且基本不用过多配置,装完之后就可以满足一般的需求。
  文件默认路径部署情况

  php页面测试结果

  但问题出现了,所有的平台软件都并不是那么的尽善尽美,并不会100%的符合我们的应用需求,总有些地方是需要我们去手动修改的,比如模块之类的。
  笔者目前的方向并不是PHP,但目前笔者的很多朋友都在使用PHP,而且大家貌似都比较信任我(或许他们也太不认识其他人了吧(*^__^*) ),所以都向我咨询,而且吧,我的虚荣心又比较强,唉,没办法,每次遇到问题又着实头特,但为了虚荣也只能硬着头皮弄了,实在解决不了,就只能向高手求救!再次特别致谢ISA兄弟(不知道你是男的还是女的,先叫兄弟吧)给了我好多帮助和链接。好了,感恩到此,可以感动的流泪了!T_T
  网站部署
  感动结束,流泪止泣!继续说问题:
  平台装好了,设置一下系统环境变量,然后开始部署网站。

  网站是基于模版架构形式的,安装过程类似于软件安装一样
  第一步,同意协议
  第二步,配置参数
  第三步,配置数据库
  第四部,配置用户
  第五步,完成。
  第一步顺利通过,因为不同意就没有后文了!(T_T这就是现实啊!)
  爷们儿卡死在第二步,配置参数
  当网站部署进行到第二步的时候,系统提示mcrypt,curl模块未加载

  此时有点小纠结,不过也有点轻敌,以为加载了就完事儿了。索性使用regsvr32命令,但不幸的弹窗又出现了。(如图)
  已加载php_curl.dll,但没有找到DllRegisterServer输入点。
  无法注册这个文件。

  坑爹啊,加载完了,不能注册?(有点哭笑不得!)这下踏实了,确实不知道该咋整了!
  唉,上网搜搜再说吧
  搜了一堆资料,都说打开php.ini文件
  找到   
;extension=php_mcrypt.dll   
改成   
extension=php_mcrypt.dll //去掉前面的;使之生效   
然后复制libmcrypt.dll,php_mcrypt.dll到system32目录下。
  这是解决mcrypt模块加载的方法,试了试,貌似不管什么用,也怪我懒点,脑子活点,心想“不就是取消注释嘛,那我把注释全都取消,不就得了?”,于是我就这么干了,还别说,真管用,mcrypt终于加载了!
  但悲剧又来了,mcrypt是加载了,但点击下一步,系统提示curl还没加载呢,苍天,这可肿么办?

  于是又到网上搜资料,把php_curl.dll放到了system32,果断通过!(话说,我系统变量都设置好了,为啥就没起效果呢?)
  看看系统页面,都有了!

   

  信心满满的进入第三步,果断再次受伤!
  数据库提示“必须加载pdo_mysql”
  PHP Extensions "pdo_mysql" must be loaded.

  唉,部署个网站容易嘛~~
  继续搜索,网上说的跟之前的内容一样,需要取消注释,并且把php_mysql.dll,php_pdo_mysql.dll,php_pdo.dll复制到system32下,苍天呐,我崩溃了!取消注释,我全做完了,现在不就是动态链接库文件嘛!一不做二不休,我直接把php\ext目录下的所有动态文件都拷贝到了system32下,丫的,缺少自己找吧!
  同时,为了省事儿,我把httpd.conf文件里的LoadModule全都解禁了!然后重启服务器,接着,悲剧再次上演!
  Apache服务都起不来啦!T_T

  进服务启动Apache,提示服务启动失败 错误1067(崩溃!)

  查看日志服务器

  看到这个日志,一头雾水,嘛意思?咋解决?
  想查看为什么报错,去网上搜了一下,需要一个php-errors.log的日志文件,这样可以查看到报错的原因。挨个搜了一遍,貌似没有啊!于是打开php.ini文件,发现,确实没有,算了,自己配置一个吧。
  设置php-errors.log文件
  ; Log errors into a log file (server-specific log, stderr, or error_log (below))   
; As stated above, you're strongly advised to use error logging in place of   
; error displaying on production web sites.   
log_errors = On
(在第316~319行处开启错误日志功能)  ;error_log = filename   
error_log= "C:\AppServ\php5\php-errors.log"
  (在第364行处,有这个提示信息。)
  此时保存文件,再次启动Apache服务,依然报错!
  进入C:\AppServ\php5\php-errors.log,查看错误日志,哇哦~~神奇的一刻出现了耶!
  查询php-errors.log
  [17-May-2013 14:15:18] PHP Warning:  PHP Startup: Unable to load dynamic library 'C:/AppServ\php5\ext\php_fdf.dll' - 找不到指定的模块。   
in Unknown on line 0   
[17-May-2013 14:15:18] PHP Warning:  PHP Startup: Unable to load dynamic library 'C:/AppServ\php5\ext\php_filepro.dll' - 找不到指定的模块。   
in Unknown on line 0   
[17-May-2013 14:15:18] PHP Warning:  PHP Startup: Unable to load dynamic library 'C:/AppServ\php5\ext\php_ifx.dll' - 找不到指定的模块。   
in Unknown on line 0   
[17-May-2013 14:15:18] PHP Warning:  PHP Startup: Unable to load dynamic library 'C:/AppServ\php5\ext\php_interbase.dll' - 找不到指定的模块。   
in Unknown on line 0   
[17-May-2013 14:15:18] PHP Warning:  Module 'mbstring' already loaded in Unknown on line 0   
[17-May-2013 14:15:18] PHP Warning:  PHP Startup: Unable to load dynamic library 'C:/AppServ\php5\ext\php_mhash.dll' - 找不到指定的模块。   
in Unknown on line 0   
[17-May-2013 14:15:18] PHP Warning:  PHP Startup: Unable to load dynamic library 'C:/AppServ\php5\ext\php_mssql.dll' - 找不到指定的模块。   
in Unknown on line 0   
[17-May-2013 14:15:18] PHP Warning:  PHP Startup: Unable to load dynamic library 'C:/AppServ\php5\ext\php_msql.dll' - 找不到指定的模块。   
in Unknown on line 0   
[17-May-2013 14:15:18] PHP Warning:  PHP Startup: Unable to load dynamic library 'C:/AppServ\php5\ext\php_oracle.dll' - 找不到指定的模块。   
in Unknown on line 0
[17-May-2013 16:33:17] PHP Warning:  PHP Startup: Unable to load dynamic library 'C:/AppServ\php5\ext\php_sybase_ct.dll' - 找不到指定的模块。  
in Unknown on line 0  通过查询日志,我们得知,Apache启动失败的原因是由于部分模块找不到。
  那么此时,我打开php.ini文件,将以上找不到指定的模块都注释掉。(这就是全部取消注释,偷懒所付出的代价啊!)
  extension=php_mbstring.dll   /*该内容重复,可删除其一或注释*/     
extension=php_bz2.dll      
extension=php_curl.dll      
extension=php_dba.dll      
extension=php_dbase.dll      
extension=php_exif.dll      
;extension=php_fdf.dll           /*注释掉*/      
;extension=php_filepro.dll     /*注释掉*/      
extension=php_gd2.dll      
extension=php_gettext.dll      
;extension=php_ifx.dll             /*注释掉*/      
extension=php_imap.dll      
;extension=php_interbase.dll      /*注释掉*/      
extension=php_ldap.dll      
;extension=php_mbstring.dll    /*该内容重复,可删除其一或注释*/      
extension=php_mcrypt.dll      
extension=php_mhash.dll      
extension=php_mime_magic.dll      
extension=php_ming.dll      
;extension=php_mssql.dll      
;extension=php_msql.dll      
extension=php_mysql.dll      
extension=php_mysqli.dll      
extension=php_oci8.dll      
extension=php_openssl.dll      
;extension=php_oracle.dll      
extension=php_pgsql.dll      
extension=php_shmop.dll      
extension=php_snmp.dll      
extension=php_sockets.dll      
extension=php_sqlite.dll      
;extension=php_sybase_ct.dll      
extension=php_tidy.dll      
extension=php_xmlrpc.dll      
extension=php_xsl.dll      
extension=php_pdo.dll      
extension=php_pdo_sqlite.dll      
extension=php_winbinder.dll
  ;extension=php_mbstring.dll 内容重复,如果都打开会报如下错误:(这是偷懒获得的意外收获啊!o(∩_∩)o 嘎嘎~~)
  [17-May-2013 14:45:20] PHP Warning:  Module 'mbstring' already loaded in Unknown on line 0
  当屡次报错后,我崩溃了!查看apache的错误日志
  [Fri May 17 16:42:40 2013] [notice] Digest: generating secret for digest authentication ...   
[Fri May 17 16:42:40 2013] [notice] Digest: done
  网络上给出的解决方法有两个:
  1.复制php5ts.dll到apaceh的bin目录下或者系统目录下c:\windows\system32后,重启系统。
  2.php目录下的libmysql.dll拷贝到到系统目录system32下。
  正当我崩溃之时,受高人指点(感谢:运维网-赵云),我把php.ini里加载的模块又都重新注释掉,然后启动apache服务,成功
  重新编辑php.ini,如下
  ;extension=php_mbstring.dll   
;extension=php_bz2.dll   
extension=php_curl.dll   
;extension=php_dba.dll   
;extension=php_dbase.dll   
;extension=php_exif.dll   
;extension=php_fdf.dll   
;extension=php_filepro.dll   
extension=php_gd2.dll   
;extension=php_gettext.dll   
;extension=php_ifx.dll   
;extension=php_imap.dll   
;extension=php_interbase.dll   
;extension=php_ldap.dll   
;extension=php_mbstring.dll   
extension=php_mcrypt.dll   
;extension=php_mhash.dll   
;extension=php_mime_magic.dll   
;extension=php_ming.dll   
;extension=php_mssql.dll   
;extension=php_msql.dll   
extension=php_mysql.dll   
extension=php_mysqli.dll   
;extension=php_oci8.dll   
;extension=php_openssl.dll   
;extension=php_oracle.dll   
;extension=php_pgsql.dll   
;extension=php_shmop.dll   
;extension=php_snmp.dll   
;extension=php_sockets.dll   
;extension=php_sqlite.dll   
;extension=php_sybase_ct.dll   
;extension=php_tidy.dll   
;extension=php_xmlrpc.dll   
;extension=php_xsl.dll   
extension=php_pdo.dll   
extension=php_pdo_sqlite.dll   
extension=php_pdo_mysql   
;extension=php_winbinder.dll
  OK!
  万事俱备,继续走流程,好不容易把数据库模块也弄齐了,弹框提示
  Database server does not support the InnoDB storage engine.   
数据库服务器不支持InnoDB存储引擎。   
崩溃了?!悲剧再次

  继续搜索咨询,(感谢:踏雪有痕,紫光矩阵提供技术支持和灵感)
  查询phpmyadmin,发现确实不支持InnoDB

  果断开启InnoDB
  编辑my.ini文件,
  注释掉#skip-innodb
  命令查看

  phpmyadmin





运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-654175-1-1.html 上篇帖子: PHP实现加权随机数(Weighted Random sampling)的生成算法 下篇帖子: 如何用PHP判断数据库中的记录是否存在
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表