私のプログラマの定義って「LAMP環境の構築を自走してできること」なんです。
XAMPPは使いません。VirtualboxとVagrantで組みます。
正直、環境構築できた段階で
・Linuxコマンドが「黒い画面」で打てる。
・サーバの概念が身についている。
・基本的なSQLが書ける。
・Gitも使える。
くらいの状態になると思うので、あとはどんな言語だって、良いと思うのですよね。
現場を離れて2年ちかく経ちます。
今はクラウド(AWSとか)、JSならReactだよね、とか、技術トレンドは常に動いていますが、上記の環境構築ができれば、今でも基礎的な技術面では通じると思うのですよね。
そもそも、何でGoogle先生と勉強したの
当時の私のスペックですが、
・基本情報技術者試験のテキストを読んではいる
・Progateで言語の基本的な記述は学習している
・サーバ周りは全然わからない
・そもそもLAMPってなんですか
という感じでした。
「人に聞いたら良かったじゃん」と、思われた方もいるでしょう。
新規事業所立ち上げでまず私しかスタッフがいなかったんだ。 さみしいね。
あと、私以外の人全員Windowsだったんだ。 何故端末選ばせたし。
ということで、Google先生と仲良く構築していきました。
結論から言うと、1か月かかりました。
でも、いちから自分でやってみると、達成感があります。
1か月も時間をくださった元職場には感謝です。
Mac環境構築の流れ
開発環境の構築(Mac)
注意
2020年時点での情報です。メモの書き起こしなのでリンク切れとかあるかも。
大まかな流れ。
①virtualbox 、vagrantをインストール
②vagrantでCentOSサーバー構築
③Apacheインストール
④PHPインストール
⑤DBインストール(今回はpostgres)
⑥共有フォルダの設定
⑦ネットワークの設定
⑧gitを導入する
①virtualbox 、vagrantをインストール
【virtualbox】
https://www.virtualbox.org/
【vagrant】
https://www.vagrantup.com/downloads.html
※version違いで立ち上げができないこともある
(vagrant2.2.6、Virtualbox 6.1(最新版)でハマった)
→その場合はバージョンを下げて再インストールする
②vagrantでCentOSサーバー構築
参考:
❶Vagrantとvirtualboxの現在のバージョン確認
$ VBoxManage -v
$ vagrant -v
❷Vagrantを使うためのディレクトリを作成 & 移動
$ mkdir vagrant_centos7
$ cd vagrant_centos7
❸CentOS7のboxを追加
Vagrantbox.es (http://www.vagrantbox.es/) からお目当てのCentOS7を探して、URLをコピー。そのURLを使って、boxを追加。
#vagrant box add [vagrantのbox名] [boxのURL]
↓はどこのディレクトリで実行してもOK
$ vagrant box add centos7.1 https://github.com/CommanderK5/packer-centos-template/releases/download/0.7.1/vagrant-centos-7.1.box
↓は仮想サーバーを起動させたいディレクトリで実行
$ vagrant init
❹追加したboxを利用して仮想サーバーを起動
これから、↓は仮想サーバーを起動させたいディレクトリで実行
#vagrant init [↑で指定したvagrantのbox名]
$ vagrant init CentOS7.1 # 初期化する(Vagrantfileを生成する)
$ vagrant up # 起動する
$ vagrant ssh # 接続する
[vagrant@localhost ~]$ # 仮想サーバーに入った
③Apacheインストール
Apacheインストール
Apacheは基本的に最新バージョンのインストール推奨
CentOSサーバー内で
sudo yum install -y httpd
サーバー起動時にApache起動
sudo systemctl enable httpd.service
Apache起動
sudo systemctl restart httpd.service
Apache起動確認
service httpd status
参考:
④PHPインストール
PHPインストール
CentOSサーバー内で
yumにEPELリポジトリを追加
・EPEL
sudo yum install -y epel-release
yumにRemiリポジトリを追加
・Remi
sudo yum install -y http://rpms.remirepo.net/enterprise/remi-release-7.rpm
・sudo yum update -y でyumを更新
・PHP本体 + PHP関連のモジュールをインストール
sudo yum install -y --enablerepo=remi,remi-php73 php php-zip php-devel php-mbstring php-pdo php-xml php-bcmath
・PHPがインストールされたか確認
php -v
(# PHP本体と関連のパッケージを削除する場合)
sudo yum remove php-*
参考:
⑤DBインストール(今回はpostgres)
参考:
❶Postgreをインストール
sudo yum install postgresql-server
❷データベースを作成
sudo service postgresql initdb
❸Postgreを起動
sudo service postgresql start
❹自動起動するようにする
udo chkconfig postgresql on
❺DB作成
sudo -u postgres createdb DBの名前
❻作成したDBにログイン
sudo -u postgres psql DBの名前
❼ユーザーを作成(DBにログインした状態で)
create user vagrant;
※ここではvagrantというユーザーが作成される
(vagrantのユーザーもvagrantなのでログインしやすくなる)
❽ログイン(簡素版)
psql DBの名前
❼の通りCentOSにログインしているユーザもvagrantなので、postgreにログインする際にユーザ名を省略できる。
ハマったら↓
⑥共有フォルダの設定
参考:
共有フォルダの設定(Vagrantfile に記述)
該当箇所を以下のように書き換える。
Vagrant.configure("2") do |config|
config.vm.box = "centos/7"
config.vm.network "private_network", ip: "192.168.33.10"
config.vm.synced_folder "./data", "/vagrant_data"
・"./data"のところにローカル側のフォルダを指定する
・"/vagrant_data"のところにゲスト側のフォルダを設定する
・config.vm.network "private_network", ip: "192.168.33.10"
で、192.168.33.10/("/vagrant_data"以下のフォルダパス)をブラウザで表示するとそのファイルを開くことができる
⑦ネットワークの設定
❶プラグインが入っているか確認
vagrant plugin list
❷vagrant-vbguest がない場合インストール
vagrant plugin install vagrant-vbguest
❸bguest の状態を確認
vagrant up
vagrant vbguest --status
[default] GuestAdditions 5.2.6 running --- OK.
のように表示されたらOK
⑧gitを導入する
参考:
Vagrant 上で作成されるデータは、Synced Folder 機能でホストOS に保存(共有)する利用形態を取れば、Vagrant 上でのデータのことは ほとんど考える必要がなくなる
流れとしては:
- ホスト側にソースコードを置き、git で管理
- Synched Folder 機能でVagrant 側のマシンとデータ共有(ソースコード)
- Vagrant 上でソースコードを編集
- ホスト側でソースコードをコミット・プッシュ
このように、Vagrant 側にgit をインストールしなくても、ホストOS だけでバージョン管理をすることができる。
一人でやっていて、誰も周りにいなくて、エラーはいっぱい出るし、そのたびにGoogle先生におしえてもらって、いろんな人の記事を読んで、たどり着いたのが上記。
アパッチってなに?からのスタートです。楽しいけれど長い冒険でした。
終わり。