blog.kur.jp

バイオリンと山、自転車をこよなく愛するkurのチラシの裏。たまには技術的なことを書いたりするかも知れません。

Azure App ServiceでLaravelを動かす

Githubに置いてあるプロジェクトをAzure App Serviceで動かそうとしたのだけど、思ったより苦労してしまったのでメモ。とりあえず作業のみ。ちなみにLaravel のバージョン5.6.23でした。 

1. GithubにLaravelプロジェクトをプッシュする

まず、新しくLaravelプロジェクトを作ります。

Laravel new laravelapp

そしてこれをとりあえずGithubに突っ込んでおきましょう。

2. Azure App Serviceで新しいアプリを作成する

無料プランで使おうと思った場合、Windowsを選択する必要がああります。

3. アプリケーションの設定を行う

設定項目は下記の通り。

全般設定

phpのバージョン 7.1

アプリケーション設定 

APP_KEY base64:AwYPHtuaOUQIUjAGVCwNg8/jEboqexg1q
APP_DEBUG true
SCM_REPOSITORY_PATH ..\repository
SCM_TARGET_PATH .. 

なお、ここでAPP_KEYは下記のようにして生成します。

php artisan key:generate --show

仮想アプリケーションとディレクトリ

/ site\public

デプロイオプションとして、Githubの上記プロジェクトを指定

4. MySQL in App

せっかくなのでMySQL in Appを使用しますオンにします。

5. MySQL接続情報の取得

「開発ツール」の「コンソール」を開き、下記のようなコマンドで、接続情報を取得できます。

> cd d:\home\data\mysql
d:\home\data\mysql
> cat MYSQLCONNSTR_localdb.txt
Database=localdb;Data Source=127.0.0.1:<ポート>;User Id=azure;Password=<パスワード>

6.ソースコードの修正

上記接続情報をソースに反映させます。

.envとdatabase.phpに反映させれば多分大丈夫。

web.configの生成

IISでは.htaccessが使えないので、web.configを下記のように設定します。

<configuration>
  <system.webServer>
        <handlers accessPolicy="Read, Execute, Script">
        </handlers>
        <rewrite>
            <rules>
                <rule name="Rules for laravel" stopProcessing="true">
                    <match url="^(.*)$" ignoreCase="false" />
                    <conditions logicalGrouping="MatchAll">
                        <add input="{REQUEST_FILENAME}" matchType="IsFile" ignoreCase="false" negate="true" />
                        <add input="{REQUEST_FILENAME}" matchType="IsDirectory" ignoreCase="false" negate="true" />                     
                    </conditions>
                    <action type="Rewrite" url="index.php/{R:1}" />
                </rule>
            </rules>
        </rewrite>
    </system.webServer>
</configuration>

7. Githubにコミット

上記修正したファイルをコミットします

migrate

Azureのコンソールから

php artisan migrate

以上で、動くはず。

参考にしたサイト

medium.com

 

docs.microsoft.com

 

medium.com

uzulla.hateblo.jp

 

Laravel5.1.xをIIS8.5で使う

 

Check! Azure Web Apps + MySQL In App で WordPress を構築する