34

PHP アプリケーションを Ubuntu サーバーに移行しようとしていますが、成功しません。どんな助けでも大歓迎です。

まず、Doctrine のGetting Startedマニュアルの最初の部分 (「Generating the Database Schema」まで)に従って、Doctrine を /jorrit/myapp に正常にインストールしました。次に、PHP スクリプト (Doctrine を使用) をフォルダー /jorrit/myapp に配置しました。

CLI で PHP スクリプトを実行しようとすると、次のエラー メッセージが表示されます。

PHP 警告: require(/tmp/__CG__Source.php): ストリームを開くことができませんでした: No such file or directory in /jorrit/myapp/vendor/doctrine/common/lib/Doctrine/Common/Proxy/AbstractProxyFactory.php 行 200

PHP 致命的なエラー: require(): /jorrit/myapp/vendor/doctrine/ で必要な '/tmp/__CG__Source.php' (include_path='.:/usr/share/php:/usr/share/pear') を開けませんでしたcommon/lib/Doctrine/Common/Proxy/AbstractProxyFactory.php 行 200

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 フォルダーが存在し、アクセス可能です。データベースは正常に移行され、存在します。vendor フォルダは何も変更していません。

何か案は?よろしくお願いします。

4

3 に答える 3

3

行ごとのコードで$config試すことができます $config->setAutoGenerateProxyClasses(true);

ただし、コードでは回避できない可能性があるため、CLI バージョンは更新時の再生成を回避するため、はるかに優れています。

キャッシュディレクトリを変更するには、次を試してください:

$cacheDir = dirname(__FILE__).'/cache';
if (!is_dir($cacheDir)) {
    mkdir($cacheDir);
}


$config = Setup::createAnnotationMetadataConfiguration($paths, $isDevMode, $cacheDir);
于 2015-09-26T11:23:58.540 に答える
2

アクセス許可の問題のように見えます。まず、アプリケーション フォルダー全体のアクセス許可を確認する必要があります。

また、app/cache/* ファイルを削除してキャッシュのハード クリーンアップを試み、もう一度やり直してください。

幸運を!

于 2013-09-28T23:48:05.113 に答える