繁体   English   中英

MAMP和DigitalOcean LAMP Ubuntu 14.04服务器之间的区别弄乱了Joomla自定义表单字段

[英]Difference between MAMP and DigitalOcean LAMP Ubuntu 14.04 server messing up Joomla Custom Form Field

我在Joomla 2.5网站上编写了一个自定义表单字段。

我的表单字段从数据库表中选择一个ID值和标记名,并允许您选择多个复选框。 很简单

我的问题是该代码在我的开发服务器(MAMP,标准设置)上可以正常工作,但在DigitalOcean Ubuntu 14.04 VPS上却无法工作。

MAMP

MAMP(上方)

VS

DigitalOcean(下)

数字海洋

是的,我在这里寻找想法。 我的主要思想是在PHP设置的“禁用的功能”中。

MAMP没有禁用的功能,Digital Ocean具有以下功能:

禁用的功能pcntl_alarm,pcntl_fork,pcntl_waitpid,pcntl_wait,pcntl_wifexited,pcntl_wifstopped,pcntl_wifsignaled,pcntl_wexitstatus,pcntl_wtermsig,pcntl_wstopsig,pcntl_signal,pcntl_signal_dispatch,pcntl_get_last_error,pcntl_strerror,pcntl_sigprocmask,pcntl_sigwaitinfo,pcntl_sigtimedwait,pcntl_exec,pcntl_getpriority,pcntl_setpriority,

有任何想法吗?

更新:我评论了禁用的功能片刻,重新启动服务器。 出现了一些有趣的不同控制台错误,但是并不能解决问题。 还有其他建议吗?

更新2:通过将文件名更改为生产服务器上的所有小写字母来解决。 下面的答案显示了详细信息。

当Joomla找不到自定义表单字段定义时,可能会发生这种情况-在这种情况下,它会还原为标准文本input元素。

根据您将网站从MAMP设置转移到实时Ubuntu VPS的方式,您可能会丢失文件。

如果您遵循Joomla标准的自定义表单字段,则应具有以下内容:

/components/com_mycomponent/models/fields/mycomponentmultitags.php

我将检查您的自定义字段文件在VPS上是否存在,并且其权限设置是否正确(644应该这样做)。

更新

关于问题的原因(即文件名大小写)。 因此,文件系统区分大小写,有些则不区分大小写,有些则区分大小写(即显示大小写),但不区分大小写。 我应该选择在MAMP(即Mac)上运行,OSX在HFS +上运行。 默认情况下,HFS +不区分大小写,但保留大小写。 因此,调用文件的所有小写名称将在MAMP上有效,但在Ubuntu上则无效(因为 区分大小写

在这种情况下,您又回到了Joomla(又名PHP)找不到自定义表单字段定义的事实(又名CategoryCheckBoxes.php文件,因为它正在寻找categorycheckboxes.php

好的,所以我可以使用它,但是我不喜欢不知道它为什么起作用。

同样,它适用于开发(MAMP),但不适用于我的生产VPS(标准Ubuntu 14.04 LAMP Apache2)

我变了:

管理员/组件/ com_mycomponent /模型/场/ CategoryCheckBoxes.php

至:

管理员/组件/ com_mycomponent /模型/场/ categorycheckboxes.php

是的,我将文件名全部小写,它像一个超级小符一样工作。 这就是我改变的一切。 有谁知道为什么会发生这种情况,以及为什么服务器类型会有所不同?

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM