はてなキーワード: XAMPPとは
(記事が長すぎたので前編・中編・後編に分けました)
僕ももう、リストラされそうなとあるおっさんなんですが、先日Webサービスを公開しました。
きっかけになったのはこの記事です。
http://anond.hatelabo.jp/20101203150748
こんな事できたら良いなぁと思っていると、他にもやっている方たちがいました。
http://matome.naver.jp/odai/2131952812556433001
http://anond.hatelabo.jp/20120318122617
Rails3 と jQuery で、真面目にオシャレなエロサイトをつくってみました - h300
http://d.hatena.ne.jp/inouetakuya/20120331/1333192327
http://anond.hatelabo.jp/20120914214121
http://blog.ropross.net/archives/99
これらを読んで自分もやってみたくなり、
先日の家入さんの折れずに挑戦を続ける姿を見てモチベーションも高まり、
7月21日~8月19日の30日でWebサービスを作りました。
最後の一週間はお盆休みでしたが、それ以外は平日は仕事をしながら土日をフルに使っています。
と言っても、いきなり高度な事をするのは大変なので、
本当に自分が作りたいサイトをやる前に、一度シンプルなサイトを作ってみる、という所までです。
やってみて改めて分かったのは、「自分でWEBサービスを作りたいと思っている人へ」の中の人はかなりがんばったんだなぁ、と。
かなりの熱意とモチベーションをもって、効率良くやらないと、一から勉強してあの短期間であのサイトは作れません。
プロ顔負けの技術とおもしろいアイデア、情熱をもって短期間でそれをやってしまった中の人は凄いです。
だから、Webサービスに夢を見る人(僕)も、Web業界の人も、あとHな人もブクマするのでしょう。(賞賛)
それでは、一般人が一般的ながんばりで確実にやれるだろう手堅いラインをお届けします。
偏差値40の僕が最低限ここまで出来たので、きっとあなたならもっと出来るはず。
ステップ7まではサクサク進めて、分からなくてもどんどん次に行きましょう。
今回ぼくが作ったサイトはこちら
■ステップ0:準備
・パソコンを用意
・ブラウザはChrome,IE,Firefox,Safariあたりをインストールしておく。Chrome便利。
・作りたいサイトのアイデアとデザインのイメージ、ドメイン名(○○○.comとか)のイメージ。
・作る理由とやる気
・はてブ便利、Web業界の皆さんの空気感を知るため、なるべくPCかスマホでチェック。
ブラウザを右クリックして「ソースを表示」すると出てくるアレです。
Yahoo!とかのソースを見るとかなり長いけど、全部書くわけじゃないから大丈夫。
ネットで調べても良いけど、やっぱり基礎知識は本が良いと思います。
メモ帳で書いてブラウザで表示して、メモ帳で直してブラウザF5で更新して確認、
何となく分かってきたら、より具体的に理解するためにこの本を読みます。
PHPについて調べる。
初めはこの本が勉強になりました。
書いてある通りロカールサーバー(XAMPPかMAMP)を入れて、自分のマシンでPHPが動くようにします。
データベースの使い方も一緒に書いてあるので入門に最適です。
次はこれを読みます。
普通に読んでいくと中盤のフレームワークを作る所で挫折するはずなので、一旦そこまででOK。
パーフェクトPHP
PHPの他の選択肢としてRubyやPythonもあるみたいですが、学習コストがかかりそうなのと、そのままでは動かないサーバーがあったりで、
最先端のプログラマーになる必要はないので、レガシー&枯れたPHP一択です。
カッコつけずにモチベーションが持続するうちに勝負です。
VPS(専用サーバーを仮想的に分割して安くしたサーバー)が流行ってますが、
学習コストがかかるのと勉強する事が増えるので割りきって始めは普通のレンタルサーバーにします。
VPSを借りるとLinuxの知識やWebサーバー、メールサーバー、及びそれらの保守管理などの知識が必要になります。
レンタルサーバーならある程度マネージドで、作ったプログラムが動かない時の原因の切り分けもしやすいです。
おすすめは「さくらのレンタルサーバー」のスタンダードプランです。データベースの使えない「ライト」プランは止めましょう。
その他、ロリポップ、CORESERVERなどいろいろあるので最低限PHP,MySQLが使えるサーバーを選びます。
サーバーを契約したらアカウント情報を確認して、FTPでログインしてみましょう。
http://sourceforge.jp/projects/ffftp/
ログインできたら、ステップ1で練習したファイルをアップロードしてブラウザで表示してみたり、
ステップ2で作ったPHPファイルをアップロードしてブラウザで実行してみたりします。
慣れてきたらFileZilla FTP Clientが便利です。
Webサービスのしくみを理解するために、WordPressを借りたサーバーに入れてみます。
WordPressはPHPで出来たCMS(コンテンツ管理システム)で、ステップ1~3がどう組み合わさって動くのか理解できます。
ブログや会社案内のサイト程度は作れてしまうので触れておいて損はないです。
テーマをいじったり、プラグインで遊んでみると理解が深まります。
オススメはこの本。
プラグインのまとめはこの辺りが親切。
2011年版!絶対にインストールしたいWordPressプラグイン45個
http://vanilla-stone.com/blog/wordpress/2011-edition-45-wordpress-plugin-pieces-install-absolute/
TwitterやInstagramと連携するプラグイン入れたり、CRONで自動化したりすると楽しくなってきます。
ここまでで何となくWebサイトのしくみが理解できると思いますが、
自分の作りたいサイトを一から書いていくと思うと心が折れると思います。
そこで、CakePHP(ケーキピーエイチピー)というフレームワークを勉強します。
フレームワークというのはWebサイトの開発で必要になることが多い色んな機能をまとめてくれている枠組みソフトです。
PHPの文法で、フレームワークの書き方のルールに従うだけで、様々な便利機能を簡単に使用でき、
フレームワークは他にRubyのRuby on Rails、PHPだとSymfonyやYiiなどかなりの種類があります。
CakePHP 1.3によるWebアプリケーション開発―オープンソース徹底活用
あと、余裕があればこれも購入。
注意したいのは、現在CakePHPのバージョンは1.3系と2.0系がありますが、1.3を使うという事です。
2.0系は新しい機能が付いたりパフォーマンスが良くなったりしていますが、2012年9月現在、
バージョンアップが激しく、関連書籍は2~3冊程度、Webの検索でもヒットするのは1.3の情報が圧倒的に多いです。
MVCというデータ処理・表示処理・それらのコントロール処理を分離して記述するルールや、
ステップ2では踏み込んでいなかったクラスが出てきますので、慣れるまではかなりの心折設計です。
難しすぎて僕は理解できなかったので、ここで一旦CodeIgniterに浮気しました。
CodeIgniterはCakePHPと同じPHPで書かれたフレームワークで、インド方面で良く使われてるらしい。日本だとまだマイナー、かな。
ライセンス問題で下火になっていますが習得の容易さとパフォーマンスが良いのでフレームワークという概念の把握にはオススメです。
僕はこれを読んでCodeigniterだけじゃなくてCakePHPも理解できました。
CodeIgniter徹底入門
ただ、CodeIgniterは簡単・高速で習得しやすいけど、
その分シンプルで機能が少ないので、ちゃんとしたサイトを作ろうと思うほど自分で書く部分が増えていきます。
セキュリティやユーザー認証なども素人が自前で一から作るのは危険なので、やっぱりCakePHPお勧めです。
開発する時はgitHubに上がっているデバッグキットを入れると便利です。
cakephp / debug_kit
https://github.com/cakephp/debug_kit/tree/1.3
http://codezine.jp/article/detail/5105
NetBeansを使う時のCakePHP用の追加モジュールはここ
https://github.com/evilbloodydemon/cakephp-netbeans/tree/autocomplete
中編はこちら
留年した上に、色々とどん底だったので引きこもりがちになった。
暇だったので、ウェブサービスでも作ろうと思いたった。
どうにか形になったので、誰かの参考になればと思い、その経緯を書いてみる。
■出来上がるまでのあらすじ
ウェブサービスを作るには、プログラムが書けないとダメらしいので勉強する事に。
主にPHP,ruby,pythonなんかがメジャーらしく、最近ではrubyが人気だと知る。
Rubyを勉強しようかと思ったけれど、PHPのほうがオススメとどっかのブログに書いてあったのと教科書がたくさんあったのでPHPを勉強することに。
「よくわかるPHP」みたいな入門書で一ヶ月くらい勉強して、ある程度は書けるようになった。
本格的なウェブサービスを作るにはフレームワークを使えと書いてあったので、cakePHPを勉強した。
開発環境にXAMPPというのをインスコしようとしたけれど、上手く行かず、結局レンタルサーバー上で作る事に。
HTMLとかCSSとか、1から勉強するといつまでも終わらない気がしたので、フリーのテンプレートを探した。
http://cakephp.seesaa.net/article/20616700.html
ここのサイトは無料で商用化だったので、それをちょっとだけ変更して使った。
考えていたウェブサービスはTwitterのつぶやきを自動回収して検索できるというもの。
自動回収するには、プログラムを定期的に動かす必要があり、cronと言うらしい。
LINUXとかの知識が必要と書いてあったが、LINUXなんてわからないし、勉強しようにも空いているパソコンなんてないので焦る。
その後、レンタルサーバーによってはcronの機能を提供しているという情報を得る。
借りていたXサーバーにもその機能はあったので、書いたPHPプログラムを走らせてみたら、無事動いた。
後は、簡単にDBの仕組みと検索とページネーションというのを勉強した。
検索とページネーションを実現するのが、難しくてモチベーションが下がったけれど、プラグインという便利なものがあったのでそれを利用したらなんとかできた。cakePHPとかフレームワークはプラグインが充実していると後で知る。
このまま公開しようかと思ったけれど、セキュリティ関係が怖かったので一通り勉強した。
ゆーすけべーさんのサイトに「安全なWebアプリケーションの作り方」がオススメと書いてあったので、読んで実践した。
■完成
そして、なんとか完成したのが
@ごちです
というウェブサービス。
Twitterから食事の記録が簡単にとれるというウェブサービスです。はっきり言ってウェブサービス(笑)程度の出来ですが、自分としては頑張ったつもりです。
製作期間は一ヶ月くらいです。
ずっと家にいて、試行錯誤していたので作業時間は一日8時間くらいです。
多分、一流のプログラマなら半日もかからないで出来るレベルでしょうが、自分では思ったより早く出来たような気がしています。
これは上にも書いた通り、無料テンプレートを使ったのでほとんど勉強していません。
ただ、テンプレートをいじくるのにも最低限の知識は必要なので「HTML&CSS辞典」みたいなのを買ってきてわからない事はその都度調べていました。
・PHP
『よくわかるPHPの教科書』というので勉強した後、『パーフェクトPHP』で勉強した。
あと、プラグインなんかについてはその都度、グーグル先生に聞いたり、プログラマのブログを参考にさせてもらいました。
こことか、
http://torhamzedd.halteria.com/2012/01/cakephp20search-plugin2.html
こことか、
http://libro.tuyano.com/index2?id=734001(cakePHPに関しては、ここが1番わかりやすかった。個人的に)
『よくわかるPHPの教科書』で最低限のものを勉強した後、グーグル先生を使って独学。
「安全なWebアプリケーションの作り方」を読んで、自分の書いたプログラムをチェックしました。
フレームワークを使えば、(ある程度はフレームワーク側で処理してくれるので)初心者でも比較的簡単にセキュリティ対策ができるようです。
■偉そうにアドバイスなんかしてみる。
アドバイスなんて出来る立場じゃないけど、プログラムは最低限のものが書けて読めれば後は他力本願でなんとかなると思います。
難しそうな事があれば、ライブラリやフレームワークに頼ればなんとかなります。
あとは、集めてきたライブラリなんかを切り貼りすればどうにかなりました。
後はわからない事はグーグル先生か、質問サイトで聞けば教えて貰えます。
ただ、配列や変数などのプログラムの基本的な仕組みを理解しないとOKwavweとかヤフー知恵袋でも解答をもらえないような意味不明なエラーが出ます。
基本的な文法エラーは
http://jp.piliapp.com/php-syntax-check/
こういうサイトでチェックしていました。
エディタやなんかはvimとか高級な奴は多機能過ぎて意味不明だったので「サクラエディタ」を使っていました。
デプロイ(プログラムをウェブ上に公開して使えるように準備することらしいです)も自動化するべきらしいのですが、普通にFFFTPで手動でデプロイしていました。
まったくプログラムがわからない状態から初めて一ヶ月ほどでそれっぽいものが出来ました。
ネットの世界には自分みたいな初心者にもわかりやすく解説してくれている先輩たちがたくさんいます。
最低限のことは勉強する必要がありますが、後はグーグル先生や先輩のサイトに頼れば思ったより早くいろんなものが出来ると思います。
なにより、自分の書いたプログラムが動いているを見るとすごく感動します。
あ、よければ@ごちです使ってやってください。
最近、プログラミング言語があんまし進化していないような気がする。
まあ、確かにフレームワークとかはできたけど、苦労の割にはあんまし便利になっていない。
覚えなきゃいけないことも増えているし。
ところで、面白いプログラミング言語を見つけた。
言語自体はかなりへっぽこ。
(SAPの人、すみません。あくまで私見です)
でも、便利な部分があるのだわ。
SAPが開発した部分って、基本的には変更不可能。
まあ、そりゃそうです。まともに動かなくなったら困るしね。
でも、新しいバージョンではちょっと違う。
もともとあるプログラムの上にレイヤーを重ね、そこにプログラムを書くことができる。
これ、便利だわ。
SAPの方にバグがあったら、SAPのプログラム修正版を上書きする。
その時、レイヤーみたいな形式で俺が上書きしたプログラムは無視される。
なので、俺のプログラムは残ってる。
標準のプログラムの上にレイヤーみたいな感じでプログラムが組めると、こんなに便利だとは思わなかった。
ちょっと考えてみてほしい。
レンタルサーバのさくらインターネットを借りたとしよう。
PC上にXAMPPをインストールして、検証環境にしてみたとする。
さくらインターネットのMySQLはバージョンが古い。
なぜかUnicode限定。
こんな時、SQL分を実行する際、execute系の関数を上書きできたら便利じゃない?
EUCでもUnicodeでも使えるようにするとか、オープンソース上のコードを全部調べるとか。
でも、それめんどう。
こんな時、レイヤーを重ねてexecute系の関数の入り口で文字コード変換できたら・・・・
すっげー楽になる。
ぐぐったらそのものズバリっぽいのが出たw
(「10分で作るCakePHPアプリ for Windows」http://p4life.jp/cake/ )
ほんとにWEBに色々解説が落ちてるね。
とりあえずこのへんからはじめてみます。
なるほど、確かに環境の構築が一番大変ってのは感覚として理解できる。
うん、まずはXAMPPとやらをキーワードにGoogle先生に質問することからはじめるよ!
具体的に着地可能な目標の設定が必要だなぁ…。
とりあえずXAMPP入れるんだ!
PHPでちょっとしたサービスを組むならXAMPPでちょっとPHPに慣れた後にCakePHPでつくるといいよ。
わからないことあったら増田に質問書いたら俺答えるよ。
って、これじゃ答えになってないな。
どうしても本を買いたいなら、PHP本なら何でもいいと思うよ。ただしXAMPPのインストール方法が書いてあれば一番良い。
XAMPPってのはWindowsでPHPを動かす環境をすぐにインストールできるセットね。
プログラミングを始めるときに一番大切(そして躓く)のはHello, world!を出力することではなくプログラムを実行できる環境の構築だから、そのことを理解している人が書いた本が良い。