カテゴリー: MySQL

WordPress検証用環境の作成手順(`・ω・´)

android用の神経衰弱ゲームを公開しました(・∀・)
The Match-up(Memory) game for android was released!

Google Play:
Mole's Match-up.

Introduction page:
Mole’s Match-upをリリースした∩( ・ω・)∩


以下のローカル環境に他所で動いているWordPressを移す手順について記す。
かなり端折ったのに長くなった(´・ω・`)

  • Windows 10 Pro (Hyper-V 未インストール)
  • Virtual box
  • ubuntu server
  • apache2

備忘録なので作業検証時に知った関係ないことや初歩的なことも書いてある(ノ∀`)
WordPressの移行先フォルダは”wpbl”になっているが、これは元の環境に合わせて適宜変更する。
 


 
 



VirtualBoxとUbuntu Serverのインストール

  1. Virtual Boxをダウンロードして来てインストールする。
  2. Virtual Boxでubuntu用の仮想マシンを作成する。
  3. 作成した仮想マシンの「ネットワーク」の「アダプター1」タブの「割り当て」を”ブリッジアダプター”にする。
  4. networkadapter_bridgeadapter
  5. ubuntu serverのインストールisoをダウンロードして来て「ストレージ」の「CDドライブ」にセットして仮想マシンを起動する。
  6. storage_isoset
  7. ほぼデフォルトでインストールする。
     
    最後のtaskselのところで”LAMP server”を選択してインストールする。(ssh接続等の検証もしたい場合は、”OpenSSH server”もインストールする。) 入れ忘れた場合はログイン後に”sudo tasksel”でインストールする。
    tasksel_lamp
  8. mysqlのrootユーザー用のパスワードの設定する。
    mysqlpassword01
  9. 再起動後にログイン


文字化け対策

※2016/06/21追記
vimがインストール済みでない場合、viを利用するかvimをインストールする。

sudo apt-get install vim
or
sudo apt install vim

でインストールする必要があり。

  1. sudo vim ~/.bashrc
    
  2. [i]または[a]で編集モードにして適当なところに以下を追加し、[:wq]で書き込み保存。
    sudoモードで開くのを忘れてしまった場合は[:w !sudo tee %]で強制的に書き込み保存する。

    case $TERM in
    linux) LANG=C ;;
    *) LANG=ja_JP.utf8 ;;
    esac
    

    bashrcmodify

  3. exit
    
  4. 再ログイン。以降の[sudo aptitude update]等で文字化け(◇)が表示されていないことを確認する。

参考:
Ubuntu serverの文字化け対策



アップデート

※2016/05/03追記
16.04LTSではaptitudeが最初は入っていない模様。
なので先に

sudo apt-get install aptitude
or
sudo apt install aptitude

でインストールする必要があり。
apt – 16.04 : “aptitude” at the command line

sudo aptitude update
sudo aptitude upgrade

途中で以下のようなメッセージが表示されたら[y]
upgrademessage
 
関連:
apt-getとaptitudeって結局どう違うの(´・ω・`)?



MySqlの設定

  1. rootユーザーでMySqlにログイン。パスワードはインストール時に指定したモノ。
    mysql -u root -p
    
  2. データベース”mysql”を選択。
    use mysql;
    
  3. WordPress管理用ユーザーを作成。

    この例でのユーザーは”wpadmin”、パスワードは”password”。insert文でテーブルに対して直接作成することも可能。

    create user 'wpadmin'@'localhost' identified by 'password';
    
  4. WordPress用データベースを作成。
    create database wpdb;
    
  5. 管理用ユーザーに作成したデータベースの全ての権限を許可する。
    ※ubuntu16.04に入っているmysql 5.7.12では下の方じゃないと駄目かも。

    grant all on wpdb.* to wpadmin;
    or
    grant all on wpdb.* to wpadmin@localhost;
    
  6. 権限の反映。(この手順の場合は権限の反映は必要がない?)
    flush privileges;
    
  7. exit
    
  8. 管理用ユーザーで再びログインする。
  9. mysql -u wpadmin -p
    
  10. 権限のあるデータベースを確認する。
    show databases;
    

    showdatabases

  11. exit
    

