HerokuにPHP + MySQLをデプロイする

すべての良い一日。 herokuサービスにphp + mysqlアプリケーションをデプロイした経験を共有したいと思います。 これについて初めて聞い場合こちらにいます。



行こう



既製のphp + mysqlアプリケーションがあると想像してみましょう。 開始するには、 ここで登録してください 。 確認メールが郵便局に送信されます。 次に、リンクをクリックし、パスワードと確認を入力して、[保存]をクリックします。 最初の段階は終了しました。



登録に成功すると、サービスはクライアントのダウンロードを提供します。 当然、OSごとに独自のインストールオプションがあります。 さらに、UNIXの例を検討します。



コンソールに書き込みます:



wget -qO- https://toolbelt.heroku.com/install.sh | sh
      
      







インストールに問題はないはずです。 また、gitをインストールして構成する必要があります。これについては説明しません。インターネット上にはgitに関する多くの情報があります。



インストール後、アプリケーションを入力する必要があります。



 $ heroku login
      
      







メールアドレスとパスワードを入力してください。 アプリケーションはユーザーを認証し、公開sshキーを自動的にダウンロードします。 これが発生しない場合は、アカウント(https://dashboard.heroku.com/account)にアクセスして、公開sshを追加します。







パブリックsshを表示するには、コンソールに次のように記述します。



 $ cat ~/.ssh/id_rsa.pub
      
      







次のコマンドを使用してキーを追加することもできます。



 $ heroku keys:add
      
      







これで、最初の「herokuアプリケーション」を作成する準備がすべて整いました。 アプリケーションが保存されているディレクトリに移動し、コンソールに書き込みます。



 $ heroku create
      
      







その結果、次のように表示されます。







次に、アプリケーションをheroku masterにプッシュします。



 $ git push heroku master
      
      







次に、コンソールに書き込みます。



 $ heroku open
      
      







私たちのサイトはブラウザで開きます。 mysqlを使用していなかった場合、これは終了していましたが、もう少し汗をかかなければなりません。 おそらく、mysqlに接続できないことを示すエラーが画面に表示されました。 ログを開いてエラーを確認することもできます。



 $ heroku logs
      
      







mysqlを使用する場合は、 ClearDBアドオンを使用します。 インストールするには、最初にdashboard.heroku.com/accountでクレジットカード情報を入力する必要があります。







これを行わないと、ClearDBのインストール時にエラーが表示されます。



Adding cleardb:ignite on dry-taiga-2649... failed

! Please verify your account to install this add-on

! For more information, see devcenter.heroku.com/categories/billing

! Verify now at heroku.com/verify








ClearDBをインストールするコマンドは次のとおりです。



 $ heroku addons:add cleardb:ignite
      
      







ClearDBがインストールされました。次に、データベースへのアクセスを見てみましょう。



 $ heroku config
      
      







次の形式で結果を取得します。



CLEARDB_DATABASE_URL:mysql://USER:PASSWORD@HOSTNAME/DBASENAME?reconnect=true







便利なMySQLクライアントから取得したアクセスを使用して、データベースダンプをサーバーに入力します。



PHPのデータベースへのアクセスは、次のようにして取得できます。



  $url=parse_url(getenv("CLEARDB_DATABASE_URL")); $server = $url["host"]; $username = $url["user"]; $password = $url["pass"]; $db = substr($url["path"],1); mysqli_connect($server, $username, $password); mysqli_select_db($db);
      
      







ローカルサイトとherokuの構成を毎回変更しないように、チェックを追加できます。



 if ($_SERVER['SERVER_NAME'] == "thawing-island-242342379.herokuapp.com") { $url = parse_url(getenv("CLEARDB_DATABASE_URL")); $host = $url["host"]; $username = $url["user"]; $password = $url["pass"]; $dbname = substr($url["path"], 1); } else { $host = 'localhost'; $dbname = 'db'; $username = 'user'; $password = '123'; }
      
      







APPLICATION_ENVを使用してこれを行う方がより適切ですが、これを行う方法に関する情報は見つかりませんでした。 知っている人なら-書いてください。



ほとんどすべての準備が整いました。 composer.jsonファイルをルートに追加します:



 { "require": { "ext-mysql": "*" } }
      
      







既にお持ちの場合は、 "ext-mysql": "*"



を追加する必要があります"ext-mysql": "*"







コンソールに書き込みます:



 $ git add . $ git commit -am "added db credentials" $ git push heroku master $ heroku open
      
      







ブラウザが開き、作業サイトが表示されます。



この「マニュアル」が誰かを助けてくれたら嬉しいです。



ご清聴ありがとうございました。



All Articles