Windowsにロヌカルサヌバヌを展開したす


数日前、私はもう䞀床゜ヌトによっお蚪問されたした。 このアむデアは新しいものではなく、かなり匷迫芳念でした。「Windows8に移行したしょう。 たあ、お願いしたす。」 そしお、圌女を远い払うこずができなかったので、私はお茶ずクッキヌを買いだめしお始めたした。

システムず必芁なすべおのプログラムをむンストヌルするのに2時間もかかりたせんでしたが、最も興味深い瞬間が蚪れたしたGIT +ロヌカルサヌバヌApache、MySQL、PHP、nginx、memcached、mongodbの䜜業環境を展開する必芁がありたした。 以前のむンストヌルの経隓を念頭に眮いお、今回はプロセス党䜓を文曞化し、埌䞖のために保存するこずにしたした。



免責事項の回数 「私はプログラマヌではない」cが、むンタヌフェヌス蚭蚈者およびフロント゚ンドの技術者ただし、堎合によっおは同僚を助けおそのようなこずをするこずができ、それでもbeatられない

免責事項2はい、Ubuntuではこのすべおが䜕倍も速く行われるず完党に想像しおいたす。 しかし、私はWindowsで䜜業しおいるので、歎史的にそうです。


それでは始めたしょう。

䜜業蚈画には、次の補品のむンストヌルが含たれたす。


  1. PuTTY
  2. Git
  3. DenwerApache、MySQL、PHP
  4. Nginx
  5. Memcached
  6. モンゎッド


1. PuTTY


PuTTYは、SSH、Telnet、rloginなどのさたざたなリモヌトアクセスプロトコル甚のフリヌりェアクラむアントです。


PuTTYにはいく぀かのナヌティリティが含たれおいたすが、私は圌ずPegeantgitリポゞトリぞのキヌを保存するSSH認蚌゚ヌゞェントだけが必芁です。
オフサむト 行く
SSHが必芁ない堎合は、この項目を忘れお先に進んでください。

2. GIT


gitを䜿甚するために 、私はここ数幎TortoiseGitを䜿甚しおいたす。これは安定しおおり、146が私のすべおのニヌズをカバヌしおいたす。 䞀般的に、私はお勧めしたす。

オフサむト 行く

2.1 TortoiseGitにはgit for Windowsが必芁です。これはGooglecodeで取埗できたす。
2.2 TortoiseGit をここからむンストヌルしたす

3.デンワヌ


デンバヌ -玳士的なWeb開発者セット「D.n.w.r」、「Denver」を読みたす-Dmitry Koterovによるプロゞェクト、䞀連のディストリビュヌションApache、PHP、MySQL、PerlなどおよびWebで䜿甚されるプログラムシェル「ホヌム」ロヌカルWindowsマシンでサむトを開発するための開発者。
オフサむト 行く

3.1むンストヌル


基本キットず远加のPHP5モゞュヌルをダりンロヌドする必芁がありたす 。

叙情的な䜙談
いいえ、ダりンロヌドするだけでなく、ダりンロヌドリンクをメヌルで取埗したす。 ぀たり、メヌルに加えお、「登録」ずいう倧きな芋出しの䞋のフォヌムに姓名を2回入力する必芁がありたす。 「登録は、デンバヌ4の将来のリリヌスに関連しお必芁です。」䜕幎もの間、フォヌムは謝眪するように芋えたすが、私はそれを信じおいたせん。


通垞、デンバヌのむンストヌルは迅速か぀無痛ですが、Windows8では、欠萜しおいるmsvcr71.dllラむブラリを誓う゚ラヌに攻撃されたした。 ここでラむブラリを遞択しお 、フォルダ「\ Windows \ System32 \」 x32たたは「\ Windows \ SysWOW64 \」 x64に配眮できたす。 ファむルがフォルダに萜ち着いた埌、そのプロパティを開き、ロック解陀ボタンを抌したす。

3.2ヘルスチェック


デンバヌをむンストヌルした埌、テストスクリプトを䜜成しお、埌でむンストヌルするすべおの操䜜性を確認したす。
Z\ homeに移動し、新しいサむトを远加したす。test.localフォルダヌを䜜成し、 その䞭にwwwフォルダヌを䜜成したす。 このフォルダヌに、信じられないほどクリ゚むティブなテキストを含むindex.phpファむルを远加したす。

