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
laravelはapp/storageフォルダーに書き込めませんでした。残りは単なるスタックトレースでした。ストレージフォルダーを書き込み可能にするには、アプリフォルダーにcdして実行:
chmod -R 777 storage
生産方法、Unixに馴染みのない人にとっては中程度の複雑さですが、それ以上secure:
web
(groupadd web
)web
に追加します(ユーザーがcool_user
ので、usermod -a -G web cool_user
)web
グループに追加します(たとえば、CentOS php-fpmではApache
ユーザー名を使用するため、ほとんどの場合これは働くでしょう: usermod -a -G web Apache
)web
に再帰的に変更します(chgrp -R web /path/to/project/root/
)chmod -R g+w /path/to/project/root/
Apache
(またはその他の)ユーザーファイルとフォルダーによって新しく作成されたすべてのユーザーがユーザーからアクセスできるようにするには、グループを受信しますプロジェクトのルートディレクトリに再帰的にgroupidビットを設定して、親フォルダーと同じ所有権(chmod -R g+s /path/to/project/root/
)。出来上がり!.
高速でダーティな方法、セキュリティを気にせず、どんな犠牲を払ってもそれを機能させたい人のために、安全ではない:
chmod -R o=rwx /path/to/project/root/
私の場合、ファイル/app/config/app.phpでデフォルト設定を変更することでこのエラーを解決しました。
'url' => 'http://localhost',
私のローカルカスタムバーチャルホストホストURLに:
'url' => 'http://mydomain.local',
これは、問題を解決した重要な変更のようです(ここで提案されているように、ストレージフォルダーもchmodしました)。
これがあなたの一部を助けることを願っています。
上記に加えて、virtualbox/vagrant VM type環境を使用している場合、Macではホスト(mac)システムでchmodを発行する必要がありますが、Windowsボックスでは、 VMで直接chmodを発行しても問題ありませんでした。
インストールドキュメントを読む必要があります。
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.
そのドキュメントには他にも便利なものがありますので、必ずすべて読んでください。
以下を追加する必要があります:オプション+ FollowSymLinks
<IfModule mod_rewrite.c>
RewriteEngine on
Options +FollowSymLinks
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ index.php/$1 [L]
</IfModule>
私は同じ問題を抱えていました、ここに私がそれを解決する方法があります: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>>
サーバーのWebルートは、Laravelインストールの/public
フォルダーを指している必要があります。これは、Laravelが初期化された場所からindex.html
ファイルが格納される場所です。
許可を777に変更するよりも、この方法のほうが好きです。Apacheを実行するように設定します。
端末でid
と入力して、uid=123(Myname)
を取得します。
/etc/Apache2/httpd.confを開き、編集してユーザー名を使用します。
<IfModule unixd_module>
User Myname
Group staff
</IfModule>
ターミナルに戻る:Sudo apachectl restart
まず、 この回答はこちら が許可の手助けになります。次に、RewriteBase ~/carlo/public_html/laravel-develop
をホームディレクトリから実行しているため、.htaccessに追加する必要がある場合があります。
LR4の要件を確認するには、ローカルサーバーに次のものが必要です:PHP> = 5.3.7 MCrypt PHP Extension
そうでなければ、失敗します。私もこの問題に直面しており、更新されたPHPとXAMPPの拡張機能を探しています。
ちょっと私もこのエラーを受け取ったので、書き込み権限を変更しても機能しなかったようです。 Apacheのhttpd.confファイルでユーザーとグループの設定を変更する必要があることがわかりました。以下に、そのための優れたチュートリアルを示します。 Mac OS X LionのネイティブビルトインApacheの書き込み権限を有効にする