Apache(Webサーバー)の役割
ブラウザが開こうとしているURLを解釈して、対応するWebサイトの情報を探し出してデータを返す
httpd.confの編集
環境:CentOS
httpd.confは、Apacheの設定ファイル
$ sudo vi /etc/httpd/conf/httpd.conf
でhttpd.confを開く
Vagrant+VirtualBoxでPHP開発環境構築 - Qiita
内で、DocumentRoot, ServerName,
ServerRoot
Apacheをインストールした場所
Listen
特定のIPアドレスやポート番号だけを受け付ける指定。VirtualHostではここの設定のポート範囲内のみ使用できる
デフォルトは80(一般的なHTTP)
DocumentRoot
サーバーのトップ階層
DocumentRoot "/var/www/html"
<Directory 設定項目>~</Directory>
ディレクトリ別の設定ができる
ServerName
サーバ自身が使用するサーバ名とポート番号の指定。BINDで自動取得出来る場合があるが起動時の問題を避けるため指定しておくことが推奨されている。
BIND: 内向きのドメインネームサーバー
とりあえずデフォルト設定のコメントを外す
ServerName www.example.com:80
User/Group
自分で追加して、httpd.confにそれぞれ指定する
$ sudo groupadd httpd $ sudo useradd -g httpd -d /var/empty/httpd -s /sbin/nologin httpd
# If you wish httpd to run as a different user or group, you must run # httpd as root initially and it will switch. # # User/Group: The name (or #number) of the user/group to run httpd as. # It is usually good practice to create a dedicated user and group for # running httpd, as with most system services. # User httpd Group httpd
Vagrantの使い方③ 仮想サーバでhttpdを構築する ssh/PHP,httpdのインストール
httpとは、WebサーバーであるApacheを操作する時に使われるコマンド
ssh(Secure Shell)で接続
どこからどこに接続するかというと、Macから仮想サーバーに接続する(たぶん)
$ vagrant ssh Last login: Thu Jul 16 08:48:31 2015 from 10.0.2.2 Welcome to your Vagrant-built virtual machine. [vagrant@localhost ~]$
Linuxコマンド
pwd: 現在のディレクトリの場所を絶対パスで表示する
[vagrant@localhost ~]$ pwd /home/vagrant
httpdをインストール
たぶんWebサーバのApacheを仮想サーバーにインストールしているんだと思う
sudo yum -y install httpd
sudo: 管理者権限
yum: パッケージのインストールに使う
- y: 全てyesで進める
PHPのインストール
$ sudo yum -y install php
無事完了
不明メモ httpd, yumコマンド, rcスクリプト
httpd(HyperText Transfer Protocol Daemon)
WebサーバソフトウェアであるApacheのプロセスや実行ファイルなどに付与された名称(実行ファイル名、コマンド名)。
Daemon(デーモン)はメモリに常駐したプログラムのこと。
外部からのHTTP接続を受け付けて要求されたファイルを送信したり、送られたデータを受け取って保存したり、指定されたプログラムを起動したりする。
Linux系のOSでApacheをインストールする場合、
$ yum install httpd
と記述する
rcスクリプト
起動スクリプト
サービスは、システム起動時やランレベル実行時にinitプロセスがRCスクリプトを実行することで
そのランレベルで起動すべきサービスが開始されて、停止されるべきサービスが停止する仕組みと
なっています。
場所
/etc/rc.d/init.d/
Vagrantの使い方② 起動してから何をする? プラグインも
1. Vagrantの起動
Vagrantを起動するには
$ vagrant up box名
と入力すればいい
2. Vagrantの状態確認
$ vagrant status default running (virtualbox)
virtualboxはインストールするだけで勝手に使えているってことかな?
3. Vagrantのシャットダウン
$ vagrant halt ==> default: Attempting graceful shutdown of VM...
haltは「停止する」という意味
4. その他
vagrant suspend : スリープ
vagrant resume : スリープ解除
vagrant reload : 再起動
vagrant destroy : 仮想マシンを削除
試しにdestroyしてみたけど、作成したbox自体は残るみたい
importしたパッケージはどうなるか分からないけど
5. プラグイン
プラグインのインストール、確認、アンインストールも簡単でした
インストール
$ vagrant plugin install sahara
確認
$ vagrant plugin list
アンインストール
$ vagrant plugin install sahara
Vagrantの使い方① インストール/初期化
web帳 | VirtualBoxとVagrantで開発環境を構築こちらを参考に進めてみる
1. インストール
まずはOSをインストールしてみる
$ vagrant box add [名前] [URL]
※boxはVagrant内の仮想マシンのテンプレート
A list of base boxes for Vagrant - Vagrantbox.es
でインストールしたいOSを選択するらしい
CentOS 7.0 x64 (Minimal, VirtualBox Guest Additions 4.3.28, Puppet 3.8.1 - see here for more infos)
をインストールしてみる
$ vagrant box add centos70 https://github.com/tommy-muehle/puppet-vagrant-boxes/releases/download/1.1.0/centos-7.0-x86_64.box
==> box: Box file was not detected as metadata. Adding it directly... ==> box: Adding box 'centos70' (v0) for provider: box: Downloading: https://github.com/tommy-muehle/puppet-vagrant-boxes/releases/download/1.1.0/centos-7.0-x86_64.box box: Progress: 86% (Rate: 3328k/s, Estimated time remaining: 0:00:21) ==> box: Successfully added box 'centos70' (v0) for 'virtualbox'!
ダウンロード完了!
ダウンロードされたかを確認
$ vagrant box list centos70 (virtualbox, 0)
ちなみにboxの削除
$ vagrant box remove <name>
2.Vagrantの初期化
任意の場所にvagrantフォルダを作成ということなので、ホームディレクトリに作成
cd vagrantして、先ほどダウンロードしたOSで初期化
$ vagrant init centos70
するとvagrantフォルダにVagrantfileができた。これで初期化は完了らしい。
もう1回initすれば上書きで初期化されないかな?と思ったけどエラーになる
$ vagrant init centos70 `Vagrantfile` already exists in this directory. Remove it before running `vagrant init`.
Vagrantfileを消せってことかな
消したら作り直しできたけど、Pluginなんかは残ってたから環境の情報は残ってるっぽい
フォルダを作り直して、vagrant init centos70して、vagrant upし直したら・・・それでもまだPluginが残っている
Pluginなどの情報はboxに保存されているっぽい
結局初期化するために、
$ vagrant box remove <box名>
して、boxを作りなおした。
それでもPluginは消えない。どこか別の場所に保存されてるのかな
PHP環境構築 Virtual Box Vagrant インストール
Virtual Boxは仮想化ソフトウェアで、VMWareみたいなもの。
無料。
Downloads – Oracle VM VirtualBox
VirtualBox platform packages. The binaries are released under the terms of the GPL version 2.の
VirtualBox 5.0.2 for OS X hostsをダウンロードしてみる。
インストールもすんなり完了。
Vagrantは仮想化した環境をプログラミングするソフトウェア。
OS,サーバー,PHPなどの言語をインストール手間をはぶく。
Download - Vagrant by HashiCorp
一番上のMac版をダウンロード。
インストールもすんなり完了。
ターミナルにてバージョン確認
$ vagrant --version
Vagrant 1.7.4
インストール完了
HomeBrewでPHPのComposerインストールがうまくいかない
$ brew install homebrew/php/composer Cloning into '/usr/local/Library/Taps/homebrew/homebrew-php'... remote: Counting objects: 10817, done. remote: Compressing objects: 100% (25/25), done. remote: Total 10817 (delta 11), reused 0 (delta 0), pack-reused 10792 Receiving objects: 100% (10817/10817), 2.21 MiB | 518.00 KiB/s, done. Resolving deltas: 100% (7369/7369), done. Checking connectivity... done. Tapped 502 formulae ==> Installing composer from homebrew/homebrew-php Error: undefined method `desc' for Formulary::Formulae::Php70:Class Please report this bug: https://git.io/brew-troubleshooting 以下略
HomeBrewをupdateすればいけそう
update後にここと全く同じ現象
MacにHomebrewでComposerをインストールしました - Qiita
$ brew install php56
を実行してPHPをインストール
(カナーリ長い)
一旦ターミナルを閉じる
再度開き、Composerインストール
$ brew install homebrew/php/composer ==> Installing composer from homebrew/homebrew-php ==> Downloading http://getcomposer.org/download/1.0.0-alpha10/composer.phar ######################################################################## 100.0% ==> Caveats Verify your installation by running: "composer --version". You can read more about composer and packagist by running: "brew home composer". ==> Summary 🍺 /usr/local/Cellar/composer/1.0.0-alpha10: 3 files, 1.0M, built in 10 seconds
Composerのインストール完了!
HomeBrewでインストールしたソフトの確認
Macのパッケージ管理ソフトHomeBrew
自家醸造のビール的な意味
パッケージのインストール先は
usr > local > Cellar
ワインセラー的な?
パッケージのインストール方法
brew install パッケージ名
アンインストール方法
brew uninstall パッケージ名
HomeBrewを最新verにする
brew update
インストール済みのパッケージを最新verにする
brew upgrade
パッケージの古いバージョンを削除
brew cleanup
パッケージの探し方
brew search パッケージ名
インストールしたパッケージの確認
brew list
パッケージの確認がしたかったので、目的達成!
OSにインストールされたパッケージとHomeBrewでインストールしたパッケージがかぶったりしないの?
個人的に大きかった理由としては、ディスク容量を食うこととである。MacPortsでは基本的に現在インストールしているOS Xのシステムに依存せず、自身で必要なパッケージをインストールする傾向にあり、OS X本体にあるソフトとMacPortsにインストールされるパッケージが重複することが往々にしてあった。
これはOS Xの環境への依存が少なく、OS X環境とMacPorts環境をある程度切り分けられるという利点はあるが、インストール時間の増大やディスク容量の圧迫の原因になるほか、パッケージ依存が複雑になる傾向にある。また、パッケージが増えれば増えるほどアップグレードの際に時間がかかるようになってしまう。
そういった不利な部分が出てきたため、そういった弊害が少ないとされるHomebrewへの移行を決断したのである。
Homebrewでは極力OS Xのシステムを使うため、どうしてもOS Xに依存してしまうが、インストール時間はある程度節約できるといわれている。最近ではMacPorts以上に人気のパッケージ管理ツールになっており、情報面でも有利になりつつあると言われている。
https://project-flora.net/2015/07/09/post-728/
Mac Portsよりはかぶらない?
今OS XにPHPが入っている状態でHomeBrewでPHPをインストールしてみたところ、brew listにPHPの姿は無いからたぶん大丈夫?
※追記
brew updateしたあとにPHPをインストールしたらインストールできた
Ruby ハッシュ(連想配列)
配列を数字で割り振るのではなく、文字列などで判別することができる
arr= {'name' => 'hiyoko', 'email' => 'hiyoko@piyomail.com', '住所' => '北区'} for item in arr puts(item[0] + ":" + item[1]) end
javascript onInput テキスト入力
テキストの入力はjavascriptのonInputでできる
文字入力
<input type="text" onInput="alertValue(this)" />
足し算
<form oninput="op1.value = Number(a.value) + Number(b.value);"> <input type="number" name="a" value="0" size="10"> + <input type="number" name="b" value="0" size="10"> = <output name="op1">0</output> </form>
sinatraテンプレートを使ってerubyの記述
公式サイトのREADMEにある
eruby(erb)を使ってみる
main.rb
require 'sinatra' require 'sinatra/reloader' get '/' do |i| #erbテンプレートを使ってviews>index.erbを呼び出し erb :index end
こんな感じに使えばいい
erbはviewsフォルダを作って、その中に作成する
views>index.erb
<!DOCTYPE html> <html lang="ja"> <head> <meta charset="utf-8"> <title>Sinatra練習</title> </head> <body> <h1>Hello world</h1> </body> </html>
http://dotinstall.com/lessons/basic_sinatra/23606dotinstall.com
分かってないうちは軽量フレームワーク(sinatra)→必要性を感じたらRails
Railsをひと通り触ってみて便利だったけど、裏で何をやっているのか分からない
sinatraを使ってみたところ、中身が分かりやすい
まずはWebアプリケーションの構造を理解したいので、sinatraで勉強
今すぐ辞めて欲しい、「Ruby on Rails勉強してます」「CakePHP勉強してます」 – sumyapp
Webのフレームワークの価値ってなんだろなって改めて思う。
俺が軽量フレームワークを使う理由を考えてみる - 蟲!虫!蟲! - #!/usr/bin/bugrammer
Rubyの正規表現
正規表現(regular expression):文字列のパターンを記述するための言語
複雑なパターンを使う時に有用
例
aではじまりyで終わるパターン
/a.*y/