2019年6月23日日曜日

今更ながら Laravel始めました

PHP のバージョンがどんどん上がっていく中、そろそろフレームワークを定めてサイトを最新フレームワークで再構築しようと考えており、Laravel が勝ち組フレームワークの座を固めつつあるので、今更ながら Laravel 始めました。

以前のサイトはだいぶ昔に作っただけあって、Zend Framework 1.x で作ってあり、もう寿命と言える状況。
寿命と言っても使えなくもないけど、勉強を兼ねて再構築を決意。

ホスト先のプラットフォームは Microsoft Azure とします。
以前は AWS を使っていたけど、Azure の PaaS の方が運用も楽なので 6 年前くらいからはずっと Azure です。

Web Apps(Windows)をベースに作成していきます。
今は Web Apps でも Linux (Debian ベース) 上に作れるようになっていますが、今まで同様に Windows にします。

まずは、サイトを作る前に Laravel に慣れつつ、開発環境を整えることからはじめました。
Web Apps の Kudu 上で以下のコマンドを実行し、composer を用意。

https://getcomposer.org/download/
php -r "copy('https://getcomposer.org/installer', 'composer-setup.php');"
php -r "if (hash_file('sha384', 'composer-setup.php') === '48e3236262b34d30969dca3c37281b3b4bbe3221bda826ac6a9a62d6444cdb0dcd0615698a5cbe587c3f0fe57a54d8f5') { echo 'Installer verified'; } else { echo 'Installer corrupt'; unlink('composer-setup.php'); } echo PHP_EOL;"
php composer-setup.php
php -r "unlink('composer-setup.php');"

composer.phar ファイルが出来たので composer にてインストールします。

Laravel のインストールは以下のコマンドで実行

php composer.phar create-project laravel/laravel パス

パスを wwwroot にする場合、は既存の wwwroot を削除する必要があります。
コマンドを実行するとてんこ盛りでインストールされました。

インストールパス /public というところが公開ディレクトリになる必要があるので、Web Apps の設定を変更します。

設定 > 構成 > パスのマッピング > 仮想アプリケーションとディレクトリ
で仮想パス "/" に対する物理パスを "site\wwwroot\public" に変更します。

そしてサイトにアクセスして Laravel のページが見えました。
今は何もわからないからこれ以上は一旦触らないようにして、次にローカル開発環境を整えます。

手元の Windows 10 に PHP 7.3 をダウンロードします。
https://windows.php.net/download#php-7.3

Zip ファイルをダウンロードし、任意のところに解凍します。
composer を使うために php.ini を作成します。
php.ini-production 等をコピーして作るといいですね。

特に重要なのが extension=open_ssl で、それ以外にも使いそうなものをテキトウに有効化(アンコメント)します。
extension_dir も環境に合わせて設定しておくといいかもしれません。

その上で composer のインストールと Laravel のインストールを同様に実施しました。

次に、はじめての Laravel として、Model の作成にチャレンジしてみます。
データベースは SQL Database を使うので、SQL Server のドライバーをダウンロードしてきます。

https://docs.microsoft.com/en-us/sql/connect/php/system-requirements-for-the-php-sql-driver

最新の PHP for SQL Server driver 5.6 を使用します。
ダウンロードした extension を PHP の ext フォルダに入れて、php.ini にも追記します。(詳細省略)

既存データベースのモデルを作るにはこれをつかうといいみたいです。
composer require --dev "xethron/migrations-generator"
インストールしてからデータベースの接続情報を .env ファイルに書き込み、以下のコマンドを実行してみる。
php artisan migrate:generate 
おっと、何やらエラーが。
Doctrine\DBAL\Driver\PDOException  : SQLSTATE[IMSSP]: This extension requires the Microsoft ODBC Driver for SQL Server to communicate with SQL Server. Access the following URL to download the ODBC Driver for SQL Server for x64: https://go.microsoft.com/fwlink/?LinkId=163712

PHP for SQL Server driver 5.6 を使うには ODBC Driver が古いということで最新の ODBC Driver をインストールします。

https://docs.microsoft.com/ja-jp/sql/connect/odbc/download-odbc-driver-for-sql-server

Microsoft ODBC Driver 17 for SQL Server をインストールして、改めて実行してみます。

ようやく migration 成功!
とりあえず今日はここまで。






0 件のコメント:

コメントを投稿