Upload
apachehereというPHPのBuiltin Serverっぽいやつをつくった
•
0 likes
•
5,065 views
Junichi Ishida
Follow
PHPBLT #2でLTしました
Read less
Read more
Report
Share
Report
Share
1 of 35
Download now
Download to read offline
More Related Content
apachehereというPHPのBuiltin Serverっぽいやつをつくった
1.
PHPのBuiltin Serverっぽい Apache PHPBLT #2 http://phpblt.connpass.com/event/23974/ LT用スライド @uzulla
2.
"who are you
?" UZULLA PHPer 「Perl方面からきました」
3.
PHPといえば LAMP(古)
4.
皆さん Apacheで 開発してますか?
5.
あるメールフォーマーの話 » 色々な案件が同時に沢山走っている » 「A案件修正」「はい」「B案件仕変」「はい」「C 案件ロールバック」「はい」 »
案件毎に環境もまちまち » 「AWSって専用サーバーにして」「エッ」 » 「PaaSなら保守費用ゼロって読んだ」「エッ」 » 「予算500円しかない」「エッ…フティーピー」
6.
» 環境を沢山維持して、パッパッと切り替えするのは大 変… » そんな時、我らがPHPのBuilt-in
Serverなら…?
7.
シュッ
8.
シュッと切り替えできる » ので、私はできるだけBuilt-in Server(以後BS)で も動くように心がけています »
みなさんはBuilt-in Serverつかってます? » とはいえ、前の開発者が逃げたりした 引き継ぎ案件 や、なぜか事前にWPベースで作ると決まった CMS 案件等ではそうは行かない事も多い、なぜなら
9.
Apache前提の案件 » 例:「WordPressはCMS」「はい」 » BSと相性悪い(秘伝のrouter.php…) »
.htaccessが要件として必須な事も多い » 「 の既存問い合わせフォーム」と相乗 » 「ここにBasic認証」「はい」 » こうなると、やはりApache(等)が必要 » 「普通VMつかうよね」「せやな」
10.
VM開発 のPros/Cons » ✅
楽に本番に寄せられる » ❌ ホストとfs等がセパレートされている » # IDE等のツールの取り回しが面倒 » ❓「それ、○○年後に開けるの?」 » % イメージの中のコードは検索面倒 » & 資源の無駄、エコでない
11.
なので 私は ネイティブ派
12.
DISCLAIMER » OSX(あるいはLinux)の話が続きます。 » Windowsの人も似たような事はできる…とおもいま すがどうだろう。
13.
よくあるネイティブ環境 » (よく見る順(私調べ)) » HomeBrew
➤ バージョン指定が困難 » XAMPP(等のFatpack) ➤ 切り替えが面倒 » System Apache + System PHP ➤ Ver固定 » 大正義 php-build ➤ ビルドたのしい!!✌('ω')✌ ガンガンビルド!最新バージョンでたら速攻でビル ド!
14.
ビルド つらい
15.
» 「ビルドします、失敗したら修正してビルドします」 » (特にエルキャピは)ハイパー面倒 »
SystemのOpenSSL、BrewのOpenSSL、 LibreSSL、libxml2… » ApacheのOpenSSLとPHPのOpenSSLがミスマッチ でFail » mod_php生成が軽く知恵の輪 » 「大変では?」「趣味です、いや…人生…」 » (今日はビルドの話はしません)
16.
ということで » OSX上でApache+PHP環境をつくることを諦めてい る人も多いのではないでしょうか?
17.
本題 » Apache +
PHPを » PHPのBuilt-in Serverみたいに » 気軽に使いたい
18.
Apacheの面倒さ(BS比) » 「シュッって起動してシュッと終了してほしい」 » 終了を忘れていてイラッっとする(短気) »
エラーログ(ファイル)確認のtailが面倒 » confを差し替えrestart面倒 » php ver、Port、DocRoot等の切り替え… » 開発用の秘伝の.htaccessをいれて.gitignore…
19.
ということで » apachehereというのをでっちあげました!!! » $
apachehere ってするとApacheがBSっぽく起動する! » github.com/uzulla/apachehere » El capitanならSystemのApacheをつかえます (が、私は野良ビルド派)
20.
例
22.
BSっぽい!!
23.
PHPerなので勿論PHP対応 ! » DocRootにかかっているphpenvのglobal、localで 指定されたversionのphp-cgiが利用され(るはず| ます)!便利!!!! »
-mでphpenv以下のmod_phpもつかえます » with-apxs2付でビルドし、libphpX.soを確保 » 作り方は「phpenv libphp7.so ビルド」で検索 » (ただしつらいので、php-cgiでいいのでは…
24.
その他オプション Usage: apachehere [-t
document_root] [-b bind_ip] : default 127.0.0.1 [-p port_num] : default 8080 [-m] : use mod_php [-c /path/to/php.ini] [-s /path/to/php/conf.d] » コピーできてないし、とりあえずつくった感が良く解 る » シェルスクリプト力不足(あるいは手抜き)を感じる » 「PHPerなのにbash scriptなの?」
25.
以上!
26.
まとめと展望 » こういう事やると使い道のない知識が増えます » 冷静な皆さんはVMかXAMPP使いましょう »
System Apache+PHPのConfくらい書きたい » 意地でrbenvっぽくしたかったけど、むずい… » ちなみにWordPressの案件失注しましたので モチベーションは直近無い ! » 「あれ?…LAMPのMがたりないよ?」
27.
M is Mysql »
そうだよね、Mysqlもないとね! » github.com/uzulla/mysql_data_setup.php » (BSほど気楽ではないが)案件毎にシュッっと MysqlのData dirをつくります » 「なぜPHPで作ったし」「PHPerだからしかたない よね」 » demoは省略
28.
ありがとうございました » github.com/uzulla/apachehere » github.com/uzulla/mysql_data_setup.php »
時間があまれば、以下余談
29.
Apacheの話
30.
フォアグラウンドで動かせる $ httpd -DFOREGROUND »
-DFOREGROUND » 起動中が一目瞭然、^Cで終了、便利! » そのままではログは依然としてログファイルにでて不 便
31.
ログはSTDOUTに出せる ErrorLog /dev/stdout CustomLog /dev/stdout
combined » Builtin Serverっぽくなる » FYI: combinedに拘らないほうが見やすい LogFormat "%t %h [%>s]: %U%q" php_bs_style CustomLog /dev/stdout php_bs_style
32.
IfDefineで条件分岐できる » argの-DHOGEで、<IfDefine HOGE>で条件分岐できる »
!で否定もできる <IfDefine USE_PHP> <IfDefine USE_MOD_PHP> ∼ </IfDefine> <IfDefine !USE_MOD_PHP> ∼ </IFDefine> </IfDefine>
33.
httpd.confをもっと動的に » httpd.conf は環境変数が使える ServerName
${BIND_IP}:${LISTEN_PORT} ∼ DocumentRoot ${DOC_ROOT} <Directory ${DOC_ROOT} > ∼ </Directory> » cwdをDocRootに指定すれば、BSっぽくなる
34.
System Apacheのつらさ » Apacheはconfigure次第でデフォルトが色々変わる »
「/usr,/etc,/varにバラバラで入るの誰得??」 » logs/がどこなのやら » pidがどこに出るのやら » mutexが∼ » moduleの場所が∼ » なので、prefixだけつけた野良ビルドが楽!!
35.
mod_phpとphp(-cgi) » 本番環境ではmod_phpが普通だがビルドがめんどう (Apacheがな…) » php-cgiはphp-buildで普通にビルドされる (mod_actionと組み合わせ) »
この二つ、mod_rewrite設定次第で挙動が… » [QSA]とか… » (この他に実行ファイルとしてPHPをかいて、cgiと して実行する方法もあるが、Shebangがキモい)
Download now