Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/git/22.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
虚拟机共享文件夹代码中使用不存在文件的Apache2 mod_php_Php_Git_Apache_Virtual Machine - Fatal编程技术网

虚拟机共享文件夹代码中使用不存在文件的Apache2 mod_php

虚拟机共享文件夹代码中使用不存在文件的Apache2 mod_php,php,git,apache,virtual-machine,Php,Git,Apache,Virtual Machine,我尝试设置一个开发环境,其中运行centos 6.3的虚拟机模拟我的服务器环境,并从主机操作系统进行开发。应用程序代码(codeigniter应用程序)位于安装到/home/foo/Desktop/code/app的共享文件夹中,我已经在apache中创建了一个虚拟主机来为该应用程序提供服务 在开发方面,git被用作VCS 问题是,在加载帮助程序时,包含两个文件。例如,我在应用程序/助手中有一个名为my_date_helper的助手。它有两个功能。我自动加载这个助手 运行此应用程序时,php会抛

我尝试设置一个开发环境,其中运行centos 6.3的虚拟机模拟我的服务器环境,并从主机操作系统进行开发。应用程序代码(codeigniter应用程序)位于安装到/home/foo/Desktop/code/app的共享文件夹中,我已经在apache中创建了一个虚拟主机来为该应用程序提供服务

在开发方面,git被用作VCS

问题是,在加载帮助程序时,包含两个文件。例如,我在应用程序/助手中有一个名为my_date_helper的助手。它有两个功能。我自动加载这个助手

运行此应用程序时,php会抛出此错误

Fatal error: Cannot redeclare time12to24() (previously declared in /home/mlakhara/code/cosys/application/helpers/my_date_helper.php:9) in /home/mlakhara/code/cosys/application/helpers/MY_date_helper.php on line 11
当我对函数进行注释时,它表示函数未定义

另外,与时间相关的函数会抛出一条警告,告诉我使用date.timezone选项设置php.ini文件中已经存在的时区

我假设这两个文件可以用不同的名称包含两次,但行号表明了其他一些东西。。(函数在不同的行中声明)

从普通文件夹(非共享)提供服务时,应用程序正常运行。我从vn中删除git并尝试了一下,但没有任何区别

有什么问题吗

---------------编辑----------------------- 根据Magnus Eriksson的回答,我发现我是在自动加载这些“扩展”帮助程序,而不是加载实际的路径和日期帮助程序。这将导致获得同一函数的两个副本。但是,时区设置的问题仍然存在


作为一种纠正措施,我还将时间值添加到了.htaccess文件中。但是,还有更好的方法吗。

您定义了两次函数。包含文件时,请尝试使用
require\u一次('path/to/file.php')
而不是
include
require
。否则,在源文件中,您可以执行以下操作:

if(!function_exists("time12to24")) {
  function time12to24() [...]
}

您正在定义函数两次。包含文件时,请尝试使用
require\u一次('path/to/file.php')
而不是
include
require
。否则,在源文件中,您可以执行以下操作:

if(!function_exists("time12to24")) {
  function time12to24() [...]
}
尝试删除文件名中的“我的”。CodeIgniter使用“MY_3;”扩展内核,可以同时使用小写和大写进行测试,从而两次加载相同的文件

正如Rob W指出的,无论哪种方式,如果(!function_exists()){}

关于时区问题:因为我没有看到你的php.ini或你的设置,我不能说为什么它不工作。 一种解决方案应该是添加
date\u default\u timezone\u set('UTC')(或您想要的时区)是index.php中的第一件事

由于我并不总是有权在客户端生产服务器上修改php.ini,我通常会将其添加到中。

尝试删除文件名中的“我的”。CodeIgniter使用“MY_3;”扩展内核,可以同时使用小写和大写进行测试,从而两次加载相同的文件

正如Rob W指出的,无论哪种方式,如果(!function_exists()){}

关于时区问题:因为我没有看到你的php.ini或你的设置,我不能说为什么它不工作。 一种解决方案应该是添加
date\u default\u timezone\u set('UTC')(或您想要的时区)是index.php中的第一件事


由于我并不总是能够在客户端生产服务器上修改php.ini,因此我通常会将其添加到中。

但应用程序中甚至不存在另一个文件。如果我对函数进行注释,它会说函数未定义。但应用程序中甚至不存在另一个文件。如果我评论这个函数,它会说函数未定义。干得好,马格纳斯,你解决了问题的主要部分。为此,我接受你的回答。更新了我的回答,加入了时区问题。干得好,马格纳斯,你解决了问题的主要部分。为此,我接受你的回答。更新了我的回答,加入了时区问题。