UnityでAndroidにビルドする(Mac)
書き込みの流れ
Unityのプロジェクト ↓ Android用実行ファイル apkファイル作成 ↓ 実機に書き込み
ビルドの設定
- ツールバーからFile->Build Settings Platform欄からAndroidを選択 Switch Platformをクリック
- 書き込みたいSceneが「Scenes In Build」にあるかチェック
- Gameビューの画面サイズが適切かチェック
SDKのパスを設定
- Unity->Preference->External Toolsを開く Android/SDK欄に「/Users/ユーザ名/Library/Android/sdk」 Android/JDK欄に「/Applications/AndroidStudio.app/Contents/jre/jdk/Contents/Home」
Androidへの書き出し設定
- File->Build Settings->Player Settingsをクリック
- InspectorのCompany Nameを設定
- Inspector->Settings for Android->Other Settings->Package Nameを「com.ユーザ名.プロジェクト名」に変更
Android本体側の設定
- 設定->システム->端末情報->「ビルド番号」を7回タップ →「デベロッパーになりました!」という表示が出てくる
- 設定->システム->開発向けオプションをON USBデバッグをON
- USBでPCに接続
書き出し
- 実機のロックを解除
- File->Build Settings->Build And Run
- 書き込みが終わるとアプリがスタートする
Docker ComposeでLAMP環境構築にチャレンジ(Mac)
- Dockerをインストールする
- 作業ディレクトリ構成(最終盤)
- docker-compose.yml(最終盤)
- web/Dockerfile(最終盤)
- index.php(最終盤)
- いざDocker起動!
- MySQLにログインしてDBを作成
- 無事ブラウザに表示されるまでの道のり
- ハマった点①pdo_mysqlがインストールできてない
- ①解決法:dockerfileでpdo_mysqlをインストール
- ハマった点②ホストの指定先がlocalhostじゃダメ
- ②解決法:hostをdocker-composeで設定した名前に変更
前回は本通りに掲示板を作成しました.MAMPを使用したので,環境構築が爆速でした.よく分かっていないのに「なんか繋がった!」「なんかデータベースいじれる!!」「できた!!!」という感じでした. sh-lu0.hatenablog.com
なので,今回はMAMPに頼らず自分で環境構築をしてみようと思います.せっかくですので,今まで「使った方がいいっぽい」と思いつつ難しそうと敬遠していたDockerを使います.
(2019/05/14 追記) 作業順に書いており分かりにくかったため構成を修正.
Dockerをインストールする
Install Docker Desktop for Mac | Docker Documentation
作業ディレクトリ構成(最終盤)
最終的なディレクトリ構成とコードを先に載せる.
├── Docker │ └── web │ └── Dockerfile ├── README.md ├── client │ └── index.php ├── db │ └── mysql_data └── docker-compose.yml
db:DBサーバ用ディレクトリ
client:クライアントディレクトリ
DockerfileはDockerフォルダでまとめて管理
docker-compose.yml(最終盤)
version: '2' services: db: image: mysql:5.7 ports: - '3306:3306' volumes: - ./db/mysql_data:/var/lib/mysql ---(1) environment: MYSQL_ROOT_PASSWORD: 'root' web: build: ./Docker/web ports: - '8080:80' ---(2) volumes: - ./client:/var/www/html ---(3) depends_on: - db ---(4)
(1)ローカルのmysql_dataディレクトリにデータを残す
(2)8080がホスト側のポート,80がdockerコンテナ側のポートで紐付け
(3)トップページのデータが入っているディレクトリをclientに指定
(4)dbとリンクさせる.※depends_onとlinkの違いは,version2ではないらしい
docker-compose.ymlというファイルを作成することによって,
DBコンテナ立ち上げて...WEBサーバーコンテナ立ち上げて...linkさせて...
というのを一気にやってくれる.すごい!
(最初はdocker-composeて何??こわ!!と思い,1つずつlinkやport設定をコマンドで指定してた・・・)
web/Dockerfile(最終盤)
サーバーに接続したところで,pdo_mysqlがインストールできなくて詰まったため,
Dockerfileでpdo_mysqlのインストールを行う.
From php:7.1-apache Run apt-get update && docker-php-ext-install pdo_mysql
index.php(最終盤)
MySQLに接続
dbnameに使用するdb名,hostにdocker-composeに書いたコンテナ名
<?php phpinfo(); try { $db = new PDO('mysql:dbname=test_db;host=db', 'root', 'root'); } catch (PDOException $e) { print('Error:'.$e->getMessage()); die(); } ?> <p>hello world!</p>
いざDocker起動!
$docker-compose up-d
起動しているか確認
$docker ps
ちゃんと2つ起動してる!
client/index.phpにhelloworldを書いて,
docker-composeのportでホスト側8080を指定したので,http://localhost:8080/
にアクセスすると,
繋がりました!
ちなみに,なんとなくup -dと書いていたけど,
$docker-compose up
とすると
のようにアクセスされるたびに出力が見れる.-dをつけるとバックグラウンド上で起動する.
MySQLにログインしてDBを作成
$mysql -uroot -proot -h127.0.0.1 #ログイン $CREATE DATABASE test_db;
無事ブラウザに表示されるまでの道のり
ぼつになったディレクトリ構成とdocker-compose.yml
php_bbs ├── README.md ├── db │ └── mysql_data ├── docker-compose.yml ├── client │ └── index.php └── web
docker-compose.yml
version: '2' services: db: image: mysql:5.7 ports: - '3306:3306' volumes: - ./db/mysql_data:/var/lib/mysql environment: MYSQL_ROOT_PASSWORD: 'root' web: image: php:7.1-apache ports: - '8080:80' volumes: - ./client:/var/www/html depends_on: - db
ハマった点①pdo_mysqlがインストールできてない
ちゃちゃっとpdo接続の構文を探してきて,
http://localhost:8080/
で確認して終わり!!かと思ったらエラーが出てハマった.
client/index.php
<?php phpinfo(); try{ $db = new PDO('mysql:dbname=testdb;host=localhost';port=3306,'root','root'); }catch (PDOException $e){ print('Error:'.$e->getMessage()); die(); } ?> <p>hello world!</p>
でテストしたところ,could not find driverとエラーが出たので,phpinfo();で確認. 確かにpdo_mysqlがない.
①解決法:dockerfileでpdo_mysqlをインストール
docker-compose.yml上にpdo_mysqlをインストールさせる指示は書けないので,
・ディレクトリ構成を最終盤に変更して,
・docker-compose.ymlのwebをimage→buildに書き換える.
・web/Dockerfileの中でpdo_mysqlをインストールする.
すると
ちゃんとインストールできた.
ハマった点②ホストの指定先がlocalhostじゃダメ
ドライバーないよ問題を乗り越えたかと思ったら,今度はこのエラーが出た.
Error:SQLSTATE[HY000] [2002] No such file or directory
原因が分からずに散々ググってググって途方に暮れていたけど,hostの指定先がdocker上になっていないからダメだった(涙)
②解決法:hostをdocker-composeで設定した名前に変更
$db = new PDO('mysql:dbname=test_db;host=localhost';port=3306,'root','root'); ↓変更 $db = new PDO('mysql:dbname=test_db;host=db','root','root');
docker-compose.ymlでDBコンテナ名をdbとしていたので,host=dbとすると,
繋がりました・・・!!
(portの設定もいらないみたいです.書くとエラーになりました.)
参考にしたサイト:
Docker Compose - docker-compose.yml リファレンス - Qiita
Docker for MacとDocker ComposeでささっとLAMP環境を作る - Qiita
ありがとうございます
よくわかるPHPの教科書買った
とりあえず本買って作ってみる
新しいことを始めるときはまず本を買う(楽しい).
受験などで感じたことですが,参考書は「自分のレベルに合っているか」「楽しいか(最後まで続けられそうか)」が大事だと思っているので,今回も店頭で実際に見てみて,直感で選びました.挫折しないことが重要なので,最初はできるだけハードルの低そうな本を選びます.笑
今回購入したのはたにぐちまことさんの,「よくわかるPHPの教科書」です.
- 作者: たにぐちまこと
- 出版社/メーカー: マイナビ出版
- 発売日: 2018/04/26
- メディア: 単行本(ソフトカバー)
- この商品を含むブログを見る
・デザインがスッキリしていて分かりやすい
・一通り学べる
1章:プログラミングの考え方
2章:環境構築
3章:PHPの基本
4章:DBの基本
5章:Twitter風の掲示板を作る(DBも使って)
の構成になっていて,考え方〜DBを使用したサイト作成まで一通り学べました. サーバー起動やDB作成もMAMPを使うので爆速で終わります.初心者でも安心です.私はPythonを少し使っていたので3章を飛ばしましたが2日程度で完成できました.
注意するとすれば,サンプルの結果表示が本上では装飾つきになっていますが,本の中ではCSSのコードは出てきません.なので,真似して作っても同じ見た目にはなりません.自分でCSSファイルを作成して,HTMLファイルとリンクさせる必要があります.