#author("2024-08-03T13:23:49+09:00","default:dramsukohome","dramsukohome")
#author("2024-08-03T16:19:04+09:00","default:dramsukohome","dramsukohome")
[[Dramsuko_wiki]]

#shadowheader(1,Program);

#shadowheader(2,目次);

#contents




* Android アプリ開発[#cf59c923]
-[[参考サイト(ASCIIデジタル これで作れる! Androidのアプリケーション):http://ascii.jp/elem/000/000/533/533945/]]~
Eclipse + Android SDK の記事ですが、自分はこの記事を Android Studio に読み替えて~
アプリを作成しています。~



** 開発ソフト [#i6610ec6]


*** eclipse [#pfd740ed]
Android 開発のサポートが2015年12月で終了することが発表されています。


*** Android Studio [#f26f6641]
Eclipse 亡き後、無料の開発ツールはこちらにシフトしていくように感じます。~
Windows,Mac,Linux 全てのOSに対応しているため、Eclipse 同様使い勝手は良さそうです。




* Android Studio(Ubuntu) [#z49cb08d]



** Install [#q7f35ca1]
-2020/8/29
-事前準備
 sudo apt install openjdk-11-jdk
 sudo apt-get install libc6:i386 libncurses5:i386 libstdc++6:i386 lib32z1 
libbz2-1.0:i386 adb
 sudo apt install qemu-kvm
 sudo adduser $USER kvm
-Android Studio のダウンロード
--[[Android Studio(Developers):https://developer.android.com/studio?hl=ja]]
-ファイルを展開(path名は適宜変えて下さい)
 mkdir ~/androidStudio
 mv android-studio-ide-193.6626763-linux.tar.gz ~/androidStudio
 cd ~/androidStudio
 tar zxfv android-studio-ide-193.6626763-linux.tar.gz
-studio.sh を実行
 android-studio/bin/studio.sh
++ 過去の設定を読み込むか聞かれる。とりあえず「Do not import settings」を選択。
--- 「OK」 ボタン
++ (このあと固まってるようだったので ctrl + c で一度キャンセル、再実行した)
++ Data Sharing
--- 自分はとりあえず「Send usage statistics to Google」を選択。
--- 無料で使えるソフトは開発元にフィードバックしてお礼したい。
++ (このあと固まってるようだったので ctrl + c で一度キャンセル、再実行した)
++ しばらくすると「Next」ボタンが出てきたので押した
++ Install Type「Custom」を選択してみる。
++ Select default JDK Location.
--- [Next]ボタンを押す
++ Select UI Theme。自分は「Light」を選択して「Next」ボタン。
++ SDK Components Setup。選択できる所はすべて選択して「Next」ボタン。
++ Verify Settings。「Next」ボタン。
++ Emulator Settings。「Finish」ボタン。
++ Download中。しばし待つ。
++ 「Finish」ボタン
++ その後、何度か Ctrl + c を押してから再起動したら起動した。



** 初期設定 [#k787fb24]
-右上の「SDK Manager」を押して持っているAndroid のバージョンをチェックしダウンロード。



** ショートカットキーまとめ [#g6db5889]
+全般
-- エラーの対策候補の表示:Alt + Enter
-- クイックフィックス:Alt + Enter
-- ハイライトされているエラーへ飛ぶ:F2 or Shift + F2
-- Refactor Rename:Shift + F6
-- メソッドパラメーターの表示:Ctrl + P
-- 使ったファイルの履歴からファイルを選択:Ctrl + E
-- ナビゲーションバーを開く:Ctrl + Home
-- コード生成メニューの表示:Alt + Insert
-- 「ビュー」の選択を表示:Alt + F1
-- 置換:Ctrl + R
-- 囲む(TryCatchなど):Ctrl + Alt + T
-- Introduce Variable:Ctrl + Alt + V
-- コメント(行):Ctrl + /
-- コメント(ブロック):Ctrl + Shift + /
-- 検索:Shift,Shift
-- Compile:Ctrl + F9
-- 自動Import:Ctrl + Alt + O
-- ソースの畳み込み:Ctrl + Numpad -
-- ソースの展開:Ctrl + Numpad +
+デバッグ
-- ブレークポイント:Ctrl + F8
-- デバッグの実行:F9
-- デバッグの停止:Ctrl + F2
-- プログラムの再開:F9
-- ステップオーバー:F8
-- ステップイン:F7
-- ステップアウト:Shift + F8
-- カーソル位置まで実行:Alt + F9
+定義
-- 定義へジャンプ:Ctrl + B
-- 参照されている箇所の表示:Alt + F7
-- ローカル変数の定義:Ctrl + Alt + V
-- フィールドの定義:Ctrl + Alt + F
-- 定数定義:Ctrl + Alt + C
-- メソッドの定義:Ctrl + Alt + M
-- strings.xml へ書き出し:Alt + Enter -> Extract string resource
+エミュレーター
-- Android:Home ボタン
--- Home ボタン
-- Android:Menuボタン
--- F2
-- Android:Startボタン
--- Shift + F2,PageDown
-- Android:Backボタン
--- ESCボタン
-- Android:発信・通話ボタン
--- F3
-- Android:終話ボタン
--- F4
-- Android:検索ボタン
--- F5
-- Android:電源ボタン
--- F7
-- Android:ボリュームアップボタン
--- テンキーのプラス,Ctrl + F5
-- Android:ボリュームダウンボタン
--- テンキーのマイナス,Ctrl + F6
-- Android:カメラボタン
--- Ctrl + Numpad 5, Ctrl + F3
-- Android:横レイアウトへ切り替え
--- Ctrl + Numpad 7, Ctrl + Numpad 9
-- Android:前のレイアウトに切り替え
--- Numpad 7, または Ctrl + F11
-- Android:次のレイアウトに切り替え
--- Numpad 9, または Ctrl + F12
-- Android:方向ボタン
--- Numpad 4,8.6.2
-- Android:方向ボタンの真ん中
--- Numpad 5



** Android 開発の基本 [#b8354775]


*** ソースのディレクトリ構造 [#ge4975a3]
-java
--Mainソースの場所
--- app -> src -> main -> java -> (domain name) -> MainActivity
- レイアウトの場所
-- Main レイアウト
--- app -> src -> main -> res -> layout -> activity_main.xml
-- 横向きレイアウト landscape
--- app -> src -> main -> res -> layout-land -> activity_main.xml
- constant(定数)
--文字列のConstantファイル(定数設定ファイル)の場所
--- app -> src -> main -> res -> values -> strings.xml
--日本語文字列のConstantファイル(定数設定ファイル)の場所(初期は無いので作成)
--- app -> src -> main -> res -> values-ja -> strings.xml
--数字のConstantファイル(定数設定ファイル)の場所(初期はないので作成)
--- app -> src -> main -> res -> values -> integers.xml
-AndroidManifest.xml の場所
-- app -> src -> main -> res -> AndroidManifest.xml



** エミュレーター [#r7e11c0b]
*** カメラをエミュレートする [#odf22ace]
- エミュレーターの設定でカメラを有効にする。



** その他 [#r5976e6f]


*** Log.d 種類 [#vabe632a]
- Android Monitor, Logcat で表示
 Log.e(TAG, error);
 Log.w(TAG, warn);
 Log.i(TAG, info);
 Log.d(TAG, debug);
 Log.v(TAG, verbose);


*** 実行中のメソッド名を取得 [#j344f6db]
 StackTraceElement[] stackTraceElements = Thread.currentThread().getStackTrace();
 for (StackTraceElement stackTraceElement : stackTraceElements) {
   System.out.println("-----------------------------");
   System.out.println("ClassName  : " + stackTraceElement.getClassName());
   System.out.println("FileName   : " + stackTraceElement.getFileName());
   System.out.println("MethodName : " + stackTraceElement.getMethodName());
   System.out.println("LineNumber : " + stackTraceElement.getLineNumber());
   System.out.println("-----------------------------");
 }


*** インテントについて [#b422703b]
-インテントとは「機能」の呼び出しのこと。~
例えばウェブブラウザーを呼び出すときは、~
ブラウザーの名前を指定すること無く、~
ウェッブラウザーの「機能」を呼び出す。~
すると、ウェブブラウザー機能を持ったどのソフトを起動するか、~
選択画面が表示される。~
-またインテントはアクティビティー切り替えにも利用される。


*** 独自Classの getString について [#z240e1e0]
Context を引数渡ししてあげればいい。
そうすると
 argContext.getString(R.string.logdRunnning);
などで引ける。
全体的には
 public void outputLogSummary(Context argContext,
                              Integer argMethodNo){
     String logComment = argContext.getString(R.string.logdRunning);
     this.outputLogSummary(argContext,argMethodNo,logComment);
 }
呼び出し元は
 private CommonCls pCommonCls = new CommonCls();
 
 pCommonCls.outputLogSummary(this, METHOD_NO_MAIN_ACTIVITY);


*** Activity の追加 [#k8cc3fa3]
AndroidManifest.xml に追加するのを忘れないようにしよう。~
また追加は「新規」-「Activity」-「Brank Activity」で~
追加するとレイアウトも一緒に追加されて便利。~
以下はAndroidManifest.xml
 <activity
     android:name=".Sample0501"
     android:label="@string/title_activity_sample0501"></activity>


*** USB Developer options, 実機のデバッグ, 認識しない場合, debug [#haa5ffb2]
+最初にUSBケーブルでPCと接続
+Android studio を起動しておく
+[Developer options]-[USB debugging] をオン、オフする。


*** R.id.IntentRequestGeneral [#o9fcb76d]
- クイックフィックスから、[Create ID value resource] を選択してids.xmlを作成する。
- 値は1でOK。


*** その他 [#g6b255e7]
-layoutのファイル名は小文字のみ使用可能




* Android Studio(Windows) [#m167ca18]



** Download and Install [#y41a1f80]
-[[参考ページ:https://developer.android.com/studio/install?hl=ja#windows]]


*** Download [#qbbcfe5c]
-[[https://developer.android.com/studio?hl=ja]]


*** Install [#pbfc87cb]
-「studio64.exe」をダブルクリック。



** ADVの作成 [#f12cd0d1]
-Kitcat 4.4 API 19で作る。
--CPUがIntelの場合、あたり前だがCPU/ABIは x86を使用。
--The emulator process for AVD xxxxx was killed. が表示されて、すったもんだ1時間以上悩んだが、CPU/ABIがarmになってた。。。orz




* PHP: Hypertext Preprocessor [#k50e5340]
http://www.php.net/
- http://jp2.php.net/ (日本のミラーサイト)

- 日本PHPユーザー会 (Japan PHP User Group)
-- http://www.php.gr.jp/



** PHP,エディタ,IDE [#f89f6505]


*** Eclipse [#cdbfa288]
-とにかく重い。。。最近は使ってない。


*** Atom [#d5d778cf]
-とにかく重い。。。最近は使ってない


*** Microsoft Visual Studio Code [#a2248b3e]
+最近はこれを使ってる。Linuxでも動く。~
+最近のMicrosoftは変わってLinuxと親和路線。良い感じ(^^)
+Install
++ubuntuへインストール
++[[Visual Studio Code公式ページ:https://code.visualstudio.com/]]
---.debのインストーラーを落とす
++以下のコマンドでインストール(例)
 sudo dpkg -i code_1.51.0-1604600753_amd64.deb
+日本語化
++プラグインのインストールから以下を検索
++File -> User setting -> plugin -> 「Japanese」で検索
++「Install」をクリック
+その他プラグイン
++PHP IntelliSense(ほぼ必須)
++PHP Debug(お好みで)
++Eclipse Keymap(お好みで)
--- Ctrl + Hが変なところに割り振られるが、~
以下から変更することで元に戻る。
--- 「ファイル」->「ユーザー設定」->「キーボード・ショートカット」->「Ctrl+H」で検索。
--- 不要なものを削除。
+PHP Debugの使用方法
++PHPのインストール
 sudo apt-get update
 sudo apt-get install php php-mysql
++Apache2のインストール
 sudo apt-get install apache2
++PhpInfoの表示方法
+++以下のファイルを作成
 /var/www/html/phpInfo.php
+++中身はこんな感じ
 <?php
 
 phpinfo();
 
 ?>
+++表示
>
-[[http://localhost/phpInfo.php]]
<
++PhpInfoの全内容を以下のサイトにコピーして「Analyze my phpinfo() output」ボタンを押す
---[[Installation Wizard:https://xdebug.org/wizard]]
++download [[xdebug-2.9.8.tgz:http://xdebug.org/files/xdebug-2.9.8.tgz]]
++PreInstall
 sudo apt-get install php-dev autoconf automake
++解凍
 tar xzfv xdebug-2.9.8.tgz
++ディレクトリの移動
 cd xdebug-2.9.8
++以下のコマンドを実行
 phpize
 ./configure
 make
++以下のコマンドの日付っぽい数字は各環境で変わります
 sudo cp modules/xdebug.so /usr/lib/php/20170718
++ 「/etc/php/7.2/apache2/php.ini」ファイルの編集
 sudo vim /etc/php/7.2/apache2/php.ini
++ 以下の行を最後に追加
 ; xdebug
 zend_extension = /usr/lib/php/20170718/xdebug.so
 xdebug.remote_enable = 1
 xdebug.remote_connect_back = 1
 xdebug.remote_autostart = 1
++ apache2の再起動
 sudo service apache2 restart
++使用方法
+++Visual Studio Code上~
PHPコードの適当な所~
ブレークポイントを設定(標準ショートカットはF9)
+++Visual Studio Codeの左側のアイコン、上から4つ目,実行アイコンをクリック
+++「launch.jsonファイルを作成します」のリンクをクリック
+++「PHP」を選択
+++作られれば「launch.json」ファイルは不要なので閉じます。
+++「実行」->「デバッグの開始」を押します。
+++Web Browser(Chromeなど)でアクセスします。以下は例
 http://localhost/test.php
+++Visual Studio Code 上で止まることを確認します。



** phpで、Nikonのカメラで撮ったjpeg画像から、レンズ情報を抜き出す方法 [#y0ae9f85]
-[[phpで、Nikonのカメラで撮ったjpeg画像から、レンズ情報を抜き出す方法]]
-php, timezone, タイムゾーン設定
 sudo vi /etc/php.ini
 date.timezone = "Asia/Tokyo"



** mbstringの設定 [#hbe2639b]


*** mbstring の install [#i3bc83fb]
 yum install php-mbstring


*** mbstring の設定 [#c06e4a5d]
 [mbstring]
 ; language for internal character representation.
 ; http://php.net/mbstring.language
 mbstring.language = Japanese ← コメント(;)をはずします。
 
 ; internal/script encoding.
 ; Some encoding cannot work as internal encoding.
 ; (e.g. SJIS, BIG5, ISO-2022-*)
 ; http://php.net/mbstring.internal-encoding
 mbstring.internal_encoding = UTF-8 ← コメントをはずし、内部エンコーディングをUTF-8へ。
 
 ; http input encoding.
 ; http://php.net/mbstring.http-input
 mbstring.http_input = auto ← コメント(;)をはずします。
 
 ; http output encoding. mb_output_handler must be
 ; registered as output buffer to function
 ; http://php.net/mbstring.http-output
 mbstring.http_output = UTF-8 ← コメントをはずし、エンコーディングをUTF-8へ。
 
 ; enable automatic encoding translation according to
 ; mbstring.internal_encoding setting. Input chars are
 :
 ; enable automatic encoding translation according to
 ; mbstring.internal_encoding setting. Input chars are
 ; converted to internal encoding by setting this to On.
 ; Note: Do _not_ use automatic encoding translation for
 ;       portable libs/applications.
 ; http://php.net/mbstring.encoding-translation
 mbstring.encoding_translation = On ← コメントをはずし、Onに。
 
 ; automatic encoding detection order.
 ; auto means
 ; http://php.net/mbstring.detect-order
 mbstring.detect_order = auto ← コメント(;)をはずします。



** CentOS6 に PHP5.6 をインストール [#we8b32ba]


*** EPELとRemiリポジトリを追加 [#e610fc4c]
-EPEL リポジトリ
 yum install epel-release
-Remi リポジトリ
 rpm -Uvh http://rpms.famillecollet.com/enterprise/remi-release-6.rpm


*** 旧PHPの削除 [#n58cbd56]
 yum remove php-*


*** PHP5.6のインストール [#e8c9ff8e]
 sudo yum install --enablerepo=remi,remi-php56 php php-devel php-mbstring php-pdo php-gd php-xml php-mcrypt


*** php-mysql のインストール [#kbc12fc5]
 sudo yum install -y http://repo.mysql.com/mysql-community-release-el6-5.noarch.rpm
 sudo yum install phpMyAdmin


*** そのたダメおしインストール [#e5934ac8]
 sudo yum install -y --enablerepo=epel libmcrypt libtidy
 sudo yum install -y --enablerepo=remi,remi-php56 php php-devel php-pear php-mbstring php-xml php-mcrypt php-gd php-pecl-xdebug php-opcache php-pecl-apcu php-fpm php-phpunit-PHPUnit php-mysqlnd


*** php.iniを編集 [#y05406ca]
 date.timezone = "Asia/Tokyo"
 
 mbstring.language = Japanese
 mbstring.internal_encoding = UTF-8
 mbstring.http_input = UTF-8
 mbstring.http_output = pass
 mbstring.encoding_translation = On
 mbstring.detect_order = auto
 mbstring.substitute_charset = none



** php5 -> php7 へマイグレーション(CentOS7へのインストール) [#i486992f]


*** Apacheのインストール [#vdedc1eb]
 sudo yum install httpd


*** mysqlのインストール(CentOS7) [#xf71daa1]
-以下を参照
--[[mysql#o324665b]]


*** php のインストール(CentOS7) [#yce37d55]
 sudo yum install --enablerepo=remi,remi-php70 php php-devel php-mbstring php-pdo php-gd
 sudo yum install --enablerepo=remi,remi-php70 php-mysqlnd


*** mysql関連のソースコード変更 [#yfad7fcb]
- 参考リンク(外部) : [[mysqlをmysqli(手続き型)に書き直した時のメモ:http://2-1b.com/2016/04/18/mysql%E3%82%92mysqli%EF%BC%88%E6%89%8B%E7%B6%9A%E3%81%8D%E5%9E%8B%EF%BC%89%E3%81%AB%E6%9B%B8%E3%81%8D%E7%9B%B4%E3%81%97%E3%81%9F%E6%99%82%E3%81%AE%E3%83%A1%E3%83%A2/]]
- $con = mysql_connect($DBSERVER, $DBUSER, $DBPASSWORD);
-- -> $con = mysql&color(red){i};_connect($DBSERVER, $DBUSER, $DBPASSWORD);
-- 「i」を付ける
-$selectdb = mysql_select_db($DBNAME, $con);
-- -> $selectdb = mysql&color(red){i};_select_db(&color(red){$con};, &color(red){$DBNAME};);
-- 「i」を付け、$con と データベース名を逆にする
- $col = mysql_fetch_array($rst)
-- $rst = mysqlmysql&color(red){i};_query($con, $sql);
-- -> $col = mysqlmysql&color(red){i};_fetch_array($rst)
-- 「i」を付ける
-mysql_affected_rows()
-- $con = mysqli_connect($DBSERVER, $DBUSER, $DBPASSWORD);
-- $rst = mysqli_query($con, $sql);
-- -> mysql&color(red){i};_affected_rows($con)
-- 「i」を付ける
- ONLY_FULL_GROUP_BY の制限
-- 参考リンク(外部) : [[脱!ゆるふわMySQL:https://qiita.com/bboobbaa/items/9fdca834076cb4c3389e]]
-- group by する際, select で指定している項目は全て書かなければならない。
--- 以下はエラー
 select columnA, columnB, columnC, columnD from tableName group by columnA
--- 以下へ修正
 select columnA, columnB, columnC, columnD from tableName group by columnA, columnB,  columnC, columnD


*** その他 [#m8265fb3]
- split は使えない
-- explode へ変換


*** バージョン指定インストール(PHP) [#hb6cdd6b]
 sudo yum install --disablerepo=* --enablerepo=epel,remi-php74,remi,remi-safe php-common



** バージョンアップ(for zabbix) [#d7e8173b]


*** バージョンアップ前後のバージョン [#n4a7a416]
-バージョンアップ前
--5.3.3
-バージョンアップ後
--7.1.33


*** install されている php 関連パッケージを確認 [#d117ee3a]
 rpm -qa | grep php
-例
 php-xml-5.3.3-27.el6_5.2.x86_64
 php-bcmath-5.3.3-27.el6_5.2.x86_64
 php-pdo-5.3.3-27.el6_5.2.x86_64
 php-5.3.3-27.el6_5.2.x86_64
 php-common-5.3.3-27.el6_5.2.x86_64
 php-mbstring-5.3.3-27.el6_5.2.x86_64
 php-gd-5.3.3-27.el6_5.2.x86_64
 php-cli-5.3.3-27.el6_5.2.x86_64
 php-mysql-5.3.3-27.el6_5.2.x86_64


*** epel のインストール [#k50df99b]
 sudo yum install epel-release


*** remi のインストール [#vc7568da]
 sudo yum install https://rpms.remirepo.net/enterprise/remi-release-6.rpm


*** 旧PHPの削除 [#a759eea1]
 yum remove php*


*** libwebp のインストール(したコマンドのエラー対策) [#g740a822]
 yum install libwebp --enablerepo=epel


*** バージョンアップ・コマンド [#yb11c2d8]
 yum install --enablerepo=remi,remi-php71 php php-pdo php-mbstring php-common php-cli php-mysql php71-php-bcmath php-gd php-xml php-gd



** エラー表示 [#h0efac3b]


*** リンク [#c04472b9]
-[[PHPのエラー表示設定について(外部):https://qiita.com/shotets/items/3c95aef631b2c5eadae5]]


*** PHPファイルで設定 1 [#wb8531f0]
 <?php
 // エラーを出力する
 ini_set('display_errors', "On");
 ?>


*** PHPファイルで設定 2 [#ib8dc12d]
 <?php
 // エラーを出力する
 ini_set( 'display_errors', 1 );
 ?>


*** httpd.conf or .htaccess [#xb10fa9f]
 php_flag display_errors off


*** php.ini [#u2008ea5]
 display_errors = Off



** PHP,その他 [#p73d34e6]


*** fopen, fgets, したハンドルをリセットする [#ea1c1d5e]
-ファイルポインタの位置を先頭に戻す
-例
 <?php
 $handle = fopen('output.txt', 'r+');
 
 fwrite($handle, 'Really long sentence.');
 rewind($handle);
 fwrite($handle, 'Foo');
 rewind($handle);
 
 echo fread($handle, fil


*** PHP Warning:  PHP Startup: Unable to load dynamic library './ext/php_exif.dll' - 指定されたモジュールが見つかりません。 [#v5b45087]
+[[参考:http://php.adamharvey.name/manual/ja/install.windows.extensions.php]]
|php_exif.dll|EXIF 関数&br;php_mbstring.dll。&br;php.ini で php_exif.dll は php_mbstring.dll の後で読み込まれる必要がある。|
+php.iniの場所を確認
++Windows(以下のコマンドの結果と同じPathにある)
 where php
++Linux
 which php
++ /bin の場合
--- バージョンを確認
 php -v
--- 編集
 sudo vi /etc/php/7.4/cli/php.ini
+php.iniで以下、修正
 extension_dir = "./ext/"
 
 extension=php_mbstring.dll
 extension=php_exif.dll




** 今さら「PHP 5.2.1」「Apache 2.2」「MySQL 5.0.51a」+「Visual Studio Code(VS code)」でデバッグ環境(XDebug)を作る。 [#w29363d7]


*** Apacheのダウンロードとインストール [#qd5edf0a]
+以下のサイトからダウンロード
-- [[Index of /dist/httpd/binaries/win32:https://archive.apache.org/dist/httpd/binaries/win32/]]
-- 自分は以下
--- apache_2.2.8-win32-x86-openssl-0.9.8g.msi
+ MSIファイルを実行してインストール
-- 自分は以下のpathにインストール。
--- C:\php\Apache2.2
+conf ファイルの編集
-- 自分の場合のpath
--- "C:\php\Apache2.2\conf\httpd.conf"
++ 変更箇所1
--- 変更後
 #Listen 80
 Listen 20080
--- 変更前
 Listen 80
++ 変更箇所2
--- 変更後
 #ServerName hoge.domain.net:80
 ServerName hoge.domain.net:20080
--- 変更前
 ServerName hoge.domain.net:80
+apacheのインストール
--[[参考:Apache公式サイト;https://httpd.apache.org/docs/current/platform/windows.html]]
--以下は例
 cd D:\php\Apache2.2\bin
 httpd.exe -k install 
+動作確認
-- 一応 Apacheは再起動
-- Windows PCで以下のURLにアクセス。~
「It works!」と表示されればOK。
--- [[http://localhost:20080/]]
+サービスの自動起動停止(ここはお好みで)
-- Windows + x -> コンピューターの管理 -> 下の方の「サービス」から変更。
+Monitor Apache Servers の自動起動も停止
-- Ctrl + Shift + Esc -> 「スタートアップ」タブから無効化


*** PHPのインストール [#j4a3f322]
+ダウンロード
-- [[Unsupported Historical Releases:https://www.php.net/releases/]]
-- 自分は5.2.4 の Windows binary をダウンロード
+解凍する。php-5.2.1-Win32.zip
+解凍したものを自分は以下のフォルダへコピー
-- C:\php\php521
+php.iniファイルの作成(templateからコピー)
-- 元ファイルについて
--- php.ini-recommended
>
-セキュリティー高めのtemplate.
<
--- php.ini-dist
>
-開発する時はこっちがお勧めらしい。
<
-- なので php.ini-dist をコピーして名前を以下に変更
--- php.ini
+もう一度、apacheのconfファイル編集
--C:\php\Apache2.2\conf\httpd.conf
--以下を一番最後に追加
 LoadModule php5_module "C:/php/php521/php5apache2_2.dll"
 AddHandler application/x-httpd-php .php
 
 # configure the path to php.ini
 PHPIniDir "C:/php/php521"
+動作確認
-- phpinfo.php というファイルを以下のフォルダへ作成。
--- "C:\php\Apache2.2\htdocs\phpinfo.php"
-- ファイルの中身は以下な感じで作成。
 <?php
 
 phpinfo();
 
 ?>
-- 確認
--- [[http://localhost:20080/phpinfo.php]]
-- PHP Version 5.2.1 などの青っぽい画面が表示されればOK


***XDebugger のインストール [#y142c0fe]
+以下のサイトからダウンロード
-- [[https://xdebug.org/download/historical]]
-- PHP 5.2 に合うXDebuggerはピンポイントで以下。
--- 「Xdebug 2.1.2」「PHP 5.2 VC6 TS (32bit)」
--- TS はスレッドセーフ(Thread Safe)の略。
--- 対義語はNTS(Not Thread Safe)
--- ダウンロードするとわかるが、dllのファイルにNTSが付いてない=TS
-- ダウンロードしたdllファイル(php_xdebug-2.1.2-5.2-vc6.dll)を以下のフォルダへコピー。
--- C:\php\php521\ext\
+php.iniの編集
-- "C:\php\php521\php.ini"
-- 以下の語句を最後に追加
 [XDebug]
 xdebug.dump_undefined = 1
 xdebug.remote_enable = 1
 xdebug.remote_host=localhost
 xdebug.remote_port=9001
 xdebug.remote_handler=dbgp
 xdebug.remote_mode=req
 xdebug.remote_autostart = 1
 xdebug.remote_log = "c:\php\xdebugLog\xdebug.log"
 zend_extension_ts=C:\php\php521\ext\php_xdebug-2.1.2-5.2-vc6.dll
+インストールされたか確認
-- 一応Apacheは再起動
-- コマンド・プロンプトから以下のコマンドで確認
 php -v
-- 以下の表示で認識したことを確認
--- C:\Users\metal>php -v~
PHP 5.2.1 (cli) (built: Feb  7 2007 23:11:26)~
Copyright (c) 1997-2007 The PHP Group~
Zend Engine v2.2.0, Copyright (c) 1998-2007 Zend Technologies~
     &color(red,){with Xdebug}; v2.1.2, Copyright (c) 2002-2011, by Derick Rethans
--- &color(red,){注意:phpinfoには反映されません};


*** VS code(Visual Studio Code) [#ra09487c]
+ PHP Debugのインストール
++ 左側のテトリスみたいなマークをクリック。
++ 検索のテキスト・ボックスに「PHP Debug」を入力し検索する。
++ 検索結果を選択し右側の「インストール」ボタンを押しインストール。
+ PHP Debugの設定
++ 左側の虫と再生マークをクリックする。(下から2番目)
++ 「launch.json」のリンクをクリックする。(「実行とデバッグ」の下)
--- 「PHP」を選択。
--- その前に「ワークスペース」と出る事もある。
++ 以下のように編集
	"launch": {
		"version": "0.2.0",
		"configurations": [
			{
				"name": "Listen for Xdebug 2 (Legacy)",
				"type": "php",
				"request": "launch",
				"port": 9001
			},
			{
				"name": "Launch currently open script",
				"type": "php",
				"request": "launch",
				"program": "${file}",
				"cwd": "${fileDirname}",
				"port": 9001,
	
			}
		]
	}
+PHP Intelephenseの設定確認
++ 左側、テトリスみたいなマークをクリック
++ 「PHP Intelephense」の歯車マークをクリック
++ 「拡張機能の設定」をクリック
++ どこかにある「settings.jsonで編集」をクリック
++ 以下2点、合っているか確認し、違っていれば修正
 "php.validate.executablePath": "C:\\php\\php521\\php.exe",
 "php.executablePath": "C:\\php\\php521\\php.exe",
+動作確認
++ 一応Apacheは再起動
++ VS code で先程作った phpinfo.php を開く。
++ 「phpinfo();」 の左側をクリックしブレークポイントを設定。
++ 実行前に「Launch currently open script」を選択する。
++ F5キーで実行
--- 止まる事を確認



** 「Fatal error: Call to undefined function mysqli_connect()」エラー [#eedb7f2a]
-[Apache Service Monitor]から再起動してもApacheは再起動されない。
-- Windowsのサービスから再起動が必要




* java [#r746e3cd]



** servlet の 405 エラー [#xd1ac8a7]
- doGet メソッドに super.doGet(req,resp); を含めてはいけない。



** Subversion [#f35293d4]
[[参考サイト(Linux-UbuntuでのSubversionのインストールと使い方):http://wisdomtrees.net/?p=271]]


*** Install [#e585c65d]
-Apache のインストール
 sudo apt-get install apache2
-Subversion のインストール
 sudo apt-get install subversion subversion-tools libapache2-svn
 
 
*** Subversion の設定 [#ua21e8e9]
- 必要なファイルを /etc/apache2/mods-enabled/ へリンク
 cd /etc/apache2/mods-enabled
 ln -s ../mods-available/dav.load dav.load
 ln -s ../mods-available/authz_svn.load authz_svn.load
 ln -s ../mods-available/dav_svn.conf dav_svn.conf
 ln -s ../mods-available/dav_svn.load dav_svn.load
- [dav_do_find_liveprop]エラー対応
-- dav.load が読み込まれていない。以下確認
 cd /etc/apache2/mods-enabled
 ln -s ../mods-available/dav.load dav.load
-conf ファイルの編集
-- 以下の文字列を追加。~
sudo vim /etc/apache2/mods-enabled/dav_svn.conf
 <Location /svn>
   DAV svn
   SVNParentPath /home/svn
 </Location>


*** リポジトリの作成 [#x52c7bab]
 sudo mkdir /home/svn/
 cd /home/svn/
 sudo svnadmin create test


*** 作成したファイルの権限変更 [#o3f945e6]
 cd /home/svn/
 sudo chown -R www-data:www-data test


*** ElipseへSubversion client をインストールする。 [#a4eeae00]
- Subversion client のインストール
-- neon を例に取って進める。
-- [ヘルプ]-[Install new software]
-[作業対象]に右のURLを入力[http://community.polarion.com/projects/subversive/download/eclipse/6.0/update-site/]
-右を選択しインストール。Subversive SVNコネクター > SVNKit1.8.4実装(オプション)


*** Android studio, Subversionの設定(中身なし) [#ib25e5b7]
-[バージョン管理]-[Enable version control integration...]
-[Subversion]を選択しOK
-最初にチェックアウトを行う
-- [バージョン管理] - [バージョン管理からのチェックアウト]-[Subversion]




* UML図 [#o92cd006]



** シーケンス図(Sequence Diagram) [#pabb66fc]
- 自動で書けるツールを色々と探してたが見つからなかった。~
ただし以下のソフトはとても良かったので紹介。
--[[PlantUML:http://plantuml.com/]]
--[[Manual:http://plantuml.com/sequence-diagram]]

トップ   編集 差分 バックアップ 添付 複製 名前変更 リロード   新規 一覧 単語検索 最終更新   ヘルプ   最終更新のRSS