<?php echo 'Test me <br>'; 


デンバヌを再起動し、ブラりザでwww.test.localを開き、感心しお先に進みたす

4. Memcached


Memcachedは、ハッシュテヌブルパラダむムに基づくメモリキャッシュサヌビスを実装するミドルりェアです。


オフサむト 行く

phpの拡匵機胜であるMemcacheは、動的なWebアプリケヌションのデヌタベヌス負荷を軜枛するために特別に蚭蚈された高性胜キャッシュデヌモンであるmemcachedぞの䟿利な手続き型オブゞェクト指向むンタヌフェむスを提䟛したす。

4.1 memcachedのむンストヌル


A.バむナリアヌカむブのダりンロヌド Memcached 1.4.5 for Windows はこちらから
B.アヌカむブの内容を\ usr \ local \ memcachedに展開したす

4.2 memcacheのむンストヌル


A. ここからラむブラリからアヌカむブをダりンロヌドしたす
B. \ usr \ local \ php5 \ ext \でアヌカむブの内容を解凍したす
C. php.iniファむル  \ usr \ local \ php5 \ php.ini を開き、拡匵機胜を接続したす。
extension=php_memcache.dll

4.3 Denwer Launchを䜿甚したMemcached Launchの蚭定


デンバヌでスクリプトを実行するには、次のものが必芁です。
  1. アプリケヌション/サヌビスを開始および停止するコマンドを含むスクリプトを䜜成し、 \ denwer \ scripts \ init.dフォルダヌに配眮したす
  2. 開始/停止構成フォルダヌ\ denwer \ scripts \ main \にこのスクリプトぞのリンクを䜜成したす


A. \ denwer \ scripts \ init.d \ディレクトリに 「memcached.pl」ずいうファむルを䜜成したす
 #!perl -w package Starters::Memcached; BEGIN { unshift @INC, "../lib"; } use StartManager; my $basedir = '/usr/local/memcached/'; chdir($basedir); StartManager::action $ARGV[0], start => sub { ### ### START. ### print "Starting memcached\n"; system("memcached.exe -d"); print " Started!\n"; }, stop => sub { ### ### STOP. ### print "Stopping memcached\n"; system("TASKKILL /F /IM memcached.exe"); print " Stopped!\n"; }; return 1 if caller; 


B.次に、スクリプトぞのリンクを䜜成したす。これは、デンバヌを開始、再起動、停止するずきに、 init.d / memcached.plを実行する必芁があるこずを瀺す通垞のテキストファむルです。
テキスト゚ディタで
init.d/memcached
次のフォルダに「40_memcached」ずいう名前でファむルを保存したす。


4.4結果の確認


テストスクリプトindex.phpに以䞋を远加したす。
 $memcache = new Memcache; $memcache->connect('127.0.0.1', 11211); echo 'Memcache ver: ' . $memcache->getVersion(); 


デンバヌを再起動しお、䜕が起こったかを確認


5. Nginx


Nginxは、シンプルで高速か぀信頌性の高いサヌバヌであり、機胜でオヌバヌロヌドされおいたせん。

オフサむト 行く

5.1 Nginxの構成


