web-dev-qa-db-ja.com

Laravel 5+ Ubuntu 14.04で500の内部サーバーエラーが発生する

私はLaravelをWindows OSに何度もインストールしましたが、このような問題は起こりませんでした。この500の内部サーバは通常あなたの "mod_rewrite"モジュールがオンになっていないときに発生します。

しかし、Ubuntu 14.04では、この問題は私に頭痛を与えています。私はrewrite_modをインストールしましたが、それはまた働いていません。内部のすべてのフォルダとファイルへのアクセスを許可しました。

/ var/www/html/laravel_project

それでもうまくいきません。 .htaccessも元のものからこれに変更されました。

    +FollowSymLinks
RewriteEngine On

RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^ index.php [L]

私はLaravel 5+にも必要な拡張をすべて持っています。私がしなかったことが残っていますか?

57
DpEN

最後に問題を克服しました

  • 問題であるのは.htaccessファイルでもindex.phpでもありませんでした。問題は、ファイルにアクセスして権限を要求することでした。

問題を解決するために、私は端末を通して以下のコマンドを実行しました。

Sudo chmod -R 755 laravel_blog

次に、laravelがファイルをストレージフォルダに書き込むことができるように、以下のように入力します。

chmod -R o+w laravel_blog/storage

この2つのコマンドは問題を解決しました。

181
DpEN

インストール後にコマンドの下に実行

Sudo chmod 755 -R laravel
chmod -R o+w laravel/storage

ここで "laravel"はlaravelがインストールされているディレクトリの名前です

23
Sujendra Kumar

初心者が、これは私が何もキーを持っていなかったcozをしたものです

.envファイルを作成して実行する

php artisan key:generate

Gitプロジェクトを引っ張った後、これは私のために働きました

15
Goodlife

私はこのコマンドで修正しました:

   rm -rf app/storage/logs/laravel.logs
   chmod -R 777 app/storage,
   php artisan cache:clear,
   php artisan dump-autoload OR composer dump-autoload

サーバーを再起動するよりはむしろXAMPPまたは他のXAMPPを使っていてそれでうまくいくはずです。

13
Atdhe Kurteshi

私は同様のエラーに直面しました。ログを/var/log/Apache2/error.logでチェックしたところ、nexpectedValueExceptionが見つかりました。

私は所有者をプロジェクトdirの下のstorageフォルダの私のApacheユーザーに変更しました。

Sudo chown -R www-data:www-data ./storage

私の場合、Apache2のプロセスの所有者はwww-dataですので、これをあなたのものに変更してください。これはApache2の設定ファイルにあります。これがあなたにとって役に立つことを願っています。

11
Snriud

この問題に対する別の解決策があります。

プロジェクトのルートからcomposerコマンドを実行して、必要なパッケージをインストールします。

Sudo composer install

更新:

  • 本番サーバーではこのコマンドを実行しないでください。ただし、composerに関するいくつかの問題はローカル環境でこれを使用して解決できます。

編集:

  • https://getcomposer.org/doc/faqs/how-to-install-untrusted-packages-safely.md を見て、なぜ作曲家が走っているのか見てください。 rootでをインストールするのはお勧めできません。
  • Rootとして実行する必要がある場合は、インストール中にサードパーティのコードが実行されるのをブロックするために、以下のフラグを指定します - プラグインなし--no-scripts
10

.envファイルがあるかどうかを確認してください。

ほとんどの場合、これはそのようなことを引き起こす可能性があります。ファイルを作成し、.env.exampleからすべてをコピーし、作成したファイルに貼り付けて.envという名前を付けます。またはjsutは単に.env.exampleファイルの名前を.envに変更してphp artisan key:generateを実行するだけです。

8
Lesther

PHP 7.0とPHP 7.1がインストールされていて、コマンドラインでPHP 7.1を使用し、ApacheでPHP 7.0が有効になっていLaravel Frameworkとlocalhost Apache2をlaravelと一緒に使用している場合、めちゃくちゃになると問題が発生する可能性があります。

