. . . .

めげるな頑張れ!Webサイト開発四苦八苦の記録

現在Webサイトを開発&運用中です?   苦労話でもっ?

スポンサーサイト

上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。

サイト構築 よもやま話

私めの本業は、主に業務用アプリケーションをオーダーメイドで作成する事で、Windowsベースのソフトウェアを作っているんですが、最近ではLinuxをサーバーにしてそこでPostgreSQLをDBで使うパターンばかりです。

もともとの仕事がそれなので、インターネットは、使う事はあってもそこで動かすサーバーサイドのプログラムは全く縁がありませんでした。

知識もほとんど持ち合わせていませんでした、、、

が、会社を乗っ取られ今はひとりでやってるんですが、年も食ってきてプログラムもあまり作りたく無くなって来てので、自由な時間が増えてきて、飯食うためにもう少し稼がにゃと考えていたときに、チョットした会員制の副業を思いつき、その募集のためにサイト構築に手を出した次第です。


ドメインはYahooで取得し、回線はBフレッツで、ISPはAsahiネットを使っています。

IPを固定にする場合、AsahiネットだとIP電話も付けて1050円だったので、まぁ価格で決めたって事です。

工事費無料とかキャンペーンもありましたし。

ドメインは今思うと少し失敗でした。

もう少し短くした方が良かったかなぁと思っています。

今更、どうしようもありませんが、、、Yahooにも登録して貰ったし、


副業用に作ったサイトが初めて作ったサイトなんですが、一番の失敗は連絡や問合せようにメールアドレスを1つ、ページ上に載せたことです。

来るは来るは、スパムの嵐が。

大切なメールをついつい見落としてしまいますネ。

Yahooにサイト登録をする予定もあって、連絡先等が記載されていないと登録されないので仕方がなかったのですが、、、

電話番号まで小さな文字でリンクさせた先で載っけてました。

サイトを巡回しているロボットがあるなんて知りませんでしたし。

ロボット作ればメールアドレスなんか正規表現でも使って一発で抜き取れますよねぇ。 今なら私でも作れそうな気がします。

メールサーバーで着信拒否にする事で対応してんですが、送信アドレスなんか実在しなくってもメールは送れますから、いたちごっこでした。

連絡や問合せは専用のフォームで行うようにPHPでプログラムを書いて、
2ヶ月ぐらい前にメールアドレスを全部外して、それに置き換えたところだんだんスパムは減ってきて、やっと安堵です。

今来るのは info@xxx.xxx や support@xxx.xxx の類の奴ですが、これは送るほうにもメリットないし迷惑なだけですね。

この辺りも上手く着信拒否できると思うんですが、なんせPostFixに不慣れで今のところ放置です、、

サイト上にメールアドレスを載せる場合は、テキストではなくてイメージにしましょうネ!!

週刊BlogRanking

スポンサーサイト

テーマ:迷惑メール - ジャンル:コンピュータ

プログラム開発 実験その1

最近、最初に考えていたテーマと外れた記事ばかり書いていたんですがここで

一旦本来のテーマに戻します。


まず実験と言う事でいきなり、本格的なWebアプリは無理なんで簡単な登録PGを

作ってみる事にしました。



■ 方針

PHPで作る。

・更に、セッションを使ってみる。

・DBはPostgreSQLを使ってみる。

・見た目にはこだわらず、ソースも汚くてもいいのでとにかく動作するものを作る。

  と言う事で簡単な担当者メンテナンスのアプリを作成する事にした。


■ コーディング

・VisualStudioのような開発環境はなく、自前で用意しなければならなかったので

  インターネットで調べまくったり、体験版を使ってみたりして、

  エディッタは取敢えずシェアウェアのPeggyにした。

・画面はHomepageBuildeerで雛形を作成し、それに手を加える事にした。

  何のことはありません。 今でもHomepageBuilderで画面の雛形を作成し、

  エディッタは、Peggyと言うスタイルです。

  簡単でいいツールがあったら教えて頂きたいところです。

  Eclipseは検討しましたが覚える事が沢山ありそうだったので止めました。


■ プログラムの構成

画面は全部で5種類になりました。