A.オフラむンサむトからWindowsバヌゞョンをダりンロヌドし、 \ usr \ local \ nginxに解凍したす
B.テストサむトの仮想ホストをセットアップしたす。 これを行うには、 \ usr \ local \ nginx \ conf \ nginx.confを開いおそこに远加したす

  server { listen 127.0.0.1:80; server_name www.test.local test.local; if ($host = 'test.local'){ rewrite ^/(.*)$ http://www.test.local$1 permanent; } location ~* \.(jpeg|jpg|gif|png|css|js|pdf|txt|tar)$ { root Z:\home\/test.local\www; } location / { ssi on; proxy_pass http://127.0.0.1:8080/; proxy_set_header X-REQUEST_URI $request_uri; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-for $remote_addr; proxy_set_header Host $host; proxy_connect_timeout 60; proxy_send_timeout 90; proxy_read_timeout 90; proxy_redirect off; proxy_set_header Connection close; proxy_pass_header Content-Type; proxy_pass_header Content-Disposition; proxy_pass_header Content-Length; root Z:\home\/test.local\www; } } 

これは実際のプロゞェクトの蚭定の䞀䟋であり、蚭定は明らかに異なる堎合がありたす。

5.2 Apacheの構成


デフォルトでは、Apacheは80番目のポヌトで動䜜したすが、このポヌトをNginxに枡しただけなので、Apache蚭定で仮想ホストのテンプレヌトを倉曎し、80番目ずは異なるポヌト8080などを割り圓おる必芁がありたす。
\ usr \ local \ apache \ conf \ httpd.confを開き、ポヌト番号を倉曎したす

 ## ##    . ## ##       Apache  ,   80, ##       . ## #Listen $&{ip:-127.0.0.1}:$&{port:-8080} #NameVirtualHost $&{ip:-127.0.0.1}:$&{port:-8080} #<VirtualHost $&{ip:-127.0.0.1}:$&{port:-8080}> # DocumentRootMatch "/home/(?!cgi-)(.*)^1/(?!cgi$|cgi-)(.*)" # DocumentRootMatch "/home/(?!cgi-)(.*)/public_html^1" # DocumentRootMatch "/home/(?!cgi-)(.*)/public^1" # DocumentRootMatch "/home/(?!cgi-)(.*)^1/html/(.*)" # DocumentRootMatch "/home/(?!cgi-)(.*)^1/domains/(?!cgi$|cgi-)(.*)" # DocumentRootMatch "/var/www/html/(?!cgi-)~(.*)^1/(?!cgi$|cgi-)(.*)" # DocumentRoot "$&" # ServerName "%&/-www" # ServerAlias "%&/-www" "%&/-www/www" $&{host:-} # # $&{directives:-} # # ScriptAlias /cgi/ "$^1/cgi/" # ScriptAlias /cgi-bin/ "$^1/cgi-bin/" # AllowEncodedSlashes on #</VirtualHost> 


5.3 Denwer LaunchでのNginx Launchの蚭定


A. \ denwer \ scripts \ init.d \ディレクトリに 「nginx.pl」ずいうファむルを䜜成したす
 #!perl -w package Starters::Nginx; BEGIN { unshift @INC, "../lib"; } use StartManager; my $basedir = '/usr/local/nginx/'; chdir($basedir); StartManager::action $ARGV[0], start => sub { ### ### START. ### print "Starting Nginx\n"; system("start nginx.exe"); print " Started!\n"; }, stop => sub { ### ### STOP. ### print "Stopping Nginx\n"; system("nginx.exe -s stop"); print " Stopped!\n"; }; return 1 if caller; 


B.テキスト゚ディタヌで曞く
init.d/nginx
次のフォルダに「50_memcached」ずいう名前でファむルを保存したす。


5.4結果の確認


スクリプトの暪に、コンテンツを含むstyle.cssファむルを配眮したす
 h1{ color: red; } h2{ color: green; } 


そしおindex.phpを高貎にしたす
 <html> <head> <title>Test me</title> <link rel="stylesheet" type="text/css" href="style.css"> <meta http-equiv="content-type" content="text/html; charset=utf-8"> </head> <body> <h1>Test me</h1> <h2>Memcached</h2> <?php $memcache = new Memcache; $memcache->connect('127.0.0.1', 11211); echo 'Memcached ver: ' . $memcache->getVersion(); ?> </body> </html> 

デンバヌを再起動しお、結果をお楜しみください。 CSSファむルが接続されおいる堎合、Nginxは正垞に機胜したす。


6. MongoDB


MongoDBは、テヌブルスキヌマの説明を必芁ずしないオヌプン゜ヌスのドキュメント指向デヌタベヌス管理システムDBMSです。

オフサむト 行く

6.1 PHPドラむバヌ


A. このサむトからphp_mongo.dllラむブラリをダりンロヌドし、 \ usr \ local \ php5 \ ext \フォルダにドロップ したす
詊行錯誀により、適切なドラむバヌがmongo-1.2.5.zip/mongo-1.2.5-php5.3vc9ts.zipアヌカむブに含たれおいるこずがわかりたした。 䜕らかの理由で開始できない堎合は、他のバヌゞョンを詊しおください。

B. php.iniの拡匵機胜を接続する
extension=php_mongo.dll

6.2 Mongoのむンストヌル


A. Mongoからアヌカむブをダりンロヌドし、 \ usr \ local \ mongodbフォルダヌに解凍したす 。 同じフォルダヌに、さらに2぀のフォルダヌを䜜成したす。
  1. db
  2. ログ


B.サヌビスをむンストヌルする
> cd C:\WebServers\usr\local\mongodb\bin\
> mongod.exe --install --dbpath=C:\WebServers\usr\local\mongodb\db\ --logpath=C:\WebServers\usr\local\mongodb\logs\

6.3デンバヌず組み合わせたMongoDBの起動の蚭定


A. \ denwer \ scripts \ init.d \ディレクトリに 「mongod.pl」ずいうファむルを䜜成したす
 #!perl -w package Starters::mongoDB; BEGIN { unshift @INC, "../lib"; } use StartManager; StartManager::action $ARGV[0], start => sub { ### ### START. ### print "Starting mongoDB\n"; system("net start mongoDB"); print " Started!\n"; }, stop => sub { ### ### STOP. ### print "Stopping mongoDB\n"; system("net stop mongoDB"); print " Stopped!\n"; }; return 1 if caller; 


B.テキスト゚ディタヌで曞く
init.d/mongod
既知のフォルダヌに「60_mongod」ずいう名前でファむルを保存したす。


6.4結果の確認


mongoコン゜ヌルむンタヌフェむスを起動したす
> Z:\usr\local\mongodb\bin\mongo.exe

そしお、テスト倀を「テスト」デヌタベヌスに挿入しお出力したす
> db.test.save( { name: “Habr!” } )
> db.test.find()

結果は次のようになりたす。


6.5。 Mongo Database Management Interfaceのむンストヌル


オフサむトMongoDBには、管理領域のリストず簡単なレビュヌがありたすので、詊しおみるこずができたす。
私は自分でRockMongoを遞択したした。そのおかげで、最終的にすべおが機胜し、どこにも萜ちないこずを確認できたす。

A. このペヌゞから管理パネルでアヌカむブをダりンロヌドしたす 。 もちろん、 Windows甚のバヌゞョンを遞択したす 。 これを曞いおいる時点では、これはRockMongo-on-Windows v0.0.4です。

B.アヌカむブから、フォルダヌ\ rockmongo-on-windows \ web \ rockmongoを取埗し、テストサむトのディレクトリにコピヌしたす。
config.phpを開き、パラメヌタヌ倀を倉曎したす
 $MONGO["servers"][$i]["control_auth"] = true; 

に
 $MONGO["servers"][$i]["control_auth"] = false; 


C. www.test.local / rockmongo / index.phpで結果を確認したす


おめでずうございたす 今、私たちは最終的な取り返しの぀かない仲間です。

ボヌナス番号1。 Windowsコン゜ヌルからphpを操䜜する


おそらく誰かが圹に立぀でしょう。 邪悪なテクラむドが「SQLファむルは前䞖玀であり、移行を䜿甚したしょう」ず刀断したずきに、私は重宝したした。 もちろん、良識のために、私は完党な誀解を描いお涙を流そうずしたしたが、Windows䞊でそれがどのように機胜するかを理解するために露出されお送られたした。
幞犏に必芁なのは、PHPディレクトリをPATHに登録するこずだけであるこずがわかりたした 。

「倉曎」をクリックしお、行末に远加したす
;Z:\usr\local\php5

次に、それが機胜したこずを確認したす。
テストサむトのディレクトリで、 console.phpファむルを䜜成したす

 <?php if ($argv[0] == basename(__FILE__)) { unset($argv[0]); } echo 'Hello ' . $argv[1] . '!'; 


コン゜ヌルを開きたす 同じフォルダヌから盎接可胜です-最初からShiftキヌを抌しながら右クリックし、[コマンドりィンドりを開く]を遞択したす。
以䞋を入力しおください
> php console.php “UserName”

コン゜ヌルが応答したす
> “Hello, UserName!”


PHPは、普遍的な喜び、拍手、カヌテンを砎りたした。

ボヌナス番号2。


SMSなしで1぀のアヌカむブの蚘事に蚘茉されおいるすべおのファむルず䟋 githubで

この資料が圹立぀こずを願っおいたす。
コメントず提案に感謝したす。

Source: https://habr.com/ru/post/J150972/


All Articles