あなたのPHPバージョンを見るためにあなたの作曲家ファイルを最初にチェックしてください。

"php": "^7.1.3",
"laravel/framework": "5.6.*",

現在のPHPのバージョンをコマンドラインで確認する

php -v

現在Apacheで有効になっているPHPのバージョンを確認してください。私はブラウザを使用しました。

http://localhost

同じでない場合は、現在のバージョンを無効にして最新のバージョンを有効にします。

Sudo a2dismod php7.2

Sudo a2enmod php7.1

Sudo service Apache2 restart

変更後のフォルダのアクセス許可

Sudo chmod 755 -R blog

格納フォルダ用

chmod -R o+w blog/storage
4
Saulo Campos

時々phpバージョンに問題があります。サーバーからphpのバージョンを変更する必要があります。下の文字列を。htaccessファイルに書き留めるだけです。

AddHandler application/x-httpd-php5 .php
4
Riyan Sheikh

Laravelがインストールされているディレクトリで次の2つのコマンドを実行します。

Sudo chmod 755 -R DIRECTORY_NAME
chmod -R o+w DIRECTORY_NAME/storage

それからキャッシュをクリアして自動ロードをダンプします。

php artisan cache:clear
composer dump-autoload
3
Ayman

私はこの問題に何度も直面しました。それが私を大いに助けたこれらのステップの1つを試みなさい。多分それはまたあなたを助けるでしょう。

  1. まず最初にファイルのパーミッションを確認してください。
  2. ファイルのアクセス権を修正するにはSudo chmod 755 -R your_project
  3. 次にchmod -R o + w your_project/storageファイルをstorageフォルダに書き込みます。
  4. php職人キャッシュ:クリア
    作曲家ダンプ - オートロード
  5. php職人の鍵:生成する
  6. 次にサーバーの要件を確認 laravelの要件に従って。
  7. 何度もあなたはこれを手に入れましたphpバージョンのせいでエラーですあなたのphpバージョンを変更してみてください cpanelに。
  8. 次に。htaccessファイルを正しく設定してください。
2
Anand Mainali

Gitを使うときによくある問題

Laravel's .gitignore ignores the .env file which when missing generates this error

これを解決するには、手動で.envファイルをサーバーに追加するか、またはFTPを介してアップロードします。

2
Maroun Melhem

上記の理由の他に、laravelが500の内部サーバーエラーを発生させることができる他の理由があります。欠けているか古いCSRF、構文エラー、.htaccessミス設定などを含みます。ここでカバーされているリスト全体があります https://abbasharoon.me/how-to-fix-laravel-ajax-500-internal -サーバーエラー/

1
Meta Pakistani

Laravelのルートでこれら2つのコマンドを実行

* type d -print0を見つけます。 xargs -0 chmod 0755#ディレクトリ用

見つけます。 -type f -print0 | xargs -0 chmod 0644#ファイル用

1
Davinder Singh

他のすべての答えを試した後、私のようなエラーがまだ発生しているあなたのために:

Apacheが使用しているphpのバージョンを確認してください。最新のlaravelはphp7.1でのみ動作します。だからあなたはする必要があります:

Sudo a2dismod php[yourversion]
Sudo a2enmod php7.1
Sudo systemctl restart Apache2

お役に立てれば

1
Ika Tobihi

共有ホストについても同様の問題があります。私は500エラーがありました。 LaravelバージョンとPHPバージョンをチェックすることで修正しました。 Laravel 5.6がPHP 7.0.xで実行されないため、エラーが発生しました。これがわかったら、プロジェクトをLaravel 5.5に再設定します。PHP 7.0.xこれですべて問題ありません。私は時々問題を抱えているもう一つの理由は私が壊れたファイルを取得し、プロジェクトを複数回アップロードしなければならないFTPです。私はこのトピックであまり多くの情報を見つけられない将来的にこの助けを願っています。

1
Josean Maya