・プログラムは、要求ごとに分岐させる入り口プログラムを中心に据え、

  後はrequire_onceでインクルードするようにクラス毎3つに分割しました。

  1.DB操作クラス
     本で学習したものをほとんどそのまま利用しました。

  2.画面出力クラス
     これはHomepageBuilderで雛形を作成して手を加えたものです。

  3.メイン処理クラス
     中心となるロジックを組立てたクラスで、処理の中心になります。

  入り口プログラムからメイン処理クラスの該当関数に分岐させ、その中でああだこうだ

  処理を行い、DB操作はDB操作クラスの関数を呼出し、画面出力は画面出力クラスの

  関数(PHPではクラス内の関数はメソッドって言うんでしたっけ??)を呼出しと言う

  スタイルです。

  今でも基本的なPGの配置はこの頃から変わっていません。



■ 作成中の出来事や思った事、、、、、ランダムにあれこれ

・ Shift-JISEUC-JPの文字コードの違いと言うものをはじめて意識させられた。
  初めて作る人は結構ぶつかるみたいですが文字化けってので悩みました。

・ セッションという概念が初めてだったので頓珍漢なところで悩んでました。
  今現在運用しているサイトではセッションを使わずにいますが、、、、、
  と言うか、セッションを使わなくてもよい仕組みにしています。

・ 昨日まで動いていたのが今日は駄目ってのがあり2日ほど悩んだんですが、どうも
  TCP Wrapperを変にいじっていたみたいで、原因がわかるまでトホホでした。

・ 画面をまたがるDBの排他制御ができないと言うところで少し悩みましたが、そう言う
  パターンの排他制御は行わない仕組みにする事で解決しました。

・ コードが入力されたら即名前が横に表示されると言うような作り方は件数が少ない
  ものの場合は別ですが、件数が不定のものには採用できないので、一旦送信して
  サーバーに要求しないといけない事が判明しました。
  汎用機のダム端みたいって思いました。

・ 私が今まで作成してきたWindows用アプリではリターン(エンター)キーで
  入力フィールドの移動ができるように作成していたので、TABキーだけの移動は
  多少違和感がありました。
  まぁ、それがWindowsの本来の作法なんでしょうけど??
  リターン(エンター)キーで移動できるものが作りたいと思いました。

・ お恥ずかしい限りですが、正規表現はLinuxの学習をはじめるまで言葉すら知りませ
  んでした。 正規分布なら知ってましたが。 ちょっと使ってみましたがその有用性は
  今一ピンときませんでした。
  今では少し使ってるんですけど??

・ pgAdminと言うのを知らなかったので、DBの直接操作は何をやるにしてもpsqlで
  面倒くさくやってました。

・ PHPの完璧なデバッグツールを見つける事ができず、デバッグはひたすらブラウザ
  での実行と、サーバーのエラーログとのにらめっこでしていました。
  最近はそのスタイルで不自由を感じなくなっているので探していませんが、何かいい
  ツールがあれば教えて頂けると嬉しいです m(__)m

・ 英語がとんと駄目な私にとってはエラーログを理解するのも一苦労でした。

・ 文末のセミコロン””や”{}”がダメって言われると探すのが一苦労でした。
  いまでも時々ありますが、いまでは割と早く見つけられるようになりました。

・ Linuxも初心者、PHPも初めてと言う状況でしたので、設定ファイルも深く理解してい
  たわけでもなく、何かうまくいかないとマニュアル見て関係ありそうな設定をいじくって
  どこがどーなったか分けがわからなくなる事が数度ありました。

・ 作業に取りかかってからメーリングリストなるものを知り、早速参加させてもらったん
  ですが、来るメールを読んでいると、バカな事を問合せると怒られそうで初心者には
  なかなか敷居が高い気がしていました。 どんな問合せだったか忘れましたが、自分
  では調べてもわかんないしどうしようもなく、勇気を振り絞って問合せたら意外と親切
  に教えてもらったと言う記憶があります。

・ 画面上の操作性はJavaScriptも使わなければいけない事が判明し、これは実験の
  予想外の事でしたが、いろいろなHPのソースを参考にしたり、本を読んだりで結構
  時間をとられました。
  JavaScriptもMLのお世話になりました。

・ HpmepageBuilderで雛形を作るときに、あーでもないこーでもないといじくりまわし
  ていると、結構同じようなタグがいくつも張り付いていたりするって事が分かった。
  大きな影響がなければ見落としていてたぶん無意味なタグが残ったままです。

・ NULLを意識した。

