Webエンジニアを目指すなら、Linuxについて知っておくことは必須の知識です。
とはいえそんなに特殊なことでも難しいことでもありませんので、順に説明していきますね。
Linuxとは?
Linuxとは単純にOSのことです。OSはコンピューターを利用する際に必須なオペレーティングシステムのことですね。
一番身近な例で行くとWindowsやMacOSなどがあげられますよね。それと同じでLinuxもOSの一つになります。
では何のコンピューターのOSなのかというと、Webサイトを公開するにあたり立ち上げるサーバーのOSになります。
LinuxをセットアップしたサーバーにWebサイトを格納し公開、利用者はそのサーバーにアクセスしてサイトを閲覧するといった感じですね。
Linuxのセットアップ
私が現在業務で公開しているサーバーでは、イチからLinuxをインストールしてサーバーを立ち上げるということは少なくなっています。
AWSなどのクラウド環境に移行しているので、LinuxOSはとりあえず初期状態で入っている状態からのスタートって感じですね。
ただしそのままではサーバーとして公開されてもいなければ、アクセスされてもWebサイトが見れるわけでもない状態です。
なのでApacheをインストールしたり、データベースを使うのであればMySQLをインストールしたりと、そういった意味でのセットアップ作業は必須になってきます。
セットアップの方法
例えばwindowsやmacにソフトウェアをインストールする場合、ファイルをダウンロードしてきて実行、でインストールが完了しますよね。
すべて画面上でマウスも使えて見やすく操作しやすい状態で出来るようになっています。
Linuxでも同様のGUI(グラフィカルユーザインターフェース)はあるのですが、CUI(コマンドユーザインターフェース)を使って行うのが一般的です。
なのでCUIによる操作にも慣れておく必要がありますね。
CUIの練習方法
windowsでもCUIによるコンピューターの操作は可能です。その場合コマンドプロンプトをというものを利用します。
コマンドプロンプトを起動するにはwindowsマーク+Rでファイル名を指定して実行で「cmd」でOKを押せば起動できます。
例えばあるフォルダに入っているファイル一覧を見たい場合、windowsではマウスでエクスプローラーを立ち上げてそのファイルをダブルクリックするだけですよね。
コマンドプロンプトでは「cd 見たいフォルダのパス」と打ってそのフォルダに移動したのち「dir」と打つとファイル一覧が表示されます。
Webサイト公開の為のLinux
Linuxとはサーバーとして公開するコンピューターのOSで、Webサイトを公開する為にはその為のセットアップが必要というお話をしてきました。
では具体的に何が必要かという話にうつっていこうかと思います。
Apache
Apacheとは何かというとwebサーバーのソフトウェアのことです。とりあえずこれを入れるとデフォルトのサイトが見れるようになります。
さらには閲覧可能なユーザーをIP制限で絞ったり、特定のページにBASIC認証をかけたりwebサーバーとして色々できることがあります。
現状ではそこまでは難しいかなと思うので、ひとまずこれを入れればそのサーバがwebサイトとして見れるようになるとだけ覚えておけばいいかなと思います。
使用している言語
例えばPHPを使ったサイトであれば、そのサーバーでPHPが利用できるようにPHPまわりのものをインストールしていく必要があります。
ここはそんなに難しくなくただ入れるだけという感じですね。
データベース
同様にデータベースを利用しているのであればそちらも入れていきます。PHPであればMySQLとの組み合わせが多いのではないでしょうか。
インストール方法
CUIでコマンドを打ち操作していくのがLinuxでの主な操作方法と上で記述させていただきました。
これらのソフトウェアを入れる際にもコマンドラインからコマンドを打って操作していきます。
Linuxにはよく使うソフトが簡単にインストールできるパッケージが利用でき、例えばApacheを入れる場合には「yum install httpd」と打つだけで可能です。
Linux実践学習
色々と説明してきましたが、正直これは文字で読んでもほとんど理解できないところだと思います。一番いいのは自分で実践することです。
他にも色々ありますが、VM VirtualBoxというものを利用することでwindowsマシンの中に仮想的にLinuxをインストールして利用することが可能です。
ブラウザからそのサーバーを見て実際にwebサイトとしてみることも可能なので、ほぼ本番に近い環境でのテストも可能です。
長くなってしまうので、今回はそこまで詳しく書きませんが、VirtualBoxでの構築事例も今後記事にして高空き出来ればと思います。
Linuxの種類
windowsはwindows、macはmac、とOSはそれだけなのですがLinuxにはいくつかの種類があります。
私も全てを使ったことがあるわけではないので網羅できていないのですが、代表的なものとして以下のような分類になるようです。
- RedHat
- Debian
- Slackware
そしてこれは分類であって、例えばRedHatと分類される中でもCentOSがあったりFedoraがあったりと最初はそれを選択すればいいのか悩んでしまうかと思います。
個人的に今まで一番多く使ってきたのはRedHat系統のCentOSです。まったくの初めてでこだわりもないということであればひとまずはじめの一歩としてはCentOSで大丈夫かなと思います。
CentOSを選択して行き詰って困ることがあれば「CentOS 〇〇」と検索すればおそらくほとんどの疑問は解決できるくらい情報はたくさんあります。
CentOSにもCentOS6やCentOS7といった具合にバージョンいよる違いもあるので、ひとまずその時の最新を入れてその数字も込みで検索してバージョンにあった情報を選ぶようにするのだけ注意が必要かもです。
レンタルサーバーでは不要な場合
業務用のレンタルサーバーではLinuxは入っているものの初期状態で何もセットアップされていないということが多いです。
しかし個人が借りるようなサーバーではPHPやRuby、MySQLなどは既に入っている場合がほとんどです。
中にはWordpressが管理画面上からボタン一発で簡単にインストールできるところも多いです。
もし、ひとまずサイトを公開してみたいだけということであれば、まずはそういった個人向けのレンタルサーバーの利用でもいいのかなと思います。
レンタルサーバーで公開環境の練習を行う
先ほど書いた通り、開発マシンにVirtualBoxでLinuxを入れて開発を行いブラウザで表示確認等はできるのですが、やはり公開環境での運用経験は欲しいところかと思います。
もし今はまだWebエンジニアを目指して勉強中で、今後どこかの企業の採用試験などを受けて就職・転職したいとあなたが思っている場合。
自分でサイトを作成して公開運用している経験がある人と、そうではない人ではもちろんある人の方がいいですよね。
私の会社でもちょっとした人気のあるサイトの運営者が突然入社してきたりしてびっくりすることもあります。
もしあなたがWebエンジニアを目指しているのであれば、是非採用の際に実績としてアピールして有利になるようなサイト作りをお試しください!