このサイトは、只今WEB業界で活躍中のデザイナー、プログラマーの方々の情報を集めたweb統合情報サイトです。

Archives Details

Laravel 4 を PHP 7 環境へ移行したお話。

PHP

2018.06.10

この記事は最終更新日から1年以上が経過しています。

どもです。

今回は、とあるWebサービスをLaravel4で作成したはいいが長年放置していていたので、

サーバー環境もさくらサーバーから、conohaへと移動させたいなと思い、思い切って行ってみました。

laravel4をPHP7環境へと移動させて見た話です。

 

データベース移動

まずは、MySQLダンプでデータベースのデータをまるっとダンプ。

$ mysqldump --single-transaction -u DBユーザ名 -p DB名 > 出力先ファイル名

 

新しい方のサーバーに同じDB名のデータベースで作成。

$ mysql> create database データベース名;

ダンプデータをまるっとインポート。

$ mysql -u ユーザー名 -p データベース名 < dumpファイル名

 

そのまま、Laravelのアプリケーションフォルダをまるごと移動。

適当なサブドメインを設定してブラウザからアクセス。

表示するかな。。

と淡い期待を持ってアクセスしてみたところ、エラー。

Whoops, looks like something went wrong.

Whoopes!!

 

まぁそうですよね。

とりあえず、デバッグ出来るようにエラーログが表示するように修正。

app/config/app.php

'debug' => true,

HTTP_USER_AGENTのエラー

どうやら、/bootstrap/start.phpで、エラーになっている。

PCとスマホで表示切り替えを行うためのscriptのところが原因だったようでした。

/bootstrap/start.php

$ua = $_SERVER['HTTP_USER_AGENT'];

といった、ユーザーエージェント取得のサーバー変数でコケている様子。

どうやら、FastCGIのphp-fpmを動かしていると、ユーザーエージェントの取得の環境変数 $_SERVER[‘HTTP_USER_AGENT’];が使用できないとかとか。

とりあえず、nginxの設定を変更してみました。

/etc/nginx/nginx.conf

location ~ \.php$ {
  ...
  fastcgi_param  HTTP_USER_AGENT $http_user_agent;
  ...
}

ふむ。これで大丈夫だろうと、nginxを再起動。

 

$ systemctl restart nginx.service || sudo systemctl status nginx.service -l

 

確認すると、依然として環境変数 $_SERVER[‘HTTP_USER_AGENT’];で、未だコケている。

ふーむ。

調べていると、「HTTP_USER_AGENT」という文字列が使用できない。とかとか。

本当なのか??

とりあえず、別名の環境変数を設定。

/etc/nginx/nginx.conf
location ~ \.php$ {
  …
fastcgi_param HTTP_UA $http_user_agent;

}

ふむ。いい加減これで大丈夫だろうと、nginxを再起動。

しかし、ダメだ~。

更に調べていくと、「isset」関数で、存在判定行えば良いと言う情報を得て、こちらで判定するところ

 

isset 関数用いた形に修正。

