我目前在Windows Server 2008 R2上安装了PHP 5.5.12和Apache 2.4。一切都在完美运行,没有问题/警告。
我所做的是将相同的Apache文件/配置复制到另一台服务器。我复制了C:\PHP
目录,然后复制了C:\Apache24
目录并将它们粘贴到新服务器中。
然后我通过一次更改安装了Apache(即httpd -k install
。)我将端口号从80更改为8877.Apache正在运行,没有问题,它在8877端口上运行。我也可以通过转到SERVER_IP_ADDRESS:8877打开默认页面,它可以工作。
但是,PHP没有按预期工作。在Apache服务器的error.log文件中,我收到了下面列出的警告
PHP Warning: PHP Startup: Unable to load dynamic library 'ext\\php_curl.dll' - The specified module could not be found.\r\n in Unknown on line 0
PHP Warning: PHP Startup: Unable to load dynamic library 'ext\\php_ldap.dll' - The specified module could not be found.\r\n in Unknown on line 0
PHP Warning: PHP Startup: Unable to load dynamic library 'ext\\php_mysql.dll' - The specified module could not be found.\r\n in Unknown on line 0
PHP Warning: PHP Startup: Unable to load dynamic library 'ext\\php_mysqli.dll' - The specified module could not be found.\r\n in Unknown on line 0
PHP Warning: PHP Startup: Unable to load dynamic library 'ext\\php_openssl.dll' - The specified module could not be found.\r\n in Unknown on line 0
PHP Warning: PHP Startup: Unable to load dynamic library 'ext\\php_pdo_mysql.dll' - The specified module could not be found.\r\n in Unknown on line 0
PHP Warning: PHP Startup: Unable to load dynamic library 'ext\\php_sqlsrv_55_ts.dll' - The specified module could not be found.\r\n in Unknown on line 0
PHP Warning: PHP Startup: Unable to load dynamic library 'ext\\php_pdo_sqlsrv_55_ts.dll' - The specified module could not be found.\r\n in Unknown on line 0
我似乎无法弄清楚为什么会出现此错误?警告声明“无法找到指定的模块”的所有.dll文件确实存在于C:\ PHP \ ext directoryphp
中PHP扩展位于
C:\php\ext
在php.ini文件中我有这个变量
extension_dir = "ext"
这是ext文件夹的目录列表
Volume in drive C is OS
Volume Serial Number is C63C-1D75
Directory of C:\php\ext
07/29/2014 06:42 PM <DIR> .
07/29/2014 06:42 PM <DIR> ..
04/30/2014 02:46 PM 66,560 php_bz2.dll
04/30/2014 02:46 PM 72,704 php_com_dotnet.dll
04/30/2014 02:46 PM 507,392 php_curl.dll
04/30/2014 02:46 PM 18,944 php_enchant.dll
04/30/2014 02:46 PM 43,008 php_exif.dll
04/30/2014 02:46 PM 2,679,808 php_fileinfo.dll
04/30/2014 02:46 PM 1,358,848 php_gd2.dll
04/30/2014 02:46 PM 40,960 php_gettext.dll
04/30/2014 02:46 PM 240,128 php_gmp.dll
04/30/2014 02:46 PM 831,488 php_imap.dll
04/30/2014 02:46 PM 65,024 php_interbase.dll
04/30/2014 02:46 PM 261,632 php_intl.dll
04/30/2014 02:46 PM 179,200 php_ldap.dll
04/30/2014 02:46 PM 1,239,552 php_mbstring.dll
04/30/2014 02:46 PM 36,864 php_mysql.dll
04/30/2014 02:46 PM 88,576 php_mysqli.dll
04/30/2014 02:46 PM 141,824 php_oci8.dll
04/30/2014 02:46 PM 142,336 php_oci8_11g.dll
04/30/2014 02:46 PM 120,320 php_opcache.dll
04/30/2014 02:46 PM 72,704 php_openssl.dll
04/30/2014 02:46 PM 21,504 php_pdo_firebird.dll
04/30/2014 02:46 PM 24,576 php_pdo_mysql.dll
04/30/2014 02:46 PM 23,040 php_pdo_oci.dll
04/30/2014 02:46 PM 20,480 php_pdo_odbc.dll
04/30/2014 02:46 PM 27,648 php_pdo_pgsql.dll
04/30/2014 02:46 PM 465,408 php_pdo_sqlite.dll
08/28/2012 04:15 PM 186,520 php_pdo_sqlsrv_54_ts.dll
06/26/2013 03:22 PM 166,400 php_pdo_sqlsrv_55_ts.dll
04/30/2014 02:46 PM 90,112 php_pgsql.dll
04/30/2014 02:46 PM 12,288 php_shmop.dll
04/30/2014 02:46 PM 385,536 php_snmp.dll
04/30/2014 02:46 PM 236,544 php_soap.dll
04/30/2014 02:46 PM 54,784 php_sockets.dll
04/30/2014 02:46 PM 617,472 php_sqlite3.dll
08/28/2012 04:15 PM 204,952 php_sqlsrv_54_ts.dll
06/26/2013 03:22 PM 183,296 php_sqlsrv_55_ts.dll
04/30/2014 02:46 PM 31,744 php_sybase_ct.dll
04/30/2014 02:46 PM 236,544 php_tidy.dll
04/30/2014 02:46 PM 51,712 php_xmlrpc.dll
04/30/2014 02:46 PM 231,936 php_xsl.dll
40 File(s) 11,480,368 bytes
2 Dir(s) 83,103,895,552 bytes free
当我尝试访问该网站时,我收到此错误
致命错误:未定义的类常量'MYSQL_ATTR_INIT_COMMAND'
这是因为未加载扩展名。
我假设配置正确,因为相同的配置在不同的服务器上运行。
如何修复此PHP启动问题?
答案 0 :(得分:36)
就像@Darren在评论中所说,Apache不了解Windows系统中的php.ini
相对路径。
在PHP手册中,我们有一个如何安装Apache 2.x on Microsoft Windows。其中一个comments建议使用绝对路径。
因此,请尝试将php.ini
中的相对路径更改为绝对路径。
extension_dir="C:\full\path\to\php\ext"
答案 1 :(得分:4)
使用绝对路径:
extension_dir="C:\full\path\here"
答案 2 :(得分:1)
没有及时使用:
dir /x
购买或购买 nome reduzido 进行“程序文件(x86)”
27/08/2018 15:07 <DIR> PROGRA~2 Program Files (x86)
使用颜色配置 php.ini ,
extension_dir="C:\PROGRA~2\path\to\php\ext"
问题解决之道。
佐罗
答案 3 :(得分:0)
也许对某人有用,我在Windows 8,Apache 2.4,PHP 7+上遇到了下一个问题。
php.ini conf>
extension_dir="C:/Server/PHP7/ext"
Apache上的php可以正常运行,但是在libs加载的cli问题上,结果我更改为
extension_dir="C:/server/PHP7/ext"
答案 4 :(得分:0)
我在Windows10,Apache 2.2.25,PHP 5.2中遇到相同的问题 我正在尝试将GD添加到可以正常工作的PHP中。
我如何转弯并在正斜杠和后斜杠之间切换,加上或不加上尾部,我得到了;的一些变体
PHP警告:PHP启动:无法加载动态库'C:/ php \ php_gd2.dll'-Det g \ xe5r inte at hitta den angivna modulen。\ r \ n在未知的第0行上
(瑞典语翻译:“无法找到该模块”)
在这种情况下,php.ini为:extension_dir =“ C:/ php”
dll放在两个位置C:\ php和C:\ php \ ext
错误日志条目中是否可能有“错误”? 即发现.dll是(作为文件)但格式不正确,或者 那样的东西??
答案 5 :(得分:0)
西班牙文
Si estas usando laragon abre el php.ini
菜单栏菜单-> php-> php.ini
cuando abra el archivo busca ; extension_dir =“ ./"
crea otro sin ; 路径转换版本 ext ejemplo
extension_dir = "C:\laragon\bin\php\php-7.3.11-Win32-VC15-x64\ext"
al cambiarloguárdalo
英语
如果您使用的是laragon,请打开php.ini
在laragon菜单中-> php-> php.ini
打开文件时,查找; extension_dir =“ ./"
创建另一个没有**的对象; **例如,将您的php版本的路径添加到文件夹ext **
extension_dir = "C: \ laragon \ bin \ php \ php-7.3.11-Win32-VC15-x64 \ ext"
更改并保存
答案 6 :(得分:0)
php\php.ini
中设置您的可加载php扩展路径(例如extension_dir = "C:\php\ext"
)
(https://drive.google.com/open?id=1DDZd06SLHSmoFrdmWkmZuXt4DMOPIi_A)php\php.ini
中)检查extension=php_mysqli.dll
是否未注释
(https://drive.google.com/open?id=17DUt1oECwOdol8K5GaW3tdPWlVRSYfQ9)"C:\php"
)和 php \ ext 文件夹(例如"C:\php\ext"
)设置为您的运行时环境变量路径
(https://drive.google.com/open?id=1zCRRjh1Jem_LymGsgMmYxFc8Z9dUamKK)