※6.3.2 ユーザーアカウントの追加

“CREATE USER および GRANT の代わりとして、直接 INSERT ステートメントを発行してから、FLUSH PRIVILEGES を使用して付与テーブルを再ロードするようにサーバーに指示することで、同じアカウントを作成できます。”

“INSERT を使用してアカウントを作成する場合は、FLUSH PRIVILEGES を使用して、付与テーブルを再ロードするようにサーバーに指示する必要があります。そうしなければ、サーバーを再起動するまで変更が認識されません。CREATE USER では、FLUSH PRIVILEGES が必要ありません。 “



unzipのインストール

sudo aptitude install unzip


共有フォルダーの設定

  1. VBoxGuestAdditions.isoのセット。
    setGuestAdditionsCD

    ※以下のようなダイアログが表示された場合は<強制マウント解除>をクリック。
    vb003

  2. 仮想マシンの設定でVBoxGuestAdditions.isoがセットされていることを確認する。
    setGuestAdditionsCD02
  3. dkmsのインストール。
    sudo aptitude install dkms
    

    以下のようなメッセージが表示されたら、[y]
    dkmsmessage

  4. 再起動する。
    sudo shutdown -r now
    
  5. 起動したらログインする。
  6. CDイメージをマウントして、VBoxLinuxAdditions.runを実行し再起動する。
    sudo mount /dev/cdrom /media/cdrom
    sudo /media/cdrom/VBoxLinuxAdditions.run
    sudo shutdown -r now
    
  7. 起動したらログインする。
  8. 仮想マシンの設定で「共有フォルダー」の設定をする。この例のフォルダ名は”temp”。「フォルダーのパス」はホストOSの任意のフォルダを選択。
    sffoldersetting
  9. 共有用フォルダ(/usr/sf)を作り、起動スクリプトを開く。
    sudo mkdir /usr/sf
    sudo vim /etc/rc.local
    
  10. 以下の一文を追加して書き込み保存する。
    mount -t vboxsf temp /usr/sf
    

    rclocalmodify

  11. 再起動する。
    sudo shutdown -r now
    
  12. 起動したらログインする。
  13. ホストOS側で共有フォルダに何らかのファイルをコピーをして、自動マウント及び共有が上手く行っているか確認する。
    ls /usr/sf
    
    lsusrsf
    ※2016/05/04追記
    現時点ではubuntu server 16.04で同じ手順を行ってもrc.localが実行されないのか
    自動マウントされない。

    この手順はVirtualBoxでの共有フォルダの自動マウントなので常用しない場合は必要ない。
    代わりに以下のように手作業でマウントする。

    sudo mount -t vboxsf temp /usr/sf
    
    ※2016/05/04追記
    どうもこれは15.04から起動プロセスがupstartからsystemdに変わったことによるもの?
    アップグレードの場合はupstartのままで、新規インストールの場合はsystemdらしい。
    その絡みからかなんかでrc.localが実行されていないくさい。

    ※2016/10/23追記
    これだとなんか上手くいかないかも(´・ω・`)
    前は上手く行った気がするんだけれども…

    もしも16.04等で自動マウントしたい場合は/etc/fstabを使うと良いらしい。
    VirtualBoxの共有フォルダの自動マウント化

    sudo vim /etc/fstab
    

    で/etc/fstabを開き、

    temp    /usr/sf    vboxsf    defaults    0    0
    

    を追加して保存。

    起動時にvboxsfを利用可能にする為に

    sudo vim /etc/modules-load.d/modules.conf
    

    でmodules.confを開き、

    vboxsf
    

    と追加し、保存。

    後は項番11~13を実行して、自動マウント出来ているかを確認する。

※以前はフォルダ共有をする際に「hwinfo」をインストールしていたが、しなくても大丈夫な模様。正確に言うと、14.04では通常の方法では「hwinfo」を入れることが出来ないようだったので、飛ばしたが問題がなさそう。hardware – hwinfo replaced with … what?



WordPressの取得

  1. 公式サイトからWordPressをダウンロードする。(バージョンはサイトで確認)
    sudo wget "http://ja.wordpress.org/wordpress-4.4.2-ja.zip"
    
  2. ダウンロードしたWordPressを「/var/www/」以下の任意のディレクトリ(この例では「/var/www/wpbl/」)に解凍。
    sudo unzip wordpress-4.4.2-ja.zip -d /var/www/wpbl/
    
  3. 「wordpress」ディレクトリ内の全てのファイル及びディレクトリを「/var/www/wpbl/」に移動して、、
    「wordpress」ディレクトリを削除する。

    sudo mv -f /var/www/wpbl/wordpress/* /var/www/wpbl/.
    sudo rm -Rf /var/www/wpbl/wordpress/
    
  4. 「/var/www/wpbl/」の所有者をrootからapache2の実行ユーザー・グループのwww-dataに変更する。
    sudo chown -R www-data /var/www/wpbl/
    

※WordPressの圧縮ファイルをホストOS側でダウンロード・解凍して、共有フォルダ経由でコピーすることも可能。また、この例ではzip形式でダウンロードして来ているのでunzipをインストールする必要があったが、.tar.gz形式でダウンロードして来る場合はその限りではない。



DocumentRootの変更
デフォルトではDocumentRootが「/var/www/html」になっているので「/var/www/」に変更する。

  1. sudo vim /etc/apache2/sites-available/000-default.conf
    
  2. DocumentRootを「/var/www」に変更して保存する。
    DocumentRootvarwww
  3. apacheを再起動する。
    sudo service apache2 restart
    


※尚、apacheを再起動した際に出るAH00558というメッセージを消すには、以下のようにする。
AH00558

  1. fqdn.confを作成する。
    sudo vim /etc/apache2/conf-available/fqdn.conf
    
  2. 以下の内容を書き込み、保存する。
    ServerName $HOSTNAME
    
  3. 作成した設定ファイルを有効にする。
    sudo a2enconf fqdn
    
  4. apacheをリロードする。
    sudo service apache2 reload
    

結局のところ、FQDNの解決に失敗していることに起因するエラーなので、解決方法は他にも色々とある模様。
参考:
ubuntuにおけるapache2のAH00558エラーを解決する。



WordPressのインストール

  1. ゲストOSのipを調べる。
    ifconfig
    

    ifconfiglocaladdress

  2. ホストOSのブラウザで”http://ゲストOSのip/wpbl/index.php”にアクセスする。
  3. 「ようこそ」画面が表示されたら、<さあ、始めましょう!>をクリックする。
    wpinstall01
  4. 「データベース接続情報入力」画面が表示されたら、”データベース名”、”ユーザー名”、”パスワード”を入力し、<送信>をクリックする。
    wpinstall02
  5. 「部分完了」画面が表示されたら、<インストール実行>をクリックする。
    wpinstall03
  6. 「必要情報入力」画面が表示されたら、”サイトのタイトル”、”ユーザー名”、”パスワード”、”メールアドレス”を入力する。これはデータ移行後には使わなくなるので適当で良い。
     
    脆弱なパスワードを設定した場合は「パスワード確認」にチェックを入れる。
    <WordPressをインストール>をクリックする。
    wpinstall04
  7. 「成功しました!」画面が表示されたら、<ログイン>をクリックする。
    wpinstall05
  8. 「ログイン」画面が表示されたら、”ユーザー名”と”パスワード”を入力して<ログイン>をクリックする。
    wpinstall06
  9. インストールしたWordPressにログイン出来ることを確認する。
    wpinstall07


Duplicatorのインストールとデータのエクスポート

  1. 移行元のWordPressでDuplicatorプラグインを検索、インストールして有効化する。
    duplicatorinstall01

    duplicatorinstall02

    duplicatorinstall03

  2. Duplicatorを起動する。
    duplicatorinstall04
  3. 右上の<Create New>をクリックする。
    duplicatorinstall05
  4. 右下の<Next>をクリックする。(ここでエクスポートしないファイルの指定、ログイン名等の指定が出来る模様)
    duplicatorinstall06

    ※2016/05/05追記
    移行元のubuntu serverが16.04の場合(正確にはphpが7.0以降の場合)、以下のようなエラーが
    出る場合があります。この場合、不足しているパッケージを手作業でインストールする必要があります。
    ziparchiveenabled

    sudo aptitude install php7.0-zip
    sudo aptitude install php7.0-bz2
    sudo shutdown -r now (apache2の再起動だけでいい?)
    

    再起動後に再びブラウザからwordpressにログインし、項番2の手順から続きを行います。

    参考:
    (Solved) Duplicator Error (WordPress / PHP7.0)

  5. スキャン結果にWarn(警告)がある場合は”A warning status was detected,are you sure you want to continue?”にチェックを入れ、<Build>をクリックする。
    duplicatorinstall07
  6. <installer>及び<Archive>をクリックし、installer.phpとデータをダウンロードする。
    duplicatorinstall08

参考:
引っ越しも楽々? WordPressで構築したサイトを丸ごとコピーできるプラグイン「Duplicator」

尚、「All-in-One WP Migration」でもデータ移行は可能。
但し、無償版だと512MBを越すとエラーが出た(ような気がしたが、改めてやってみたら
630MBオーバーでもバックアップファイルが作成された模様)

また、移行先でも同じプラグインを追加して、そこからデータのインポートを行うので微妙に手間がかかる気がする。
エクスポートファイルはバックアップとして残るので、バックアップ目的ならば良いとは思う。

ただ、このバックアップファイルの存在を忘れて「Duplicator」でエクスポートしたり、
WordPressをまるごとバックアップしようとするとデータがとんでもない大きさに膨れ上がるので注意。

参考:
WordPressのお引越しに All-in-One WP Migration がめっちゃ便利すぎる件



データのインポート

  1. ホストOSの共有フォルダにinstaller.phpとデータを移動する。
    duplicatordataimport01
  2. ゲストOSで共有フォルダ内にファイルが見えることを確認する。
    cd /usr/sf
    ls 
    または
    ls /usr/sf
    

    duplicatordataimport02

  3. データとinstaller.phpを/var/www/wpblに移動する。
    sudo mv xxxxxxxxx.zip /var/www/wpbl
    sudo mv installer.php /var/www/wpbl
    

    duplicatordataimport03

  4. ホストOSのブラウザで”http://ゲストOSのIPアドレス/wpbl/installer.php”に移動する。
  5. “データベース名”、”データベース管理者ユーザー名”、”パスワード”を入力し、<Test Connection>をクリックする。
    duplicatordataimport04
  6. 「Server Connected」と「Database Found」が”Success”なら、「I have read all warnings & notices」にチェックを入れ、<Run Deployment>をクリックする。
    duplicatordataimport05
  7. 以下のエラー画面が表示されたら、wp-config.phpを削除する。(よくよく考えてみると前項の段階でwp-config.phpを削除しておけばいいのかもしれない)
    duplicatordataimport07

    sudo rm /var/www/wpbl/wp-config.php
    
  8. <Try Again>をクリックする。
    duplicatordataimport08
  9. (処理が実行される。)
    duplicatordataimport09
  10. 「File & Database」画面が表示されたら、をクリックする。 (ここで新しい管理者アカウントの情報を追加出来たりする)
    duplicatordataimport10
  11. 「Test」画面が表示されたら、各項目をチェックする。
     
    パーマリンク形式を変更している場合、index.phpからエントリへのリンクを辿っても404エラーになるはず。以降の手順で変更する必要がある。
    duplicatordataimport11


パーマリンク形式変更による404エラー対策

  1. rewrite.loadファイルの内容を確認する
    cat /etc/apache2/mods-available/rewrite.load
    

    と実行し、以下の内容が表示されることを確認する。

    LoadModule rewrite_module /usr/lib/apache2/modules/mod_rewrite.so
    
  2. rewrite.loadを有効化する。
    sudo a2enmod rewrite
    

    a2enmodはrewrite.loadのような特定のモジュールを有効化するスクリプトが書かれているファイルを、「/etc/apache2/mods-enabled」内にシンボリックリンクを作ることによって有効化する。a2dismodはその逆。

  3. apacheの設定ファイルを開く。
    sudo vim /etc/apache2/apache2.conf
    
  4. 任意の場所に以下の内容を追記して書き込み保存する。
    <Directory /var/www/wpbl>
         AllowOverride All
    </Directory>
    
  5. apacheを再起動する。
    sudo service apache2 restart
    
  6. ホスト側のブラウザで各エントリをクリックし、404エラーにならないことを確認する。

参考:
mod_rewriteの設定(パーマリンク形式を変更した場合にエラー表示された場合)
Ubuntu版Apache2でmod_rewriteを有効にする


すげーはまった(´・ω・`)

