ローカルテストサーバー(phpでビルトインサーバー)起動
追記:2018/02/10--------------------------------------
phpビルトインサーバ上のjavascriptで
audioの currentTime(再生位置)の値を変更したら 0になってしまい
頭から再生されてしまう現象に遭遇しました…解決作が見つかってしません…
現状phpのビルトインを諦めて…w
golang で簡単なhttpサーバプログラムを書いて使い始めました。
開発用なのでブラウザにキャッシュさせないようにしました。
phpビルトインだとaudioソースのリクエストしても Content-Type: application/octet-streamで返して来る
それとブラウザのキャッシュがからみ、audioコントールのcurrentTimeの指定ができなくなる状態へ陥るときがある
ようです(本来 Content-Type: audio/mpeg で返してくれれば正常動作すると思われる
package main import ( "flag" "os" "net/http" "log" "fmt" ) var ( addr = flag.String("http", ":9000", "HTTP service address (e.g., ':9000')") ) func main() { flag.Parse() cwd, _ := os.Getwd() fs := http.FileServer(http.Dir(cwd)) http.HandleFunc("/", func(w http.ResponseWriter, r *http.Request) { w.Header().Set("Cache-Control", "no-cache") // ブラウザにキャッシュさせない fs.ServeHTTP(w, r) }) server := &http.Server{ Addr: *addr, Handler: http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) { log.Printf("%s %s %s", r.RemoteAddr, r.Method, r.URL.RequestURI()) http.DefaultServeMux.ServeHTTP(w, r) }), } fmt.Fprintln(os.Stderr, "Listening at "+*addr) log.Fatal(server.ListenAndServe()) }
end 追記2018/02/10-----------------
perlスクリプトのexe化で不意に webサーバー(nginx,apache)入れなくても
phpのビルトインサーバーを使えばjavascriptやphpのテストするだけならいいのでは?
って思い(ちゃんとするなら Ubuntuでやるが Windowsでやることにした)
windowsにphpを入れる→以下のリンクからVC14 x64 Thread Safe (2017-Mar-16 00:40:27)を
ダウンロードしてインストール
PHP For Windows: Binaries and sources Releases
解凍して解凍したフォルダーにpathを通して
(私の解凍後の状態→ C:\Users\USERNAME\wintools\php-7.1.3-Win32-VC14-x64
phpstart.batを作ってその中で
PATH=C:\Users\USERNAME\wintools\php-7.1.3-Win32-VC14-x64;%PATH%
とした)
サーバーのドキュメントルートへ移動して以下のコマンドを実行したら・・・
>php -S localhost:8000
vcruntime140.dllが無いというダイアログが出た
検索してしまいましたが、phpをダウンロードしたページの左側に
vc14 builds ... でMSへのページへのリンクがありましたw
MSへのリンクを張っておきます
Download Visual C++ Redistributable for Visual Studio 2015 from Official Microsoft Download Center
- select language→Japaneseを選ぶ
- ダウンロードボタンを押す
- vc_redist.x64.exe にチェックを入れ Nextを押す
- vc_redist.x64.exeをインストール
再度
>php -S localhost:8000
今度は、エラーダイアログが出ないで
>php -S localhost:8000 PHP 7.1.3 Development Server started at Sat Mar 25 17:10:57 2017 Listening on http://localhost:8000 Document root is C:\XXXXXXX... Press Ctrl-C to quit.
起動成功
ブラウザーのurlに
http://localhost:8000/
表示が出た(ドキュメントルートに index.php index.htmlが作ってあればです)
php.iniを編集しないと mysqlやsqlite、opensslが有効になっていない
インストール(解凍しただけだけど)フォルダーにphp.ini-developmentや
php.ini-productionがあるので今回は、php.ini-developmentを php.iniに
コピーしてから以下を編集しました(;を取って有効にした)