BlackIceCoffeePhenomenon

溶け出す氷によって味が薄くなると併せ、味覚が苦味に慣れていくことで、加速度的に味覚への刺激が減衰する現象に関するブログです。

夏休みの工作

TwitterWebサービス作りました。

 

  1. 動機というか

    私が目指したいエンジニアの人が
    夏休みの工作と称して、自分の技術を遺憾なく発揮して
    何かを作っていたので、それに触発されました。

    師の作品はこれ。
    https://plus.google.com/u/0/101324074162877775330/posts/UvfUdPLMwjk

  2. 学習方針について
    もちろん全部知っている知識だけでやるには成長がないので
    既に持つ知識を3割、3割は世にある情報を理解する知恵
    2割は欲しい情報を手に入れるための知識、
    後の2割を試行錯誤で挑みます。

  3. 対象範囲について

    ドメイン取って、自宅にサーバー立ててやろうかと思ったのですが
    拘ると際限なくやって、結局終わらないパターンなので
    どうせならAzureやAWSのお勉強もしましょうということで
    AzureのAppServiceを利用しています。

    そのため範囲はどんなサービス考えて、実装に必要なもの
    どう実装して・・・具体的に実装して動かしてが範囲です。

  4. 環境

    LAMP(Linux Apatche, mysql, PHP)とはちょっと遠い
    WIMP(Windows, IIS, mysql, PHP)になりました。結論から行くと最悪でしたw
    詳細については後半で記載します。

    一時期の諸行に比べればよくなった方ですが、
    やっぱりMSプラットフォームでオープンソースはまだまだ開拓途上ですね。

    以下具体的な開発のあれこれ記録

  5. 最初の最初
    Azureで開発環境用に仮想マシンをデプロイする
    サイズはStandard D2 v2 Promo
    デプロイが終わったらDNS名設定しリモデスのファイルを生成する。

  6. インストール関連

    ・VisualStudio2017をインストール
    PHP tools for VisualStuidoをインストール
     https://www.devsense.com/download
    mysql for VisualStudio入れたかもしれない


    ◇入れたけど結果的に使用しませんでした。
     ・mysql-installer-community-5.7.19.0.msiをインストール
      +mysql serverのインストールに躓く
       →VisualC++2013再配布可能パッケージを入れて解決
     ・IISをインストール




  7. 環境構築

    #Tips
    参考記事:https://docs.microsoft.com/ja-jp/azure/app-service-web/web-sites-php-mysql-deploy-use-ftp


    mysql初期テーブル作成
     スタートメニューよりCLIを呼び作成
     +MySQL 5.7 Command Line Client - Unicode
      >create database registration;

    ・TipsのURLにあるregist(ryのファイル作成と実行
     +404.3で刺さる
     →https://technet.microsoft.com/ja-jp/library/hh994592.aspx
     +WebPIでIISExpressとPHP7.0とWebCache入れる
     +リブートしたらうまくいった

    ・DB、FTPサーバへの接続とパラメータの取得
     +ググってFTPソフトを入れる
     +AzureのDBより、DB、ホスト名、ユーザ、パスワードを控える
     +AppServiceより発行プロファイルを取得しFTP部分を控える

    FTPサーバへの接続
     ホスト名:頭ftp://を除いたホスト名
     ユーザ名:publishMethod="FTP"のuserName 10桁くらい
     パスワード:publishMethod="FTP"のuserPWD 50桁くらい

    ・DBサーバへの接続(mysql workbenchでもvisualstudioでも)
     ホスト名:ap-cdbr-azure-southeast-b.cloudapp.net
     接続先DB:rtreeb
     ユーザ名:ユーザ名だし
     秘密の鍵:パスワードだし

    参考記事をもとにここまで構築。

  8. 他の登録や開発について
    + アプリ登録(callback.php登録)
    + OAuthスクリプト取得
    + もりもりスクリプトを書く
    https://dev.twitter.com/web/sign-in/resources

  9. 失敗

    + コールバックをサービス用のURLに指定していたため
    すべてWebサービス側でのテストに終始した。
    ローカルでテスト、デバッグを一切行わなかった。
    →解決策はあったはずだけど、すぐできると思い調査をしなかった。

    + Azureのmysqlは当然ながらmy.ini(my.cnf)に触れられない
    SETのクエリはなしのつぶて。
    文字コードに関するトラブルを解決できない

    + PHPのpcntlが入っていないためプロセス関連の実装ができなかった
    代替手段はあったかもしれないけど・・・・。
    現代風に非同期処理とかやりたかったんだけど・・・

  10. 総括
    結果的に6割くらいの出来だったので落第点だと思ってます。
    ただ冒険的な事をするのではなく、地に足の着いた開発をやりたいですね。

www.youtube.com

 

※おまけ
サービスの説明とソースコードです。
素人の大工みたいなものなので、そこまで価値はないと思いますが
何か始めてみたいんだって人の足掛かりにでもなれば。

ソースコードとか:https://www.axfc.net/u/3839848

必要なフレーズは「P@ssW0rd1234