if(isset( $_SERVER['HTTP_USER_AGENT'])) {

再びアクセス。

やっと、エラーが消えた。

が、こんどは別のエラーが。。。

 

Function mcrypt_decrypt() is deprecated

 

ErrorException

Function mcrypt_decrypt() is deprecated

うん?何だこのエラー。

ライブラリ(Laravel)側でコケている。

 

とりあえず、キャッシュをクリアしてみる。

キャッシュクリアコマンド キャッシュを作り直す

$ composer dump-autoload
$ php artisan clear-compiled
$ php artisan optimize
$ php artisan config:cache

と、行ってみたが、特に変化はなく。。

手動でも削除してみる。

cacheが残っているエリア

/laravel/bootstrap/cache/
/laravel/storage/framework/cache/

上記の各ディレクトリで rm -rf *.php を実行。

うーん。これまた特に変化はなく。。

キャッシュなどクリアしてもダメだな。。

再び、色々調べた結果。

とりあえず、「mcrypt_decrypt」非推奨関数は PHP 7.1.0 で 非推奨となり、PHP 7.2.0 で削除 されたとのこと。

お。おう。

また、mcryptモジュールも10年以上まったくメンテされていないという理由で削除されたということ。

お。おう。

 

うーん。。

どうしよう。。

と、これまた色々調べた結果。

どうやら、こちらの一文を入力すれば解決するみたい。

error_reporting(E_ALL ^ E_DEPRECATED);

app/config/app.php

error_reporting(E_ALL ^ E_DEPRECATED);

 

app/config/app.php」に上記を追加。

 

 

こちらでどうだ!!

キター

ということで、DNSの移行もして無事、Laravelの移行が完了しました。

そこそこ時間を使ってしまいました。

でわではぁ。

終わり。

Comment

Related Article

php 7.4にアップデート

2023.12.24

Laravel 4 を PHP 7 環境へ移行したお話。

2018.06.10

PHP 簡易アクセスログ 出力

2016.04.29

Laravelを 別環境に移動したら画面が真っ白に。MacにComposer、php mcrypt 等をインストールしたお話。

2015.10.10

遅れましたが..あけましておめでとうございます!2015年は Laravelで画像処理。からということで。

2015.01.08

IDE phpstorm, IntelliJ IDEAの Database接続が便利すぎる件(Vagrant + IntelliJ IDEA でMySQL操作)

2014.11.29

Laravel4でもSmartyを使用したい!

2014.11.20

人気急上昇!PHPフレームワーク「Laravel」を使ってみました。簡易会員サイト作成編

2014.09.24

Laravel4 パーミッションエラー Vagrant パーミッションが変更しない件

2014.08.24

【CentOS6】 PHP5.3からPHP5.5にバージョンアップしました

2014.08.11

CATEGORY LIST

LATEST NEWS

Rust - Actix Web mongo ユーザー登録 JWT認証

Rust

2024.03.24

Rust - Actix Web JWT 認証認可 APIの作成

Rust

2024.02.25

Rust - Actix Web × JSON 静的ファイルをAPIで返却

Rust

2024.01.19

Rust - Actix Web × MongoDB環境をサクッと起動

Rust

2024.01.18

5分で学ぶ RustでWave Function Collapse (波動関数崩壊アルゴリズム)

Rust

2024.01.15

LLaMAモデル GGMLフォーマット(llama.cpp)をRustフレームワーク Leptosを用いて M1MacMiniでサクッと動かす。

Rust

2024.01.11

2024年 狙っているモバイルノートPC

tool

2024.01.07

MacOS XcodeにSDL2を追加

tool

2023.12.26

php 7.4にアップデート

PHP

2023.12.24

5分で覚える Flutter Flameで作る Wave Function Collapse - 波動関数崩壊アルゴリズム

AI・Bot・algorithm

2023.12.20

Flutter - Flameでゲーム作成 (キャラクターの移動)

Flutter

2023.07.23

Flutterで作る ChatGPT Prompt Manager

Flutter

2023.07.12

RANKING

Follow

SPONSOR

現在、掲載募集中です。



Links

About Us

WEBデザイナーの、WEBデザイナーによる、WEBデザイナーの為のサイト。「みんなで書こう!」と仲間を募ってみたが、結局書くのは自分だけとなってしまいました。日々のメモを綴っていきます。

Entry Profile

Graphical FrontEnd Engineer
- Daisuke Takayama

MAD CITY 北九州市で生まれ育つ。20代はバンド活動に明け暮れ、ふと「webデザイナーになりたい。」と思い、デジタルハリウッド福岡校入学。卒業後、数々の賞を受賞、web業界をざわつかせる。
現在、主に、ゲーム制作中心に港区六本木界隈で活動中。

FOLLOW US