32

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

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

ブラウザで を参照する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>

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

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

別のもの:

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

次に、エラーの長いリスト。最後のものは次のとおりです。

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

4

14 に答える 14

70

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

chmod -R 777 storage

この問題の詳細については、こちらを参照してください。

于 2013-01-15T21:08:41.850 に答える
16

laravel が app/storage フォルダーに書き込めなかったため、エラーが発生しました。残りは単なるスタック トレースでした。ストレージ フォルダーを書き込み可能にするには、cd でアプリ フォルダーに移動し、次を実行します。

chmod -R 777 storage
于 2013-01-15T21:33:25.457 に答える
11

Unixに慣れていない人にとっては適度な複雑さですが、より安全です:

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

出来上がり!

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

  1. スーパーユーザーモード (sudo -s または su) に入ります。
  2. すべてのユーザーに完全な権限 (読み取り、書き込み、実行) を再帰的に付与します (chmod -R o=rwx /path/to/project/root/
于 2013-06-30T12:43:16.690 に答える
5

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

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

ローカルのカスタム仮想ホスト ホスト URL へ:

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

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

これがあなたの何人かを助けることを願っています..

于 2013-04-24T17:57:04.800 に答える
2

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

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.

そのドキュメントには他にも役立つものがあるので、必ずすべて読んでください。

于 2013-10-20T16:17:12.243 に答える
2

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

<IfModule mod_rewrite.c> 
RewriteEngine on 
Options +FollowSymLinks
RewriteCond %{REQUEST_FILENAME} !-f 
RewriteCond %{REQUEST_FILENAME} !-d 
RewriteRule ^(.*)$ index.php/$1 [L] 
</IfModule>
于 2013-01-15T19:48:11.087 に答える
1

/publicサーバーの webroot は、Laravel インストールのフォルダーを指す必要があります。これは、index.htmlLaravel が初期化された場所からファイルが存在する場所です。

于 2014-05-06T13:03:33.997 に答える
0

アクセス許可を 777 に変更するよりも、この方法の方が気に入っています。Apache を自分として実行するように設定します。

  1. id取得する端末タイプでuid=123(Myname).

  2. /etc/apache2/httpd.conf を開き、ユーザー名を使用するように編集します。

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

于 2015-05-14T17:45:41.627 に答える
0

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

于 2013-03-25T22:04:22.010 に答える
0

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

于 2013-01-16T02:53:11.817 に答える