android用の神経衰弱ゲームを公開しました(・∀・)
The Match-up(Memory) game for android was released!

Google Play:
Mole's Match-up.

Introduction page:
Mole’s Match-upをリリースした∩( ・ω・)∩


正確に言えば、色んなことを忘れていて、それを思い出すまでに二日程要した…_| ̄|○

事の起こりはふと「お金もないし、さくらVPSを512MBのプランにしようかなぁ(´・ω・`)」と
思い立ったことから。ついでにOSもUbuntu Server 14.04.4 LTSにしてOpenCmsも新しいのに
するかとも。

ほいでまあ取り敢えず、移行手順の確立の為、実験を開始する。

初めにローカルのVirtualBoxにUbuntu Server 14.04.4 LTSを入れる。
本当はWindows 10 proだからHyper-Vが使えるはずだが、前回入れた時に余計なことをして
再インストールする羽目になったので、今回はやめておいた。VirtualBoxがeclipse Cheを
入れた時に一緒にインストールされていたので、それを使うことにした。


ubuntuのインストール自体は特に問題なくいったのだが、ホストOSからの接続する方法がわからない(´・ω・`)

ぐぐった。

最初のネットワークアダプタがNATになっていたために、ゲストOSはインターネットには接続出来るが
ホストOSからゲストOSには接続出来ないということだった。これを解消するためにはポートフォワーディングを
指定すれば良いようであったが面倒くさい(´・ω・`)

もう一つの方法であるホストオンリーアダプタを指定したアダプター2の追加に挑戦する。

この方法で上手く行かないか粘ったが、何かを勘違いしているのか、長時間試した結果諦めた_| ̄|○

結局、セキュリティ的には良くないと書かれていたが、アダプター1でブリッジアダプタを指定する。
あっという間につながり、無駄にした時間を思って泣いた。・゚・(ノД`)・゚・。


