我正在尝试将我的PHP应用程序迁移到Ubuntu服务器,但没有成功。任何帮助都将不胜感激。
首先,我成功地将条令安装到/jorrit/myapp中,遵循条令入门手册的第一部分(直到“生成数据库模式”)。其次,我将我的PHP脚本(使用条令)放在/jorrit/myapp文件夹中。
当我尝试在CLI中运行我的PHP脚本时,我得到了以下错误消息:
PHP警告:require(/tmp/_CG__Source.PHP):无法打开流:第200行的/jorrit/myapp/vendor/doctrine/common/lib/doctrine/common/Proxy/AbstractProxyFactory.PHP中没有此类文件或目录
PHP致命错误:require():在第200行/jorrit/myapp/vendor/doctrine/common/lib/doctrine/common/Proxy/AbstractProxyFactory.PHP中打开required'/tmp/_u CG_uusource.PHP'(include_path=':/usr/share/PHP:/usr/share/pear')失败
Bootstrap.php如下所示:
<?php
// bootstrap.php
use Doctrine\ORM\Tools\Setup;
use Doctrine\ORM\EntityManager;
require_once "vendor/autoload.php";
// Create a simple "default" Doctrine ORM configuration for Annotations
$isDevMode = false;
$config = Setup::createAnnotationMetadataConfiguration(array(__DIR__."/src"), $isDevMode);
// the connection configuration
$dbParams = array(
'driver' => 'pdo_mysql',
'host' => 'xx',
'user' => 'xx',
'password' => 'xx',
'dbname' => 'xx',
'profiler' => 'false'
);
// obtaining the entity manager
$entityManager = EntityManager::create($dbParams, $config);
?>
我的PHP脚本的第一行:
<?php
require_once "bootstrap.php";
require_once 'classes.php';
$connection = $entityManager->getConnection();
该应用程序在我的开发环境(Windows)中运行良好。/tmp文件夹存在并且可以访问。数据库已成功迁移并已存在。我没有更改供应商文件夹中的任何内容。
有什么想法吗?提前感谢你的帮助。
看起来像一个权限问题,首先应该检查整个应用程序文件夹的权限。
还可以尝试通过删除app/cache/*文件来硬清理缓存,然后重试。
祝你好运
在$config
行之后的代码中,您可以尝试$confi-
但是CLI版本要好得多,因为它避免了在代码中可能无法避免的刷新重新生成。
要更改缓存目录,您可以尝试:
$cacheDir = dirname(__FILE__).'/cache';
if (!is_dir($cacheDir)) {
mkdir($cacheDir);
}
$config = Setup::createAnnotationMetadataConfiguration($paths, $isDevMode, $cacheDir);
TL;DR您只需要手动生成代理类
vendor/bin/doctrine orm:generate-proxies
条令使用代理来连接数据库。代理是从实体类生成的。
在开发模式下,它会在每个请求上生成一个代理,因为您可以对实体类进行更改。
在生产模式下,它不会每次都生成代理。出于性能原因,它假设代理存在并直接包含它们。
代理生成有几种模式:
现在命令
vendor/bin/doctrine orm:generate-proxies
生成代理类 /tmp.我想说这可能仍然会造成麻烦,因为服务器上的其他应用程序可能会意外删除这些文件。一个选项是您可以更改您的 /tmp目录门禁权限1777
sudo chmod 1777 /tmp
777前面的严格位“1”意味着,尽管每个人都可以读/写/tmp目录,但您只能对自己的文件进行操作。i、 e.您不能删除其他用户创建的文件。
如需进一步阅读,请参阅http://docs.doctrine-project.org/en/latest/reference/advanced-configuration.html#auto-生成代理类(可选)
您还可以将代理目录设置为其他位置,以便其他应用程序无法修改它们。http://docs.doctrine-project.org/en/latest/reference/advanced-configuration.html#autoloading-代理
问题内容: 我从Apache得到以下错误 [2011年3月19日23:10:50周六] [警告] mod_fcgid:stderr:PHP致命错误:require_once()[function.require]:无法打开所需的’/common/configs/config_templates.inc.php’(include_path =’ 。:/ usr / share / pear:/ us
问题内容: 我收到这个奇怪的错误 我如何从中恢复?有任何想法吗 ? 谢谢 问题答案: 您丢失了与表1684和数据库17369相关的文件。在目录base / 17369中检查名称为1684的状态文件。 您可以确定它是哪个表: 1)获取数据库名称: 2)获取表名(连接到受影响的数据库): 可能没有更多可以做的事情了。仅从备份还原。
我想在数据目录中为应用程序创建一个数据库。我试着使用 但我总是遇到以下异常:无法打开数据库文件 Logcat得出以下结果: 04-10 19:55:09.387: E/SqliteDatabase aseCpp(554):sqlite3_open_v2("/data/data/at.einkaufsliste/database/Einkaufsliste.sqlite", 我设置了权限外部存储和组
问题内容: 我正在尝试从命令行运行Websphere自由配置文件服务器。我正在按照这里告诉的步骤进行操作:https : //developer.ibm.com/wasdev/downloads/liberty-profile-using-non-eclipse- environments/ 我创建了名称为server1的服务器。 但是当提取完成后,我尝试使用以下命令启动服务器: 服务器抛出错误:
问题内容: 我正在尝试将图像加载到pygame的窗口中,但是当我运行代码时。弹出错误 pygame.error:无法打开backround.png 我将图像与代码本身放在同一文件夹中。我为另一个脚本完成了此操作,它工作得很好。我不确定是什么问题。 我尝试关闭程序。重命名文件,仅此而已。不确定如何解决该问题。任何帮助深表感谢 就像我说的那样:我使用类似的布局来加载带有另一个文件的图像,它工作得很好,
问题内容: 我正在尝试为将要用于游戏的地图做基础,但无法将图像加载到屏幕上。我尝试使用相同的字母大小写将图像的绝对文件路径发送到图像,尝试更改图像的名称,尝试加载在我制作的其他程序中可以使用的其他图像,并且尝试放置图像与脚本本身位于同一目录中。什么都没有。我查看了遇到相同问题的人的一些话题,例如为什么我的pygame图片无法加载?而且我找不到我的问题的答案。图像将不会加载。这是代码: 和错误: 我