まず、プロジェクトフォルダ(laravelと呼びます)、storageサブフォルダとそのlogsサブフォルダ、およびvendorサブフォルダ(laravel/storage、laravel/storage/logsとlaravel/vendor)に対するすべてのアクセス許可を許可します。

それから、あなたの持っている.envファイルをチェックしてください - そうでなければ、あなたは実行できます:

$ mv .env.example .env

ビルドインの.env.exampleを必要な.envに変更します。

そうでなければデバッグモードをオンにします - .envを開いて設定します

APP_DEBUG=true

そしてlaravel/config/app.phpを開いて変更してください。

'debug' => env('APP_DEBUG', false), 

'debug' => env('APP_DEBUG', true),

だからあなたはあなたのエラーの理由が何であるかを見つけることができます。

1
tsveti_iko

私はこの問題に直面し、Apacheで私のphpバージョンを5.6.xにアップグレードすることによって修正しました

0
Mahmoud Niypoo

ログのディレクトリに書き込む権限がないためです。
chmod 755ストレージ-R

0
George Peter

ログによると:

[06-Feb-2016 22:38:48 Europe/Berlin] PHP Warning:  require(/Users/tomsihap/Documents/Development/mamp/partie_1_exo/bootstrap/../vendor/autoload.php): failed to open stream: No such file or directory in /Users/tomsihap/Documents/Development/mamp/partie_1_exo/bootstrap/autoload.php on line 17
[06-Feb-2016 22:38:48 Europe/Berlin] PHP Fatal error:  require(): Failed opening required '/Users/tomsihap/Documents/Development/mamp/partie_1_exo/bootstrap/../vendor/autoload.php' (include_path='.:/Applications/MAMP/bin/php/php7.0.0/lib/php') in /Users/tomsihap/Documents/Development/mamp/partie_1_exo/bootstrap/autoload.php on line 17
[06-Feb-2016 22:43:37 Europe/Berlin] PHP Warning:  require(/Users/tomsihap/Documents/Development/mamp/partie_1_exo/bootstrap/../vendor/autoload.php): failed to open stream: No such file or directory in /Users/tomsihap/Documents/Development/mamp/partie_1_exo/bootstrap/autoload.php on line 17
[06-Feb-2016 22:43:37 Europe/Berlin] PHP Fatal error:  require(): Failed opening required '/Users/tomsihap/Documents/Development/mamp/partie_1_exo/bootstrap/../vendor/autoload.php' (include_path='.:/Applications/MAMP/bin/php/php7.0.0/lib/php') in /Users/tomsihap/Documents/Development/mamp/partie_1_exo/bootstrap/autoload.php on line 17

/ vendorフォルダにファイルを開くときに失敗することがあります。

作曲家経由でインストールして更新することで、私はついに問題を解決することができました。

Sudo composer install
Sudo composer update
0
tomsihap

ライブサーバー上でこれを試してみてください

<IfModule mod_rewrite.c>
<IfModule mod_negotiation.c>
    Options -MultiViews -Indexes
</IfModule>
Options +FollowSymLinks
RewriteEngine On
RewriteBase /


# Handle Authorization Header
RewriteCond %{HTTP:Authorization} .
RewriteRule .* - [E=HTTP_AUTHORIZATION:%{HTTP:Authorization}]

# Redirect Trailing Slashes If Not A Folder...
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_URI} (.+)/$
RewriteRule ^ %1 [L,R=301]

# Handle Front Controller...
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^ index.php [L]

それから、あなたのcomposer.jsonのphpバージョンがあなたのサーバーのものと同じであることも確認してください。

php -vを使ってあなたの端末のあなたのphpバージョンをチェックしてください

0
The Dead Guy

書き込み権限(chmod o + w)で保存フォルダを確認し、魅力のように私のために働く。

0
user3619249

このコマンドでのみWebフォルダのアクセス権を変更します。

Sudo chmod 755 -R your_folder

0
Muhammad Shoaib