あぱっちぇへの接続後、mysqlでdbやユーザーを作ったりしてwordpressのインストールまで終了。

その後、wordpressのデータ移行方法をぐぐる。
phpMyAdminを使ってデータをエクスポートする方法が一般的なようだったが、入れてるかどうか
覚えてないし、あんまりあれ好きじゃないんだよなぁと思い、プラグインを使う方法を選択。

取り敢えず「Duplicator」を試してみた。
エクスポート実行前のスキャンで警告は出ていたが、一応上手くエクスポート出来た模様。

ここでインポートしようと思ったが、VirtualBoxの共有フォルダの設定を忘れていたことに気づく(ノ∀`)
これをやってからinstaller.phpとデータを/var/www/にコピーしたが、ブラウザから見ることが出来ない。

DocumentRootを変えてなかった(ノ∀`)

/etc/apache2/sites-available/000-default.confを開きDocumentRootを/var/www/に変更。
あぱっちぇを再起動すればいいのだが、コマンドを忘れているためにめんどうくさいので
sudo shutdown -r nowでubuntu serverごと再起動した。以降もほぼ同じw

でまぁ、installer.phpからのインポートは成功した(`・ω・´)
が、しかし、管理画面に入れず、各エントリをクリックしてもnot found (ヽ’ω`)
(これらは後に非常にくだらないミスであったことに気づくが…)