・ もうすぐPHP5が出るらしい、、、、今現在使っているのは4.3.10-1.1です。
  今のところ5にする予定はありませんが、どうなんでしょう??


かなり時間が経ってしまったんで忘れているんだと思いますが、もっと沢山いろいろな

問題があったように記憶しています、、、、なんせ初めてでしたから




実際のドキュメントはサーバーを実験で何度も再構築したりしたので残っていないの

ですが、引出しをひっくり返していたら実験時に作成した印刷物が残っていたので、

スキャンして貼り付けておきます。
       ※元々安物の裏紙に印刷されていますので裏面の写り込みはご容赦を!


■ これは当時全体の流れを整理したものです
  Webアプリは初めてだったのでここまで考えるだけでも少し時間がかかりました。

以下は、画面イメージです。
実験1フロー



プログラムソースも印刷したものしかないので載せておりません。

見たい方がいればコメントでもしておいていただければ気が向いたときに

アップしておきます??

最初のPGですからレベルも低くお恥ずかしいところですが、お役に立てるなら

お見せする事は一向に構わないと思っております。

反面教師にはなれるかも知れません!


週刊BlogRanking

テーマ:UNIX/Linux - ジャンル:コンピュータ

リファレンスマニュアル

さあ、実験(練習)プログラムを作るぞ、、、、、

っとその前に、マニュアルらしき物が無いので以下の書籍を購入した。

・PHP関係
    「PHPスーパーリファレンス」
    このリファレンスマニュアルは片時も離せないほど今でも良く使ってます

・PostgreSQL関係
    「PostgreSQL全機能リファレンス」
    これも片時も離せないほど今でも良く使ってます

・HTML/CSS/JavaScript関係
    「HTML&CSS&JavaScript辞典」
    「Webページ制作テクニック(HTML/CSS/JavaScript&CGI活用編)
     逆引き大全500の極意」
    この2冊はHTMLやCSSやJavaScriptに精通してない私には必需品です
    使用頻度はそれほど高くありませんがないと困る2冊です

・Linux関係
    「Linux(コマンド編)逆引き大全500の極意」
    Linuxのコマンドをあまり知らない私には必需品です、、、、時々使います

    「RedHatLinux9で作るネットワークサーバー構築ガイド」
    今は販売してないみたいですが最初のころは使いました
    元々Linuxの基礎知識の無い私には必要な1冊でした。

・Apache2関係
    「Apache2設定&管理逆引きリファレンス」
    これも色々助けてもらった1冊です



         
         
<

週刊BlogRanking

テーマ:ホームページ作成の苦闘 - ジャンル:コンピュータ

「PHP4徹底攻略」

PHPとPostgreSQLの学習

購入した「PHP4徹底攻略」を本の手順通りやってみる事にした。

今までやってきた言語との違いを感じたところ

・変数に前には「$」マークをつける
     まぁ、仕様なんでその通りやるしかない
     PHPのインタープリタの方はこうする事で軽くなってるんかなぁ?

・連想配列
     こう言う配列は初めて、、、添え字に文字が使える
     慣れると違和感なく使えますネ

・セッションおよびセッション変数
     Webアプリではこう言う考え方でやるんだと妙に納得、、、、
     練習用アプリではセッションを使ってやって見ましたが、現在実運用している
     Webアプリではセッションを使わない方法でやってます。

・文の終わりは必ず「;」をつける
     よく忘れてエラーになるけど、エラーヶ所を探すのに手間取る事も

・「$this->」
     これは慣れるのに少々時間がかかった
     最初は意味がよく理解できませんでした、、、

・ヒアドキュメント
     こう言うのは使った事がなかったけれど、出力部分なんかでは非常に重宝
     しています。

・PHP言語のコーディングの仕方と言うか使い方
     HTMLとの混在、、、、HTMLの間に<? php ~ ?>で使う
     HTMLの部分部分にPHPをPHPタグで括って記述するとどうも分かり
     づらい気がするので、私の場合はプログラムの最初から最後まで全てを
     PHPタグで括って記述しています。

他にもありますけど主なところはこれぐらいでしょうか、、、



1/5ほど読み進むと次はDB「PostgreSQL」との連携になります。

これも書いてある通りにやって、進めていきました。

