ローカルPCにPHPのプログラミング学習環境を構築をしようと思いましたが、ドットインストールの動画マニュアル通り進めてもうまくいかず、方々調べてダメだったのでレンタルサーバーを使う事にしました。
PHPのプログラミング学習をするにはまず環境構築が必要です。思いつくので次の3つあります。
2.Amazon cloud9を使う
3.レンタルサーバーを使う
と、他にも方法があると思いますがこんな感じで考えています。1番は私のWindows PCでは駄目でうまくいかず。Amazon cloud9を使おうかとも思いましたが、これも面倒やなと。
それでどうせ作ったPHPアプリは本番環境に載せないといけないんだったら、最初から本番環境(レンタルサーバー)にテストフォルダを作ってそこで勉強しようと思いました。
テストフォルダでPHPの学習を進めて、同時に同じサーバーの本番ドメインに移行させればそのまま使えるじゃないか、と思ったわけです。
この記事では初歩の初歩。レンタルサーバーにPHPファイルをアップしてテスト動作するまでの手続きを解説します。もし私のようにPHPのローカルPCへの環境構築で失敗してて前に進めない方が居たら参考になれば幸いです。
プログラミングの勉強でレンタルサーバーを使うメリット
一般的にはローカルPCに環境構築したり、Cloud9をそのまま利用したりしてPHPプログラミングの学習をするのかもしれませんが、レンタルサーバーを使う事にもメリットはあると思います。
・すでに最新バージョンのPHPが導入されている
・データベースもすでに最新のが用意されている
・FTPで公開サーバーにアップするだけですぐ動く
・ブラウザでアクセスして本番環境と同じように動作確認できる
・自動的にバックアップを取ってくれるサーバもある
・ドメインを複数入れられるので同じサーバーにテスト環境も作れる
・ほとんどのレンタルサーバーで使える
こんな風に考えています。
またテキストエディタのAtomを使ってFTPの設定をしておけば、ローカルでphpファイルを編集して、そのまま保存すれば自動的にアップロードすることもできます。
すぐさまブラウザでアクセスして結果が見れる、というわけです。
ローカルPCやCloud9を使うデメリット
私が考えているデメリットです。
ローカルPCやCloud9で作ったPHPアプリを本番環境に移動させたときに、OSやPHPバージョンやDB違いで動かない場合があるかもしれない。
移行のタイミングで手続きが面倒だったり動かなくて調べ始めるストレスは自分にとって強烈なデメリットです。Cloud9でRubyアプリを作った時に本番環境へ移動させるときにとても大変だったので、そのように思っています。
勿論ローカルPCやCloud9を使うメリットもあると思っています。
私のように1人でプログラミングするわけじゃなくて、チーム戦でやるならCloud9とか便利そうな気がします。また顧客からの依頼でアプリを開発する場合など、顧客指定のPCやサーバーや環境を構築する必要もありますよね。それをスペックのしょぼいレンタルサーバーでやるわけにはいかないでしょう。
レンタルサーバーを使うのは簡単なPHPサイトを個人で配信するような場合にこそ、使った方が良いと思いました。それにもしアプリを強化したい場合はレンタルサーバーのプランを上位に切り替えたり、専用サーバーに移動させればいい話ですし。
レンタルサーバーは無料ではない
無料じゃないけど、格安レンタルサーバーで十分なのでそんなに費用はかかりません。
例えばPHPとDBが使えることを前提にしても、ロリポップのライトプランは月額250円ですし、さくらのスタンダードは500円です。エックスサーバーは1000円です。
PHPがレンタルサーバーで動くかテスト
さて、ここからPHPを学習するための環境構築(と言っていいのか?)をやっていきます。
すでに環境はサーバーに用意されているので、こちらはAtomエディタの設定をするのみです。
Atomエディタの設定
①ファイル>環境設定>インストール
②remote-ftpで検索し、Installをクリック
③必要に応じて以下の設定を行うためにSettingをクリック
Auto upload on Saveの部分はalwaysになっているの。エディタで保存したときに自動的にサーバーにアップするならalwaysでよく、自分で手動でアップするならneverにしておく。
自分で意識的にやりたい、最初は動作を確認したいのでneverにしました。
④Remote-FTPをはじめる
Getting startedを読むと始め方が英語で書かれているのでGoogle翻訳しながら見ていくと以下の手順です
1.プロジェクトを開く
2.remote-ftpサイドバーを開く(パッケージ>Remote FTP>Toggle)
3.コンフィグファイルを作成する(パッケージ>Remote FTP>Create (S)FTP config file)
4.コネクトする
詳しく図示していきます。
⑤サーバー上に公開テストフォルダを作成しておく
まずはATOMで接続するレンタルサーバーの公開フォルダ(一般的にはドメインが指定したpublic_htmlだろうか)に、テストフォルダを作成します。
この時点ではFTPソフト(WindowsのFileZillaを使用)でサーバーに接続して「test01」フォルダを作成しました。このフォルダの中に作成したphpファイルを置いたりしてテスト学習をしていく予定です。
test01フォルダ以外にもファイルが見ていますが、これはエックスサーバーのデフォルトで配置されているファイル群なので特に気にしていません。またrobots.txtファイルを置いて、Googleクローラーが来ないように設定しています。これによってグーグルの検索結果にインデクスされなくします。(もし本番でサイトを公開するなら外さないといけない。)
⑥プロジェクトを開く
サーバーと同様に、ローカルPC上にtest01フォルダを作成し、その中に空のindex.phpファイルを作成しました。
⑦remote-ftpサイドバーを開く(パッケージ>Remote FTP>Toggle)
以下のようなサイドバーが出ました。
⑧コンフィグファイルを作成する(パッケージ>Remote FTP>Create (S)FTP config file)
SFTPかFTPかどちらかでよいです。SFTPだとサーバー上でコマンドも打てるようですね。SFTPだと設定が必要な場合もあるのでレンタルサーバー会社のマニュアルを見てどっちを使うか決めましょう。
自分は取り急ぎftpでいきました。コンフィグファイル(.ftpconfig)が自動的に生成され、ファイルが開かれます。
以下のように.ftpconfigファイルを編集しました。
host → レンタルサーバーで使っているホスト名
port → デフォルトのまま
user → レンタルサーバーのFTPユーザー名
pass → レンタルサーバーのFTPパスワード
remote → FTPルートからフォルダへのパス
気を付けたいのは、コンフィグファイルの「remote」の部分。初期状態だと「/」サーバーのルートになっているので、事前に作成したテストフォルダへのパスを記述する必要があります。
「/」だと、コネクトしたときにサーバーのルートからの階層が見れます。けど、この階層を自分でポイントしてアップロード先を指定できなかったので、コンフィグファイルにいちいち記述しないといけない様です。
これでCtrl+Sで保存します。
⑨接続してみる(remote-ftpサイドバー>Connect)
画面上にRemote FTP Connectedと出れば成功です。
サイドバーに接続先のサーバー名が表示されているはずです。一見するとルートのように見えますが、指定したフォルダの中になってるはずです。
これの使い方がわかるまで1時間かかった。
ここまででAtomの設定終わりです。
PHPファイルをアップしてみる
index.phpというファイルを作成しました。中身はとても簡単な以下の記述だけのファイルです。
<!DOCTYPE html> <html lang="ja"> <body> <p>hello php! <?php echo "hello world!"; ?></p> </body> </html>
HTMLの記述にPHPの記述を埋め込んでいますので、
hello php! hello world!
と表示されれば成功です。
Projectタブから該当のファイル(index.php)を右クリックしてUploadをクリック。この後、何もメッセージが表示されないので成功してるのか不安になりますが。
Remoteタブを開いてみるとアップロードしたファイルが見えるはずです。
ブラウザで該当のURLにアクセスしてみましょう。ちゃんと記述したPHPが動作しているのを確認できました。
これでPHPのプログラミングが出来るようになりました。
今後はこのtest01フォルダ内に演習や学習で使うphpファイルや、cssファイルなどを作成していく予定です。そしてローカルで編集したらすぐアップロードを行い、ブラウザで表示を確認する、というサイクルを回して学習していく予定です。
まとめ
これからPHPプログラミングを学習していくわけですが、しょっぱなから環境構築で躓いてしまい、実は半月ほど時間を無駄にしてしまいました。私はもともとレンタルサーバーを借りてWordpressの運営とかをしているので、PHPも使えるんじゃないかと思ってレンタルサーバーの環境をそのまま使ってみる事にしたわけです。
案の定というか想定通りに動いてくれたので、これから学習がはかどりそうですね。
取り急ぎ侍エンジニア塾というプログラミングスクールでPHPの学習を始めてるわけですが、これで開発環境は整備できたかなと思います。