web-dev-qa-db-ja.com

Laravel 4をlocalhostで動作させることはできません

Laravel4ベータリリースのお知らせを読んだ後、初めてLaravelを試しています。

これらの手順 に従って、必要なすべての依存関係とともにcomposerおよびlaravelをインストールしました。 laravelを~/public_htmlディレクトリ内に配置します-Codeigniterで使用するのに慣れていますが、ここで何かがおかしいと思います。

ブラウザでhttp://localhost/~carlo/laravel-develop/をポイントすると、ディレクトリのコンテンツが表示されるだけです。

次に、ファイルシステムにlaravel-develop/publicフォルダーがありましたが、ブラウザーには表示されませんでした。

.htaccessを次のように変更することがわかりました。

<IfModule mod_rewrite.c> 
RewriteEngine on 
RewriteCond %{REQUEST_FILENAME} !-f 
RewriteCond %{REQUEST_FILENAME} !-d 
RewriteRule ^(.*)$ index.php/$1 [L] 
</IfModule>

パブリックフォルダーにアクセスしようとするとエラーが発生しました。エラー:

ErrorException:警告:file_put_contents(/ home/carlo/public_html/laravel-develop/app/config /../ storage/meta/services.json):ストリームを開けませんでした:/ home/carlo/public_html/laravel-で許可が拒否されましたdeveloper/vendor/laravel/framework/src/Illuminate/Filesystem/Filesystem.php行77

別のもの:

/home/carlo/public_html/laravel-develop/vendor/laravel/framework/src/Illuminate/Filesystem/Filesystem.php line 77

次に、エラーの長いリスト。最後のものは:

require_once( '/ home/carlo/public_html/laravel-develop/start.php')/home/carlo/public_html/laravel-develop/public/index.php行53

32
Carlo

ターミナルを使用して、storageフォルダーのフォルダー許可を変更してみてください。

chmod -R 777 storage

この問題の詳細については、 こちら をご覧ください。

70
adridev

laravelはapp/storageフォルダーに書き込めませんでした。残りは単なるスタックトレースでした。ストレージフォルダーを書き込み可能にするには、アプリフォルダーにcdして実行:

chmod -R 777 storage
16
socketman

生産方法、Unixに馴染みのない人にとっては中程度の複雑さですが、それ以上secure

  1. スーパーユーザーモード(Sudo -sまたはsu)で移動します。
  2. グループを作成webgroupadd web
  3. メインユーザーをグループwebに追加します(ユーザーがcool_userので、usermod -a -G web cool_user
  4. Php-fpmまたはWebサーバーユーザー(phpがSAPIモジュールとして使用されている場合)をwebグループに追加します(たとえば、CentOS php-fpmではApacheユーザー名を使用するため、ほとんどの場合これは働くでしょう: usermod -a -G web Apache
  5. プロジェクトのルートディレクトリグループの所有者をwebに再帰的に変更します(chgrp -R web /path/to/project/root/
  6. グループ(chmod -R g+w /path/to/project/root/
  7. オプションでApache(またはその他の)ユーザーファイルとフォルダーによって新しく作成されたすべてのユーザーがユーザーからアクセスできるようにするには、グループを受信しますプロジェクトのルートディレクトリに再帰的にgroupidビットを設定して、親フォルダーと同じ所有権(chmod -R g+s /path/to/project/root/)。

出来上がり!.

高速でダーティな方法、セキュリティを気にせず、どんな犠牲を払ってもそれを機能させたい人のために、安全ではない

  1. スーパーユーザーモード(Sudo -sまたはsu)で移動します。
  2. すべてのユーザーに再帰的に完全なアクセス許可(読み取り、書き込み、実行)を付与します(chmod -R o=rwx /path/to/project/root/
11
pinepain

私の場合、ファイル/app/config/app.phpでデフォルト設定を変更することでこのエラーを解決しました。

'url' => 'http://localhost',

私のローカルカスタムバーチャルホストホストURLに:

'url' => 'http://mydomain.local',

これは、問題を解決した重要な変更のようです(ここで提案されているように、ストレージフォルダーもchmodしました)。

これがあなたの一部を助けることを願っています。

5
user2316785

上記に加えて、virtualbox/vagrant VM type環境を使用している場合、Macではホスト(mac)システムでchmodを発行する必要がありますが、Windowsボックスでは、 VMで直接chmodを発行しても問題ありませんでした。

3
jacanterbury

インストールドキュメントを読む必要があります。

http://laravel.com/docs/installation#configuration

ここのビットに注意してください:

Laravel requires one set of permissions to be configured - folders within app/storage require write access by the web server.

そのドキュメントには他にも便利なものがありますので、必ずすべて読んでください。

2

以下を追加する必要があります:オプション+ FollowSymLinks

<IfModule mod_rewrite.c> 
RewriteEngine on 
Options +FollowSymLinks
RewriteCond %{REQUEST_FILENAME} !-f 
RewriteCond %{REQUEST_FILENAME} !-d 
RewriteRule ^(.*)$ index.php/$1 [L] 
</IfModule>
2
user1981495

私は同じ問題を抱えていました、ここに私がそれを解決する方法があります:httpd-vhosts.confファイルで、構成をフォルダに追加する必要があります、これは私が持っているものです

<VirtualHost *:80>
    ServerAdmin [email protected]
    DocumentRoot "/home/carlospublic_html"
    ServerName carlos.local
    <Directory "/home/carlos/public_html">
        Options Indexes FollowSymLinks MultiViews
        AllowOverride All
        Order allow,deny
        allow from all
    </Directory>
</VirtualHost>>
2
Flavio

サーバーのWebルートは、Laravelインストールの/publicフォルダーを指している必要があります。これは、Laravelが初期化された場所からindex.htmlファイルが格納される場所です。

1
sidneydobber

許可を777に変更するよりも、この方法のほうが好きです。Apacheを実行するように設定します。

  1. 端末でidと入力して、uid=123(Myname)を取得します。

  2. /etc/Apache2/httpd.confを開き、編集してユーザー名を使用します。

    <IfModule unixd_module>
       User Myname
       Group staff
    </IfModule>
    
  3. ターミナルに戻る:Sudo apachectl restart

0
Justin

まず、 この回答はこちら が許可の手助けになります。次に、RewriteBase ~/carlo/public_html/laravel-developをホームディレクトリから実行しているため、.htaccessに追加する必要がある場合があります。

0
ChrisMoll

LR4の要件を確認するには、ローカルサーバーに次のものが必要です:PHP> = 5.3.7 MCrypt PHP Extension

そうでなければ、失敗します。私もこの問題に直面しており、更新されたPHPとXAMPPの拡張機能を探しています。

0
jsd

ちょっと私もこのエラーを受け取ったので、書き込み権限を変更しても機能しなかったようです。 Apacheのhttpd.confファイルでユーザーとグループの設定を変更する必要があることがわかりました。以下に、そのための優れたチュートリアルを示します。 Mac OS X LionのネイティブビルトインApacheの書き込み権限を有効にする

0
displayname