じゃあ仕方がないということで、もう一つのプラグイン「All-in-One WP Migration」を試す。

と思ったらエクスポート作業でエラーが(´・ω・`)

このプラグインはサイズ制限があって、無料で出来るのは512MBまでらしい…
出来ればお金は払いたくないので、「Duplicator」でエクスポートしたデータ内に動画が
あることを確認してからメディアライブラリ内の動画を消す。まあプログラムの途中経過を
示すだけのどうでもいい動画なのでなくなったらなくなったでどうでもいいw

だがしかし、まだ512MB以下にならず…( ;・´ω・`)ゴクリッ

どうしたものかと思いながら、エクスポート画面をよく見たらオプションでメディアファイルや
リビジョンデータをエクスポートしない設定があった(ノ∀`)

それでまぁ、エクスポートして、virtualbox側のwordpressにも「All-in-One WP Migration」を
追加してインポートしてみる。上手く行った(・∀・)

だがしかし、「Duplicator」の時と同じ結果に(´・ω・`)

なんでじゃヽ(`Д´)ノ


気力と体力が尽きたのでふて寝する(´-ω-`)

起床後、色々と原因について考えてみる。取り敢えず本番環境のサーバはtomcatと共存していて
なんとかかんとか言うモジュールでなんかしてたなぁと思い、昔の自分のエントリをいくつも読み直す。
ついでにリンク切れとかを修正したり、えらく時間がかかった(ヽ’ω`)

で、数時間を要した調査の結果わかったことは、パーマリンク形式を変更しているから
mod_rewriteを有効にしないといけないということだった…_| ̄|○ ソウイヤソウダッタ…

apache2.confにwordpressのディレクトリが”AllowOverride All”になるように指定。
これで.htaccessが書き込まれる…んだったかな?

ほいでまあ、再起動してみたら、無事に各エントリが表示されるようになった(`・ω・´)

