6

(素晴らしい) Laravel PHP フレームワークで artisan を使用しているときに致命的なエラーが発生しました。

最近、Laravel の v3.2.1 をダウンロードし、artisan が存在するディレクトリ内から次のコマンド ラインを実行してみました。

php artisan key:generate

これにより、applications/application.php ファイルにランダム キーが作成されます。(このコマンドの特定のリファレンスについては、http://laravel.com/docs/artisan/commandsを参照してください。)

ただし、シェルからこのコマンドを実行すると、次のエラーが表示されます。

Warning: chdir(): No such file or directory (errno 2) in /home/[USERNAME REMOVED]/websites/[DIRECTORY REMOVED]/htdocs/dev/sb4/paths.php on line 62                                                                                                       

Parse error: syntax error, unexpected T_STRING in /home/[USERNAME REMOVED]/websites/[DIRECTORY REMOVED]/htdocs/dev/sb4/laravel/core.php on line 1  

これは、paths.php の 62 行目にあるものです。

chdir(__DIR__);

これは、core.php の 1 行目にあるものです。

<?php namespace Laravel;

私の質問は次のとおりです。職人を稼働させるために変更する必要がある特定の環境、ディレクトリ、またはその他のアクセス許可はありますか。

少し背景:

  • 昨日初めて Laravel 3.2.1 をインストールしました
  • 自分のシステムで単純な Web アプリケーションを正常に実行できます (つまり、要求をコントローラーにルーティングし、関連するブレードを適切にロードできます)。
  • GitHub から Laravel 3.2.1 (laravel-laravel-v3.2.1-8-gaae8b62.zip) をダウンロードし、サーバーに展開しました。

私の環境:

  • Dreamhost の共有ホスト上の PHP 5.3.13
  • コマンドを実行する FireSSH

私のルート ディレクトリ: (括弧内のアクセス許可)

  • /アプリケーション (775)
  • /バンドル (775)
  • /laravel (775)
  • /パブリック (775)
  • /ストレージ (775)
  • /職人 (664)
  • /paths.php (777)

関連する私のセットアップに関するその他の詳細がある場合はお知らせください。この問題のトラブルシューティングに何が役立つか本当にわかりません。

--

更新: この問題を Laravel の GitHub イシュー トラッカーにも投稿しました。(https://github.com/laravel/laravel/issues/820)

4

2 に答える 2

10

まず、@KingCrunch に感謝します。あなたの最初の応答により、この問題を解決するための正しい道をたどることができました。さらに、Dreamhost のテクニカル サポート (具体的には Gary S) から、私が求めていた簡潔な回答を得ることができました。

問題は、CLI で PHP 5.2.17 を実行していたのに対し、Web サーバーでは PHP 5.3.13 を実行していたことです。

解決策は次のとおりです。

/usr/local/php53/bin/php artisan <command>

CLI で artisan コマンドを実行する場合。これにより、職人のコマンドはすべて、Laravel の PHP 5.3 以降の要件を満たす PHP 5.3 以降を使用して実行されるようになります。

于 2012-06-16T11:29:17.450 に答える
5

名前空間と__DIR__-pseud-constant は PHP 5.3 で導入されました。古いバージョンを実行しているようです。少なくとも 5.3 に更新する必要があります。

php -v
于 2012-06-15T08:38:18.730 に答える