このサイトは、只今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 Home brewでSDL2.0を簡単に環境設定

C

2020.06.24

Django django-rest-auth + Nuxt.js auth-module で作る SPA JWT OAuth ログインシステム その3

Python

2020.06.14

Django django-rest-auth + Nuxt.js auth-module で作る SPA JWT OAuth ログインシステム その2

Python

2020.06.08

Django django-rest-auth + Nuxt.js auth-module で作る SPA JWT OAuth ログインシステム その1

Python

2020.06.07

このコロナ禍で、飛沫感染防止など求められる中「電子メモパッド」が重宝。 1300円で購入可能な電子メモパッドが超絶便利な件。

tool

2020.06.02

OAuthのフローを可視化できるツールを作ってみました。

JavaScript

2020.05.17

Django django-allauthで、サクッとソーシャルログイン機能を実装

Python

2020.04.12

部下を育てる技術

イベント

2020.04.08

令和の時代に、JavaScriptで Shift-JISファイル作成 全銀データフォーマットに対応する。

JavaScript

2020.03.03

インターネットにて世論調査を行う「世論Web」サービスを始めてみました。

JavaScript

2020.01.31

まだ間に合う!!ラズベリーパイ購入なら「RSコンポーネンツ」で!最大40%オフの年に1度の大特価期末セール中!

RaspberryPi

2020.01.25

年末のレトロゲーム熱の際、ファミコンソフト一覧パッケージ作ってました。

JavaScript

2020.01.24

RANKING

Follow

SPONSOR

現在、掲載募集中です。



Links

About Us

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

Entry Profile

Graphical FrontEnd Engineer
- Daisuke Takayama

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

FOLLOW US