質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.46%
Laravel

LaravelとはTaylor Otwellによって開発された、オープンソースなPHPフレームワークです。Laravelはシンプルで表現的なシンタックスを持ち合わせており、ウェブアプリケーション開発の手助けをしてくれます。

PHP

PHPは、Webサイト構築に特化して開発されたプログラミング言語です。大きな特徴のひとつは、HTMLに直接プログラムを埋め込むことができるという点です。PHPを用いることで、HTMLを動的コンテンツとして出力できます。HTMLがそのままブラウザに表示されるのに対し、PHPプログラムはサーバ側で実行された結果がブラウザに表示されるため、PHPスクリプトは「サーバサイドスクリプト」と呼ばれています。

Q&A

解決済

2回答

1263閲覧

laravel8 php5.6によるエラーの解消方法について

akaiman

総合スコア8

Laravel

LaravelとはTaylor Otwellによって開発された、オープンソースなPHPフレームワークです。Laravelはシンプルで表現的なシンタックスを持ち合わせており、ウェブアプリケーション開発の手助けをしてくれます。

PHP

PHPは、Webサイト構築に特化して開発されたプログラミング言語です。大きな特徴のひとつは、HTMLに直接プログラムを埋め込むことができるという点です。PHPを用いることで、HTMLを動的コンテンツとして出力できます。HTMLがそのままブラウザに表示されるのに対し、PHPプログラムはサーバ側で実行された結果がブラウザに表示されるため、PHPスクリプトは「サーバサイドスクリプト」と呼ばれています。

0グッド

0クリップ

投稿2020/12/04 23:26

前提・実現したいこと

現在、laravelでWEBサイトを制作しております。
いざ本番サーバー(レンタルサーバー)にアップしたところ
以下のエラーが出てしまいました。

Parse error: syntax error, unexpected ':', expecting

いろいろ調べたところphpのバージョンが5.6なのが原因とわかりました。
そのためコンパネからバージョンを上げたかったのですが、別会社が管理しているらしく
コンパネ情報を渡してもらえませんでした。
またバージョンを変えることも他の同サーバー内のシステムに影響するからとダメでした。

となると解決方法としては以下になると思います。
①サーバーを変える(ちょっと厳しそう)
②laravelのphp5.6に関する互換性があるように直接記述処理して対応する

サーバーを変えるのは難しそうなので②で対応したいんですが
エラーが出ないように修正したり調整したりすることは可能なんでしょうか?

①またその際の大まかな手順をご教授いただけますと幸いです。

②↑のエラーに表示されたファイルがルート/vendor/symfony/polyfiil-php80/bootstrap.phpでした。
その対象の行数にかかれていたのが下記になります。

これはphp5.6ではPhp80::書き方がダメなのでしょうか?
その場合、すべて違う形に修正対応でしょうか?

if (!function_exists('fdiv')) { function fdiv(float $num1, float $num2): float { return p\Php80::fdiv($num1, $num2); } }

何卒、宜しくお願いします。

補足情報(FW/ツールのバージョンなど)

サーバー:ヘテムル
phpのバージョン:5.6(本番)
phpのバージョン:7.4(テスト&開発)

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

kawax

2020/12/05 00:06

やろうとしてることがなにもかも全部間違ってる。 そのサーバーを管理してる別会社との契約を今すぐ切ったほうがいい。 5.6を使い続けてるのは初心者以下。
guest

回答2

0

Laravel8はPHP5.6非対応です。7.3以上必須です。

PHP >= 7.3

https://laravel.com/docs/8.x

投稿2020/12/04 23:30

編集2020/12/04 23:31
kyoya0819

総合スコア10429

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

kyoya0819

2020/12/04 23:34

PHP5.6に対応しているのは、Laravel5.4以前です。 それらのサポートは終了しているので、Laravelを使わない or PHPのバージョンを上げるの2択です。
guest

0

ベストアンサー

::ではなく:

php

1function fdiv(float $num1, float $num2): float { return p\Php80::fdiv($num1, $num2); } 2                    ↑ここ          ↑ここじゃない

PHP7から出てきた引数や戻り値の型宣言
Laravelはそこら中にあるんじゃないでしょうか(全部読んだわけではないが)

というか、そもそもPHP5.6はサポート終了して久しいバージョンなので、
使い続けるのは悪手でしかありません。
時間をかけてPHP5.6に対応できるように書き換えたとしても
かかる労力と成果に見合いません。

さらに、そもそも本番と開発環境とで同じバージョンでない時点で、開発手法としての疑問も残ります。

開発環境で正常動作しているのなら、どんなに難しかろうと同じ環境で本番を準備するしかありません。
(どうしてもそのバージョンしかできないならLaravel使わないという手くらいしか)

投稿2020/12/04 23:31

編集2020/12/04 23:45
m.ts10806

総合スコア80857

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

akaiman

2020/12/05 00:06

早速のご回答ありがとうございます。 やっぱり5.6は悪手ですよね。。。 これに関してどうしても変更できそうにないので 一旦、kyoya0819さんが回答してくださったようにlaravel5.4以前で作り直したいと思います。 みなさまご回答ありがとうございました!
退会済みユーザー

退会済みユーザー

2020/12/05 00:24

kyoya0819 さんはそんな回答してません。 以下が、kyoya0819 さんの提案です。 > Laravelを使わない or PHPのバージョンを上げるの2択です。
m.ts10806

2020/12/05 01:04

2名の回答の主旨は同じです。 「サポート終わってるバージョン(環境)を使うな」 なのにサポート終わってるLaravelを選ぼうとする理由が分かりません。 まぁ。どうしてもしたいなら勝手にしてください。全ては自己責任です。 Laravel5.4を選んだ根拠を今回の回答にはできませんし、誰にも責任は問えません。 セキュリティインシデントが起きても責任を取るのはご自身です。
kai0310

2020/12/05 16:09 編集

以前一般的に言われる格安レンタルサーバーというものを所属する団体で契約していたのですが、7系じゃなかったのを思い出しました。その後その運営会社にコンタクトしてアップグレードできないか聞いてみたところできないと同じ様なことを言われたのですぐに解約しました。 保守性や今後できること、使用できるみのが狭まってしまうという面からも乗り換えるなり検討する必要があると思います。 (追記) その段階ではLaravelの使用は検討していません。
akaiman

2020/12/05 15:58

今回は先方の契約上、サーバーの移転は難しいらしく、llaravel使わないのはかなり難易度高いかなと思い laravelのバージョン下げて作りなおすようにしました。 またそのサイト内で別のシステムが動いていてサーバーをへたに動かせないです。 kai0310さんと似た状況です。。。 今、ディレクターが先方にもう一度打診してくれています。 皆様ご回答ありがとうございました。
m.ts10806

2020/12/05 21:42

セキュリティインシデントによるデメリット(金額や失う信用)の大きさを説いてもダメなら「なにが起きても自己責任です」と一筆書いてもらってください。
m.ts10806

2020/12/05 21:45

それにkyoya0819さんが提示されてるように当該サーバーはPHP7.4対応されてるので切り替え不可である理由の方が不自然です。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.46%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問