最近いろいろなWebサービスが公開されているのに刺激を受けて、自分もPHPのフレームワークlaravelで何かを作ってみようと思いましたが、なんと自分が契約しているレンタルサーバの仕様だとlaravelを公開することができないことがわかりました!ここ数日、サーバのことをいろいろ調べて時間を費やしたため、いったん記事にまとめます。
【目次】
laravelを公開するにはSSH接続が必要
WordPressはFTPソフトでファイル一式をアップすればよかったのですが、laravelはSSH接続が必要らしい。
※参考:http://0gravity000.sunnyday.jp/ProgramingNote/2017/10/21/tip_09_02_008/
そして、私が契約していたロリポップの「ライトプラン」はSSH接続ができないじゃありませんか!「スタンダード」より上のプランにしないとおけません。
うーむ、PHPとMySQLが使えてWordPressも簡単インストール機能があるので、WordPressサイトを作っている間はなんの不便も感じていなかったのだが。。てっきりlaravelもいけると思っていたのになー。
ちなみにSSHとはURLの頭がhttps
と「s」がつくアレです。
暗号や認証の技術を利用して、安全にリモートコンピュータと通信するためのプロトコル。
※参考:インフラエンジニアじゃなくても押さえておきたいSSHの基礎知識 - Qiita
レンタルサーバの種類(共用、VPS、専用、クラウド)
レンタルサーバの種類はいくつかあります。
- 共用:安いが他のサイトと共有なのでアクセス集中などの影響を受ける
- VPS:仮想的な専用サーバなので他のサイトの影響を受けにくい。専用サーバよりは安い
- クラウド:仮想的な専用サーバで機能をあとから拡張できる。従量課金なのでアクセスによっては高くなる。
- 専用:物理的な専用サーバなので他のサイトの影響を受けない。高くて構築の知識必要。
※参考:ネコでもわかる!さくらのVPS講座 〜第一回:VPSてなんだろう?〜 | さくらのナレッジ
専用サーバはroot権限があるかわりにOSから自分で構築する知識が必要。LAMP環境ならすべて無料のオープンソースです。
- Linux:OS(CentOS)
- Apatch:Webサーバ
- MySQL:データベース管理システム(RDBMS)
- PHP:サーバサイド・スクリプト言語
※参考:https://furien.jp/columns/90/
VPS(Virtual Private Server)は
実際には共用サーバーでありながら、仮想的に専用サーバーと同等の機能・能力を与えた「仮想専用サーバー」
※参考:VPSとは ~共用サーバー、専用サーバーとの比較~ | VPS(仮想専用サーバー)ならラピッドサイト
共用サーバはアパート、専用サーバは一軒家とするとVPSはその中間であるマンションというイメージ。
学習コスト的には共用サーバのSSH接続できる仕様(ロリポップでいえばスタンダードプラン)が無難かなー?
クラウドサービス(SaaS、Paas、IaaS)
フロントでいうCodePenみたいにお気軽にためせるサーバサイド版サービスはないかと調べたところ、クラウドサービスというのがいくつかありました。
- SaaS=Software as a Service:ソフト(アプリ)を提供
- PaaS=Platform as a Service:プラットフォーム(開発環境)を提供
- IaaS=Infrastructure as a Service:インフラ(クラウドサーバ)を提供
このうち一番下のIasSは先ほど書いた「クラウドサーバ」に当たりますね。
※参考:VPSとクラウドの違い
aa
はas a
でS
はService
なんですね。冒頭の頭文字が提供している物の違いになります。
- SaaS:例 Googleドキュメント、スプレッドシート
- PaaS:例 GAE、AWS、Microsoft Azure
- IaaS:例 Amazon EC2
特にPaaSはインフラ、サーバ、DBなどが最初から用意されており、フロント側の人間がインフラ側のコードをあまり書くことなくWebサービス開発が実現できそうです。
※参考:【比較してみた】みんなが使っている個人開発(Webサービス)向けPaaS・ホスティングサービス - Qiita
この中でも「Heroku」がlaravelにも使えそうなのでちょっと試してみようかと検討しているところです。AWSのように自動的に課金にならないようなので安心です。
(Googleの「firebase」も人気なようなのですが、GitHub Pagesのような静的ページしか使えないとか、node.jsは動くがPHPは動かないとか?)
※参考:PaaSの基礎知識とHerokuで開発を始める準備 (1/3):CodeZine(コードジン)
最後に
ということで、ようやくこの2択くらいに絞り込まれてきたところです。
- 共用サーバの仕様をSSH接続できるプランにあげる
- PaaSのHerokuの無料枠を使う
laravelが公開できないことを知ってから、サーバ系の知識がなさすぎて調べごとばかりになり正月休みが終わってしましました。とりあえずそれぞれの言葉の違いと全体像くらいはイメージできてきたかな。今後はまずローカル環境でlaravelをこと初めて、Herokuにアップしてみようかな。それではまた!
※参考:Web開発環境の記事まとめ
qiita.com