ちなみにメディアライブラリをエクスポートしてないので、画像は表示されず、
<a>リンクのみが表示されていた。試しに「Duplicator」のエクスポートデータから
“uploads”フォルダをコピーしたら、画像が表示されるようになった。つまり<img>タグは
生きているということだが、<a>タグのリンクはおかしくなっていた。実コピーじゃなくて
アップロードでやったら<a>タグのリンクも復活するのだろうか?


でも相変わらず管理画面が出て来ない(´・ω・`) ナンジャラホイ

ぐぐった。特にヒットしない……
本番環境のwordpressの画面を見たり、色々とぐぐった結果を眺めていて気づいた( ゚Д゚)ピコーンッ!

実験環境にインストールした際に指定した管理者権限を持つユーザー名が、
本番環境では購読者権限しか持たない設定だった(ノ∀`)

つまり、俺氏は管理者権限を持つユーザーAのつもりでログインしているが、本番環境の設定を
インポートしてる実験環境のユーザーAは購読者であって管理画面には入ることは出来ないという
くだらないミスだったw


まあ何はともあれWordPressの移行は無事に出来そうな感じがする。
画像の件は「Duplicator」のエクスポートデータでなら上手く行くか試してみるか。
要らないエントリもあるから最悪削るのもありかなぁ。

opencmsは9.5.3にすべきか10 betaにすべきかで悩む(´・ω・`)
それはともかく今回の手順は別エントリで起こしておくべきだな。
きっとまた忘れるから。

Tomcatって雄猫って意味なんだね(・∀・) ニャー (1)

android用の神経衰弱ゲームを公開しました(・∀・)
The Match-up(Memory) game for android was released!

Google Play:
Mole's Match-up.

Introduction page:
Mole’s Match-upをリリースした∩( ・ω・)∩



仮想環境へのOpenCmsのインストールやらubuntuいじりのリハビリも済んだので
本番環境にOpenCmsを入れる準備をしてみたが色々とはまった (ヽ’ω`)