途中で一ヶ所だけ書いてある通りにやっても、書いてある通りの結果がでないヶ所
があり、初心者の私にそれをクリア出来る筈もなく、、、、、困ったぁ~~

どーもPostgreSQLのバージョンが、私が作ったサーバーの方が本で説明されて
いるものより新しいからであろうことは想像できたんですが、バージョンダウンなん
てやり方わかんないし、、

著者のメールアドレスが書いてあったのでダメ元で質問メールしてみました。

早速返信頂き無事クリアして最後まで進める事が出来ました、、、感謝感謝
  この返信でPostgreSQLの愛用者がひとり増えたって次第です


で、結局この本のレベル内でPHPは一通りマスターし、PostgreSQLの機能につ
いても確認する事ができた
PostgreSQLは私の想像以上に使える感じでした。
いろいろ本に記載以外の実験もしては見ましたが、、


メーリングリスト

この本を読み進めていくうちにメーリングリストなるものの存在を知り、早速PHPと
LinuxとPostgreSQLのメーリングリストに参加させてもらった。

初めて参加したメーリングリストの印象は?

いろんな人がいるなって感じです

ろくに調べもせずに質問すると怒られるみたいですねぇ、、、まず調べろって
   当然と言えば当然かなって思いますが、調べ方が分かんない人も、、、?

で、面白いのは怒られてもそれは無視して平気で質問だけを繰返す人がいました
   これはいささかネチケット違反ってヤツですね
   懲りずに何度も怒っている人もいました、、、余計に腹が立つだけのような?
   質問している人も自分のHPはメールアドレスから丸分かりなのに良くやるなぁ
   って印象でしたねぇ、、、、、確かそのHPは人物の写真入だったような記憶が。

過去ログなんかはかなり重宝させて貰っています、

回答で解決に向かうヒントを教える人がいますねぇ、、、、
   答えを教えてあげればいいのにって思うのは私だけでしょうか?

PHPとPostgreSQLのMLには投稿経験がありますが結構助かりました。

他人の価値観は必ずしも自分と一致しないよって思ってない人がいるみたいかなっ?
   論争が時々起こるが論破しないと気がすまない人がいるみたいですねぇ、

今では私も数回の回答経験がありますが、私の回答よりもっといい回答をする人が
いたり、その回答ではここがマズイんではって言う人がいたり、回答も勉強になります。

週刊BlogRanking

テーマ:WEB系勉強中 - ジャンル:コンピュータ

データベースと開発言語の選択

データベースの選択

 LinuxのDBについてはトンと無知だったのでインターネットでリサーチ

 MySQLと言うのとPostgreSQLと言うのが2本柱らしいと知る

 MySQLは海外で主流らしい、、PostgreSQLは日本では多いらしい

 インターネットの情報ではMySQLの方が軽くてPostgreSQLは本格派の高機能

 さらに調べた結果トランザクション処理を実現するにはMySQLには何かをくっつ
 けなければならないけれど、PostgreSQLは標準的に装備されているらしい、、
 未熟者の分際でモジュールを切ったり貼ったりは大変だと思いPostgreSQLに決
 めた

     今では結果的にこの選択は大正解であったと思っている

     この後、アプリはWindows対応でDBはLinux上のPostgreSQLと言う組合せ
     で3システムほど開発したがいずれも何ら問題なく順調に稼動している。
     ユーザーから見れば決してSqlServerに引けを取っていないと思う、、、


Webアプリ開発言語の選択

 最初はPerlとJavaと言う言葉ぐらいしか知らなかったのでそのどちらかと考えてい
 たが、どちらも経験のない言語だった

 たまたまサーバー構築の実験時に知ったPHPについてインターネットでリサーチ
 してみると、、、、、なんとWebアプリでは割とメジャーではないか、、
 敷居もそんなに高そうでもない    って事で暫定的にPHPに決めた



早速本屋へ行き、学習に手頃そうな本を物色し、PHPとPostgreSQLが一度に学
習できそうは「PHP4徹底攻略」と言う本を見つけ購入した。

     後で知ったがこの本は通称「マンモス本」と言うらしい
     今はこの本を見つけた事はラッキーだったと思っている
     現在は「PHP5徹底攻略」があるようです、、、残念ながら買っていない


PHP4徹底攻略        PHP5徹底攻略

週刊BlogRanking

テーマ:PHP - ジャンル:コンピュータ

次のページ

FC2Ad

上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。