我有一个开发环境和一个测试环境,它们(表面上)设置相同,但在开发服务器上运行的代码在测试服务器上无法运行。我把范围缩小到了 memcached。开发环境使用 memcached,运行良好;但在应用程序配置文件中使用 memcached 驱动程序的测试服务器上没有会话存储。如果我将测试服务器更改为使用 Laravel 的本机文件驱动程序,所有基于会话的代码都可以正常工作;将其改回使用 memcached,会话数据将不会持久保存。代码是相同的;两个环境都是从同一个提交的同一个存储库克隆的。phpinfo()
除了在不同服务器上运行脚本时服务器 URL 和引用路径的差异外,两个环境中的输出几乎相同。似乎 memcached 没有在测试服务器上运行/工作,而且我对它的工作原理不够熟悉,不知道为什么不行或如何排除故障。有人有什么提示或可以尝试的东西吗?可能是权限问题吗?我是否需要在测试服务器上更改配置文件以匹配开发服务器上的内容?(phpinfo()
两个服务器的 memcached 部分的输出完全相同。)
服务器设置:
- 开发人员:Debian 7.4 Wheezy
- 测试:Debian 7.5 Wheezy
- PHP(两者):5.4.27-1~dotdeb.1
- Apache(两者):2.2.22
答案1
令人尴尬的是,memcached 实际上并未安装在测试服务器上;您可能会认为,在安装 php memcached 扩展时,它会抱怨这样的事情,但是却不,它愉快地安装了该扩展,没有发出任何声音。