我正在尝试在共享主机上安装和运行 CakePHP 3.0 项目。
但是,CakePHP 3.0 需要php-intl
扩展,但托管服务提供商拒绝我在共享主机上安装/启用intl
扩展。
如何在没有扩展名的情况下运行 CakePHP 3.0 intl
?
有没有办法在 CakePHP 中禁用它?或者我可以使用任何替代方案吗?
我遇到了一个大麻烦。请帮忙...
如果安装php_intl仍有问题,请尝试下一个插件:https://github.com/hraq/cake-intl
这不会提供任何 intl 功能,但允许您在由于某种原因无法使用php_intl的服务器中使用 Cake。
在 XAMPP 和 WAMP 中,mcrypt 和 mbstring 扩展默认都可以工作。
在 XAMPP 中,包含 intl 扩展,但您必须在 php 中取消注释 extension=php_intl.dll.ini并通过 XAMPP 控制面板重新启动服务器。
在 WAMP 中,intl 扩展默认处于"激活"状态,但不起作用。要使其正常工作,您必须转到php文件夹(默认情况下)C:''wamp''bin''php''php{version},复制所有看起来像icu*的文件.dll并将它们粘贴到apache bin目录C:''wamp''bin''apache''apache{version}''bin。然后重新启动所有服务,它应该没问题。
http://book.cakephp.org/3.0/en/installation.html#requirements
您有三个选择:
1). 不要使用 CakePHP。
2). 不要使用该主机。
3). 编写一个兼容性类,涵盖以符合主机限制的方式使用的php-intl
的所有方面。
这仅仅是因为您的主机不支持它尚不支持的内容。您可以打电话给他们并礼貌地要求他们允许您使用该分机 - 但他们不太可能为您提供解决方案。
因此,如果没有该扩展,您将无法使用Cake-PHP - 唯一的其他选择是编写自己的兼容类 - 由于这将是一个巨大的PITA - 我只包括它以强调您应该只考虑其他两个选项。
CakePHP 3 没有它就不起作用,需要 Intl 扩展,请查看食谱:http://book.cakephp.org/3.0/en/installation.html#requirements
是的,你需要 INTL 来运行 cakephp 3。
您可以尝试以下操作:
http://coolestguidesontheplanet.com/upgrade-to-php-5-4-or-5-5-mac-osx-10-8-mountain-lion/
然后更改 php.ini 中的路径,例如
extension_dir = "/usr/local/php5-5.4.32-20140828-070730/lib/php/extensions/no-debug-non-zts-20100525"
扩展名 = mcrypt.so
扩展名 = intl.so
只需打开php.ini文件并查看此行下方的周围:[扩展列表]
您必须看到此行:extension=php_intl.dll.如果没有,请将其添加到:)
如果您有Bitnami mamp映像(适用于Mac OS),请在php中取消注释php_intl.so行.ini而不是php_intl.dll
解决方案
- 打开/xampp/php/php.ini
- 将 ;extension=php_intl.dll 更改为 extension=php_intl.dll(删除分号)
- 运行作曲家更新