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

Archives Details

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

PHP

2018.06.10

どもです。

今回は、とある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

Jenkins 認証情報「Jenkinsマスター上の~/.sshから」が表示しない

tool

2018.11.17

流れで、Raspberry Pi Zero WHを購入。気がつけばもうラズパイ4台。

RaspberryPi

2018.11.06

安く電子工作を始めるなら、電子パーツ購入は「aitendo」がおすすめ!

RaspberryPi

2018.11.06

ASUS Chromebook Flip C101PAに、Visual Studio Codeをインストール

Chromebook

2018.10.15

Chromebookに、Ubuntu (Xubuntu)をインストールしたあとの日本語入力設定

Chromebook

2018.10.14

ASUS Chromebook Flip C101PAに、Ubuntu (Linux)インストール手順

Chromebook

2018.10.10

nodeのない環境にnodeを導入(HTML5ゲームも提供)し続け、1年数ヶ月経過後、かなり開発環境が整ってきたお話。

JavaScript

2018.09.26

安い!軽い!早い! ノートPC(開発環境)。 Chromebookをついに購入いたしました!

Chromebook

2018.07.22

debian & Xserver XDSLで FireFoxが真っ白のページとなる件

Linux

2018.07.08

Kindle Fire HD 8 にLinuxを導入して扱えるようにする。超コスパ Linux タブレット構築方法!!

Linux

2018.07.04

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

PHP

2018.06.10

iPhoneXで、ubuntuを動かす。

サーバー

2018.06.09

RANKING

Follow

SPONSOR

現在、掲載募集中です。



Links

About Us

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

Entry Profile

Graphical FrontEnd Engineer
- Daisuke Takayama

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

FOLLOW US