2017-04-15 15 views
1

ローカル環境で正常に動作しているプロジェクトを、ライブ共有ホスティングプラットフォームに移行しようとしています。私のコンテンツは表示されませんでしたので、私は問題を見つけることを試み始めました。私は私のbootstrap.phpのページで500エラーを得ていたので、私は、エラーを追跡し、このメッセージを受け取っ:ローカル環境から共有ホスティングへの移行中にsymfonyエラーが発生しました

Warning: SessionHandler::read(): open(/var/php_sessions/sess_5b4077feb9bf47a70ccde805100ae624, O_RDWR) failed: No such file or directory (2) in /hermes/bosnaweb03b/b700/ipg.briangwaltney/YSC-Main/vendor/symfony/symfony/src/Symfony/Component/HttpFoundation/Session/Storage/Proxy/SessionHandlerProxy.php on line 61 Warning: SessionHandler::write(): open(/var/php_sessions/sess_5b4077feb9bf47a70ccde805100ae624, O_RDWR) failed: No such file or directory (2) in /hermes/bosnaweb03b/b700/ipg.briangwaltney/YSC-Main/vendor/symfony/symfony/src/Symfony/Component/HttpFoundation/Session/Storage/Proxy/SessionHandlerProxy.php on line 69 

私は研究の束を行なったし、あなたがアプリ/設定を変更示唆古い質問の束を見つけました/config.ymlファイルでこれを修正してください。そのファイルは私のディレクトリには存在しませんが、config/framework.ymlはそこにありましたので、私はこれらの変更を提案しました。変更された内容は次のとおりです。

framework: 
    secret: test 
    router: { resource: "%kernel.root_dir%/%kernel.test_case%/routing.yml" } 
    validation: { enabled: true, enable_annotations: true } 
    assets: ~ 
    csrf_protection: true 
    form: true 
    test: ~ 
    default_locale: en 
    session: 
     handler_id: session.handler.native_file 
     save_path: "%kernel.root_dir%/sessions" 
    profiler: { only_exceptions: false } 

services: 
    logger: { class: Psr\Log\NullLogger } 

これは修正されていないため、完全に固まっています。他に何を試していいのかわかりません。どんな助けでも大歓迎です。

参考までに、ここに私のブートストラップと自動ロードファイルがあります。

bootstrap.phpの:

<?php 

error_reporting(E_ALL); 
ini_set('display_errors', '1'); 

require_once __DIR__ . '/../vendor/autoload.php'; 
require_once __DIR__ . '/functions.php'; 
require_once __DIR__ . '/connection.php'; 



$dotenv = new Dotenv\Dotenv(__DIR__); 
$dotenv->load(); 

$session = new \Symfony\Component\HttpFoundation\Session\Session(); 
$session->start(); 

ベンダー/ autoload.php:

<?php 

// autoload.php @generated by Composer 

require_once __DIR__ . '/composer/autoload_real.php'; 

return ComposerAutoloaderInit1975f3b1eb8deeaabd9c59cc0a28694b::getLoader(); 

はありがとうございます。

答えて

0

session.save_pathを"%kernel.root_dir%/sessions"に更新しました。つまり、/path/to/your/project/app/sessionsに配置されます。通常、app-folderは読み取り専用です。既定のプロジェクト構造には、ログとチャーチファイルを含むvar/ディレクトリがあり、セッション用のフォルダもあります。代わりにそれを使用することをお勧めします:"%kernel.root_dir%/../var/sessions"。 varディレクトリにWebユーザ(通常はwww-データ)が書き込み可能であることを確認する必要があります。共有ホスティング環境にいるため、プロバイダのWeb UIにログインしてそこにファイル管理ツールを見つけなければならない場合があります。それでも動作させることができない場合は、セッションハンドラを変更したい場合があります。データベースへ。 PDO Session StorageまたはRedis session handlerを使用してください。

+0

ありがとうございました。私はそれを/ var/php_sessionsフォルダに変更しました。それはそれが特に探しているものであり、まだ動作していません。私はアクセス許可を見て、書き込み可能に設定されています。なんらかの理由で、セッションはまだ書かれていません。他のアイデアはありますか? 私たちは正しい軌道に乗っています。私がセッションコードをコメントアウトすると、サイトはセッションを必要とするコンポーネントを除いて動作します。 –

+0

申し訳ありませんが、私は他のアイデアはありません、すべてが権限を指しています。スクリプトに 'dump(posix_getpuuid(posix_geteuid()))'を入れて、適切なユーザのためにフォルダのアクセス権を設定したことを確認することができます。 – dbrumann

+0

継続していただきありがとうございます。もっと見ると、私は間違ったファイルを変更していると思っています。私はapp/config/config.ymlファイルを見つけることができません。 Symfonyによって自動的に作成されますか? 私の無知を許してください。これが私の最初の試みです。 –

関連する問題