MySQLのrootのパスワード忘れてた (ヽ’ω`)

色々とぐぐったがなんかそのままの通りでうまく行かなかったので
以下のページ2件の内容をニコイチ的にやった。何がいけなかったのか
未だによく分からない(ノ∀`) ununtu server 12.04が特別ということも
ないだろうからオペレーションミスかもしれないw

mysqlのrootパスワードをリセット
mysql5 パスワードのリセット

sudo /etc/init.d/mysql stop
sudo /usr/sbin/mysqld --skip-grant-tables --skip-networking &
mysql -u root
mysql>use mysql;
mysql>UPDATE user SET Password=PASSWORD(’newpassword‘) WHERE User=’root’;
mysql>FLUSH PRIVILEGES;
mysql>\q
sudo /etc/init.d/mysql stop
sudo /etc/init.d/mysql start

みたいな感じで出来たような気がするけど、記憶が定かではない(ノ∀`)

で、今書いてる最中に気づいたが、途中でうまく行かなかったのは
FLUSH PRIVILEGES;の”;“を入力し忘れてただけかもしれない_| ̄|○

取り敢えずrootで入れるようになったからいいか( ・`ω・´)


仮想環境でのTomcatのインストール

本番環境はLAMPをインストールしていたがTomcatを入れてなかったので
追加インストールの場合だとどんな感じになるのか確かめるために
新規の仮想マシンを作って試してみた。

最初はApache Tomcatを読んだ。わかったようなわからないような。
色々とぐぐっていたら11.04用だけども日本語訳があったので読んだ(・∀・)
Ubuntu 11.04でのTomcat 6.0のインストール(help.ubuntu.comのドキュメント日本語訳)
わかったようなわからないような。というか元よりあんまり詳しいことは書いてないのか。

ここらでTomcat6-docs、Tomcat6-examples、Tomcat6-adminなどを入れてみたり、
入れた後にTomcatとApacheの連携をしてパスの確認をしたり。


http://[サーバーのURL]:8080/manager/htmlへアクセスする為に

sudo vi /etc/tomcat6/tomcat-users.xml

して

<role rolename="manager-gui" />
<user username="tomcat" password="tomcat" roles="manager-gui" />

みたいなのを付け加えた。

sudo /etc/init.d/tomcat6 stop
sudo /etc/init.d/tomcat6 start

してからhttp://[サーバーのURL]:8080/manager/htmlへアクセスしたら
ログインダイアログが表示されたので指定したusernameとpasswordで
ログインした。使い方はよく分からないがログイン出来たので良しとする。

関係ないけどsudo /etc/init.d/~を使ってstopとかstartすると
なんか違うの使えって言われることがあるような気がするが、
これはなんだろうか( ´・ω・)


ここも幾つかのページを見ながら試したのだけれども、今ぐぐり直してみても
何故かヒットしない…fedoraだかCentOS用だった気がするが……

なんかroleやuserの例のところで突然コマンドが混ざってて、
この部分はきっと間違いだな( ・`ω・´)と思ったが、ページが見つからない。
まあいいか。


WindowsへのTomcatのインストール

色々とぐぐっている時にEclipseでサーブレット開発環境を作る(Tomcat編)という
ページを発見したので寄り道をした。同時にこれまたサーブレット開発を紹介する
Windows で Tomcat バージョン 6.0.32 のダウンロードとインストールとテスト実行
というページもヒットしたので合わせて目を通したりした。

とか言いつつ、ちゃんと読まずに適当にやって色々とはまったりしたわけだが (ヽ’ω`)


coreとdeployerの違いが分からなかったが

Core used for installing Tomcat on a machine and running apps on it. Deployer distribution contains only Tomcat Client Deployer – a package which can be used to validate, compile, compress to .WAR, and deploy web applications to Tomcat servers.
Tomcat6-Diff-Core and deployer distribution

