このサイトは、只今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

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

人気急上昇!PHPフレームワーク「Laravel」を使ってみました。 インストール 〜 起動まで。

2014.08.10

CATEGORY LIST

LATEST NEWS

MacでWindowsアプリ(TeraPad)を動かす(Wine 4.0.3)

mac

2019.12.08

kindleストア7周年記念セール中!技術書なども40%OFF以上でお買い得!(11/7まで)

イベント

2019.10.28

あと10日で「jsdo.it」のサービスが終わってしまう!! ソースダウンロードまだの方は急げぇ〜!

JavaScript

2019.10.21

Arduino IDEとArduino接続して、サクッと設定。

電子工作

2019.08.15

ついに、M5Stack Gray 購入!! その他諸々、購入したボードの振り返りなど。

電子工作

2019.08.12

正規表現 先読み後読み 論理積

JavaScript

2019.07.28

PythonでGUIアプリ開発「PyQt」を使った感想

Python

2019.07.18

「二段階認証?」という方も 5分で覚える パスワードレス WebAuthnのまとめ

JavaScript

2019.07.07

上級者向け JavaScript 問題集 「javascript-questions」日本語翻訳担当してます。

JavaScript

2019.06.22

Wordpress サイトで、長時間 500 Internal Server Error発生。解決した方法とは。

WordPress

2019.06.18

Ubuntu 18.04 LTSで OpenGL開発

ubuntu

2019.05.20

MacOS Mojave (10.14.4)の Xcode に、過去のMacOSのSDKをインストール

C++

2019.05.19

RANKING

Follow

SPONSOR

現在、掲載募集中です。



Links

About Us

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

Entry Profile

Graphical FrontEnd Engineer
- Daisuke Takayama

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

FOLLOW US