以前のサイトはだいぶ昔に作っただけあって、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 件のコメント:
コメントを投稿