というようなことを言ってる人が居るので、決められた形式でソースコードを上げたら
コンパイルとかしてそのまま利用出来る形にしてデプロイしてくれるんだろうか?
でもonlyってことはdeployerのみを含むわけだから……(´・ω・`)?

更にぐぐると

The Deployer download is not needed for a server install. This is not the Manager webapp, but a Java client for the Manager webapp. You install this on a workstation or server where you will run ant to deploy to the remote Tomcat server. (Not that you necessarily want to do that. It’s overkill if you will only be deploying locally, and there are other ways to deploy remotely).
Chapter 2. Tomcat Installation

なるほど、これはツールで、リモートのTomcatサーバへデプロイする為の
ワークステーションやサーバじゃなかったら必要ないと言ってる。でも同じ所に
置いてあるとなんか紛らわしくないかと思ったり思わなかったり。
まあいいですけどもね( ´・ω・) 何はともあれcoreを落としてきた。


解凍してから気づく、Windows用は32-bit/64 bit Windows Services Installerだ_| ̄|○
改めてダウンロードしてきたインストーラーを起動してインストールした。
特に問題はなかった気がする。

でも今見直してみたら最初のページではzipを落としてきて展開するって書いてあるな。
この場合はeclipseから設定するらしいけども。うちで使ってるのはpleiadesなので
Tomcatプラグインは最初から入っていた模様。

インストールしたのはTomcat6だったのでその辺は読み替えつつ、
その後は最初のページの方の説明に従って適当にやった(・∀・)


HelloWorld.javaを試そうとeclipseのサーバタブからTomcatを起動した。

エラーが出た (ヽ’ω`)
conflict

ローカル・ホスト の Tomcat v6.0 サーバー で必要な幾つかのポート (8080, 8009) がすでに使用中です。サーバーはすでに別のプロセスで稼働中であるか、システム・プロセスがそのポートを使用中である可能性があります。このサーバーを始動するには、他のプロセスを停止するか、ポート番号を変更する必要があります。

  
ポート使ってんのは何処のどいつじゃ、我ヽ(`Д´)ノ wo wer

というわけで
Windowsでどのポートが何のアプリケーションで使用されているか確認する
で紹介されていた方法でアプリケーションを特定した(`・ω・´)
 
 
 
 
インストール後に自動起動していたTomcatさんでした (ヽ’ω`)
Tomcatが自動起動していたのにeclipseから更に起動しようとした
のがいけなかったようだ…

そういやポートが思いっきりTomcatだもんな…


sqliteのサンプルまでやったけど、なんかコードが違うような…
whileってfinallyってくっつけるんだっけ?

正しいかどうかわからないけど、これで動いた(・∀・)
どうでもいいけどJDBCドライバって場所を直書きするんかΣ(゚∀゚;)

protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
	Connection conn = null;
	Statement stmt = null;
	ResultSet rs = null;

	try {
		Class.forName("org.sqlite.JDBC");
		conn = DriverManager.getConnection("jdbc:sqlite:D:/temp/testdb.sqlite");
		stmt = conn.createStatement();
		rs = stmt.executeQuery("SELECT userid,status FROM userinfo");

		response.setContentType("text/plain");
		while (rs.next()) {
			response.getWriter().write("userid=" + rs.getString("userid") + ", ");
			response.getWriter().write("status=" + rs.getString("status") + "\n");
		}
	} catch (ClassNotFoundException e) {
		e.printStackTrace();
	} catch (SQLException e) {
		e.printStackTrace();
	}finally {
		if (rs != null ) { try {rs.close(); } catch (SQLException e) {e.printStackTrace();} }
		if (stmt != null ) { try {stmt.close(); } catch (SQLException e) {e.printStackTrace();} }
		if (conn != null ) { try {conn.close(); } catch (SQLException e) {e.printStackTrace();} }
	}
}

長くなったので分ける (ヽ’ω`)