Php

Командная строка php: PHP: ИспользованиС PHP Π² ΠΊΠΎΠΌΠ°Π½Π΄Π½ΠΎΠΉ строкС

Π‘ΠΎΠ΄Π΅Ρ€ΠΆΠ°Π½ΠΈΠ΅

ΠŸΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ Π² PHP для ΠΊΠΎΠΌΠ°Π½Π΄Π½ΠΎΠΉ строки / Π₯Π°Π±Ρ€

ΠŸΡ€Π΅Π΄ΠΈΡΠ»ΠΎΠ²ΠΈΠ΅

Ubuntu прСдоставляСт Π² ΠΊΠΎΠΌΠΏΠ»Π΅ΠΊΡ‚Π΅ с ΠΏΠ°ΠΊΠ΅Ρ‚ΠΎΠΌ apache2 ΡƒΡ‚ΠΈΠ»ΠΈΡ‚Ρ‹ для Π²ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΡ\Π²Ρ‹ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΡ Π²ΠΈΡ€Ρ‚ΡƒΠ°Π»ΡŒΠ½Ρ‹Ρ… хостов ΠΈ ΠΌΠΎΠ΄ΡƒΠ»Π΅ΠΉ. Однако, созданиС ΠΊΠΎΠ½Ρ„ΠΈΠ³ΠΎΠ² для Π²ΠΈΡ€Ρ‚ΡƒΠ°Π»ΡŒΠ½Ρ‹Ρ… хостов ΠΎΡ‚Π½ΠΈΠΌΠ°ΡŽΡ‚ Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΠ΅ врСмя. ΠŸΠΎΡΡ‚ΠΎΠΌΡƒ, ΠΌΠ½Π΅ Π·Π°Ρ…ΠΎΡ‚Π΅Π»ΠΎΡΡŒ ΠΈΡΠΏΡ€Π°Π²ΠΈΡ‚ΡŒ этот нСдостаток. МоТно Π±Ρ‹Π»ΠΎ, ΠΊΠΎΠ½Π΅Ρ‡Π½ΠΎ, ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ автоматичСскиС ΠΏΠΎΠ΄Π΄ΠΎΠΌΠ΅Π½Ρ‹ для Π°ΠΏΠ°Ρ‡Π°, Π½ΠΎ я Ρ€Π΅ΡˆΠΈΠ» Π½Π°ΠΏΠΈΡΠ°Ρ‚ΡŒ скрипт, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ создаСт Ρ„Π°ΠΉΠ»Ρ‹ ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΠΈ Π²ΠΈΡ€Ρ‚ΡƒΠ°Π»ΡŒΠ½Ρ‹Ρ… хостов для Π°ΠΏΠ°Ρ‡Π°, Π° Ρ‚Π°ΠΊ ΠΆΠ΅, ΠΏΡ€ΠΈ нСобходимости, добавляСт имя хоста Π² Ρ„Π°ΠΉΠ» /etc/hosts. Π― Π½Π΅ ΠΎΡ‡Π΅Π½ΡŒ Ρ…ΠΎΡ€ΠΎΡˆΠΎ ΠΏΠΈΡˆΡƒ скрипты Π² bash’e, поэтому Ρ€Π΅ΡˆΠΈΠ» ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ PHP для ΠΌΠΎΠ΅ΠΉ довольно простой Π·Π°Π΄Π°Ρ‡ΠΈ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ я, ΠΊ Ρ‚ΠΎΠΌΡƒ ΠΆΠ΅, знаю довольно Π½Π΅ΠΏΠ»ΠΎΡ…ΠΎ.
Π˜Ρ‚Π°ΠΊ, Π² этой ΡΡ‚Π°Ρ‚ΡŒΠ΅ ΠΌΡ‹ сдСлаСм сразу Π΄Π²Π΅ ΠΏΠΎΠ»Π΅Π·Π½Ρ‹Ρ… Π²Π΅Ρ‰ΠΈ: ознакомимся с опСрациями Π²Π²ΠΎΠ΄Π°\Π²Ρ‹Π²ΠΎΠ΄Π° ΠΊΠΎΠΌΠ°Π½Π΄Π½ΠΎΠΉ строки Π² PHP ΠΈ напишСм скрипт, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ совсСм Π½Π΅ΠΌΠ½ΠΎΠ³ΠΎ упростит Π½Π°ΠΌ Тизнь.

ΠŸΡ€ΠΎΠ²Π΅Ρ€ΠΊΠ° ΠΏΡ€Π°Π² доступа

НавСрноС, Π½ΠΈ для ΠΊΠΎΠ³ΠΎ Π½Π΅ сСкрСт, Ρ‡Ρ‚ΠΎ достаточно просто Π² ΠΏΠ΅Ρ€Π²ΠΎΠΉ строкС PHP скрипта Π½Π°ΠΏΠΈΡΠ°Ρ‚ΡŒ
#!/usr/bin/env php
ΠΈ Ρ‚Π°ΠΊΠΎΠΉ скрипт ΠΌΠΎΠΆΠ½ΠΎ Π±ΡƒΠ΄Π΅Ρ‚ Π²Ρ‹ΠΏΠΎΠ»Π½ΠΈΡ‚ΡŒ ΠΊΠ°ΠΊ ΠΎΠ±Ρ‹Ρ‡Π½ΡƒΡŽ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡƒ Π² Linux.

ΠŸΡ€Π΅ΠΆΠ΄Π΅ всСго, Π½Π°ΠΌ Π½ΡƒΠΆΠ½ΠΎ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΈΡ‚ΡŒ, Π΅ΡΡ‚ΡŒ Π»ΠΈ Ρƒ нас ΠΏΡ€Π°Π²ΠΎ Π½Π° запись Π² Ρ‚Ρƒ ΡΠ°ΠΌΡƒΡŽ ΠΏΠ°ΠΏΠΊΡƒ, которая содСрТит Π² сСбС ΠΊΠΎΠ½Ρ„ΠΈΠ³ΠΈ Π²ΠΈΡ€Ρ‚ΡƒΠ°Π»ΡŒΠ½Ρ‹Ρ… хостов, Π° ΠΎΠ±Ρ‹Ρ‡Π½ΠΎ для этого Π½ΡƒΠΆΠ½Ρ‹ root ΠΏΡ€Π°Π²Π°. ΠŸΡ€ΠΎΠ²Π΅Ρ€ΠΈΡ‚ΡŒ это довольно просто:

  1. $virtual_hosts_dirΒ =Β «/etc/apache2/sites-available/»;
  2. ifΒ (!is_dir($virtual_hosts_dir)Β ||Β !is_writable($virtual_hosts_dir))
  3. {
  4. Β Β Β Β echoΒ «YouΒ mustΒ runΒ thisΒ scriptΒ asΒ root!\n»;
  5. Β Β Β Β exit;
  6. }
ΠŸΠΎΠ»ΡƒΡ‡Π΅Π½ΠΈΠ΅ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΠΈ ΠΈΠ· ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ΠΎΠ²

Π”Π°Π»Π΅Π΅, Π½Π°ΠΌ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ ΡƒΠ·Π½Π°Ρ‚ΡŒ Ρƒ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Ρ Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€ΡƒΡŽ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΡŽ, которая Π½Π°ΠΌ Π½ΡƒΠΆΠ½Π° для создания ΠΊΠΎΠ½Ρ„ΠΈΠ³Π°. ΠšΡ€ΠΎΠΌΠ΅ ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎΠ³ΠΎ Π²Π²ΠΎΠ΄Π° ΠΈΠ· консоли, ΠΌΠΎΠΆΠ½ΠΎ ΠΏΠ΅Ρ€Π΅Π΄Π°Ρ‚ΡŒ эту ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΡŽ Π² качСствС ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ΠΎΠ², ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΌΡ‹ ΠΏΠ΅Ρ€Π΅Π΄Π°Π΅ΠΌ ΠΏΡ€ΠΈ Π²Ρ‹Π·ΠΎΠ²Π΅ скрипта. Π’ PHP Π΅ΡΡ‚ΡŒ Π³Π»ΠΎΠ±Π°Π»ΡŒΠ½Ρ‹Π΅ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Π΅ $argc ΠΈ $argv. ΠŸΠ΅Ρ€Π²Π°Ρ содСрТит количСство входящих ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ΠΎΠ², Π° вторая β€” массив со входящими ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Π°ΠΌΠΈ. По-ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ входящий ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ всСго ΠΎΠ΄ΠΈΠ½ β€” ΠΏΠΎΠ»Π½Ρ‹ΠΉ ΠΏΡƒΡ‚ΡŒ ΠΊ Π²Ρ‹Π·Ρ‹Π²Π°Π΅ΠΌΠΎΠΌΡƒ скрипту. Π’Π°ΠΊΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ, ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠ° входящих ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Ρ… сводится просто ΠΊ ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠ΅ массива:

  1. ifΒ ($argc>1)Β 
  2. {Β 
  3. Β Β Β Β forΒ ($i=1;Β $i<$argc;Β $i++)Β 
  4. Β Β Β Β {Β 
  5. Β Β Β Β Β Β Β Β $optionΒ =Β explode(«=»,Β $argv[$i]);Β 
  6. Β Β Β Β Β Β Β Β switchΒ ($option[0])Β 
  7. Β Β Β Β Β Β Β Β {Β 
  8. Β Β Β Β Β Β Β Β Β Β Β Β caseΒ «-h»:Β 
  9. Β Β Β Β Β Β Β Β Β Β Β Β caseΒ «—add-to-hosts»:Β 
  10. Β Β Β Β Β Β Β Β Β Β Β Β Β Β Β Β $add_to_hostsΒ =Β true;Β 
  11. Β Β Β Β Β Β Β Β Β Β Β Β break;
  12. Β 
  13. Β Β Β Β Β Β Β Β Β Β Β Β caseΒ «-n»:Β 
  14. Β Β Β Β Β Β Β Β Β Β Β Β caseΒ «—no-add-to-hosts»:Β 
  15. Β Β Β Β Β Β Β Β Β Β Β Β Β Β Β Β $add_to_hostsΒ =Β false;Β 
  16. Β Β Β Β Β Β Β Β Β Β Β Β break;
  17. Β 
  18. Β Β Β Β Β Β Β Β Β Β Β Β caseΒ «-a»:Β 
  19. Β Β Β Β Β Β Β Β Β Β Β Β caseΒ «—server-alias»:Β 
  20. Β Β Β Β Β Β Β Β Β Β Β Β Β Β Β Β ifΒ (isset($option[1]))Β 
  21. Β Β Β Β Β Β Β Β Β Β Β Β Β Β Β Β {Β 
  22. Β Β Β Β Β Β Β Β Β Β Β Β Β Β Β Β Β Β Β Β $server_aliasΒ =Β $option[1];Β 
  23. Β Β Β Β Β Β Β Β Β Β Β Β Β Β Β Β }Β 
  24. Β Β Β Β Β Β Β Β Β Β Β Β Β Β Β Β elseΒ 
  25. Β Β Β Β Β Β Β Β Β Β Β Β Β Β Β Β {Β 
  26. Β Β Β Β Β Β Β Β Β Β Β Β Β Β Β Β Β Β Β Β echoΒ «WrongΒ option:Β {$argv[$i]}\n»;Β 
  27. Β Β Β Β Β Β Β Β Β Β Β Β Β Β Β Β }Β 
  28. Β Β Β Β Β Β Β Β Β Β Β Β break;
  29. Β 
  30. Β Β Β Β Β Β Β Β Β Β Β Β caseΒ «-d»:Β 
  31. Β Β Β Β Β Β Β Β Β Β Β Β caseΒ «—document-root»:Β 
  32. Β Β Β Β Β Β Β Β Β Β Β Β Β Β Β Β ifΒ (isset($option[1]))Β 
  33. Β Β Β Β Β Β Β Β Β Β Β Β Β Β Β Β {Β 
  34. Β Β Β Β Β Β Β Β Β Β Β Β Β Β Β Β Β Β Β Β ifΒ ($option[1]Β ==Β «default»)Β 
  35. Β Β Β Β Β Β Β Β Β Β Β Β Β Β Β Β Β Β Β Β {Β 
  36. Β Β Β Β Β Β Β Β Β Β Β Β Β Β Β Β Β Β Β Β Β Β Β Β $document_rootΒ =Β $default_doc_rootΒ 
  37. Β Β Β Β Β Β Β Β Β Β Β Β Β Β Β Β Β Β Β Β }Β 
  38. Β Β Β Β Β Β Β Β Β Β Β Β Β Β Β Β Β Β Β Β elseΒ ifΒ (is_dir(dirname($option[1])))Β 
  39. Β Β Β Β Β Β Β Β Β Β Β Β Β Β Β Β Β Β Β Β {Β 
  40. Β Β Β Β Β Β Β Β Β Β Β Β Β Β Β Β Β Β Β Β Β Β Β Β $document_rootΒ =Β $option[1];Β 
  41. Β Β Β Β Β Β Β Β Β Β Β Β Β Β Β Β Β Β Β Β }Β 
  42. Β Β Β Β Β Β Β Β Β Β Β Β Β Β Β Β }Β 
  43. Β Β Β Β Β Β Β Β Β Β Β Β Β Β Β Β elseΒ 
  44. Β Β Β Β Β Β Β Β Β Β Β Β Β Β Β Β {Β 
  45. Β Β Β Β Β Β Β Β Β Β Β Β Β Β Β Β Β Β Β Β echoΒ «WrongΒ option:Β {$argv[$i]}\n»;Β 
  46. Β Β Β Β Β Β Β Β Β Β Β Β Β Β Β Β }Β 
  47. Β Β Β Β Β Β Β Β Β Β Β Β break;
  48. Β 
  49. Β Β Β Β Β Β Β Β Β Β Β Β default:Β 
  50. Β Β Β Β Β Β Β Β Β Β Β Β Β Β Β Β ifΒ (substr($argv[$i],Β 1,Β 1)Β ==Β ‘-‘)Β 
  51. Β Β Β Β Β Β Β Β Β Β Β Β Β Β Β Β {Β 
  52. Β Β Β Β Β Β Β Β Β Β Β Β Β Β Β Β Β Β Β Β echoΒ «UnknownΒ option:Β {$argv[$i]}\n»;Β 
  53. Β Β Β Β Β Β Β Β Β Β Β Β Β Β Β Β }Β 
  54. Β Β Β Β Β Β Β Β Β Β Β Β break;Β 
  55. Β Β Β Β Β Β Β Β }Β 
  56. Β Β Β Β }Β 
  57. }
  58. Β 
ΠŸΠΎΡ‚ΠΎΠΊΠΈ Π²Π²ΠΎΠ΄Π°\Π²Ρ‹Π²ΠΎΠ΄Π°

Но Π½Π΅ всСгда вСдь ΡƒΠ΄ΠΎΠ±Π½ΠΎ Π²Π±ΠΈΠ²Π°Ρ‚ΡŒ ΠΊΡƒΡ‡Ρƒ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ΠΎΠ² Π² консоль. ΠŸΠΎΡΡ‚ΠΎΠΌΡƒ Ρ‚Π΅ΠΏΠ΅Ρ€ΡŒ ΠΌΡ‹ просим ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Ρ ввСсти с ΠΊΠ»Π°Π²ΠΈΠ°Ρ‚ΡƒΡ€Ρ‹ Ρ‚ΠΎ, Ρ‡Ρ‚ΠΎ Π½Π°ΠΌ Π΄ΠΎ сих ΠΏΠΎΡ€ нСизвСстно. Для этого Π½Π°ΠΌ понадобятся ΠΏΠΎΡ‚ΠΎΠΊΠΈ Π²Π²ΠΎΠ΄Π°\Π²Ρ‹Π²ΠΎΠ΄Π°, Π° Π² Π΄Π°Π½Π½ΠΎΠΌ случаС Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Π²Π²ΠΎΠ΄Π°. Π’ PHP для Ρ€Π°Π±ΠΎΡ‚Ρ‹ с ΠΏΠΎΡ‚ΠΎΠΊΠ°ΠΌΠΈ Π²Π²ΠΎΠ΄Π°\Π²Ρ‹Π²ΠΎΠ΄Π° ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‚ΡΡ константы STDIN, STDOUT, STDERR. По сути, эти ΠΏΠΎΡ‚ΠΎΠΊΠΈ Π½ΠΈΡ‡Π΅ΠΌ Π½Π΅ ΠΎΡ‚Π»ΠΈΡ‡Π°ΡŽΡ‚ΡΡ ΠΎΡ‚ Ρ„Π°ΠΉΠ»ΠΎΠ²Ρ‹Ρ… ΠΏΠΎΡ‚ΠΎΠΊΠΎΠ² ΠΈ Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ с Π½ΠΈΠΌΠΈ Ρ‚Π°ΠΊ ΠΆΠ΅ просто. НапримСр, строка:

  1. $lineΒ =Β fgets(STDIN);

просто считаСт строку ΠΈΠ· консоли ΠΈ Π·Π°ΠΏΠΈΡˆΠ΅Ρ‚ Π΅Ρ‘ Π² ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΡƒΡŽ $line. Π’ Π΄Π°Π½Π½ΠΎΠΌ случаС, ΠΌΡ‹ Π½Π΅ ΠΎΡ‚ΠΊΡ€Ρ‹Π²Π°Π»ΠΈ ΠΈ Π½Π΅ Π·Π°ΠΊΡ€Ρ‹Π²Π°Π»ΠΈ ΠΏΠΎΡ‚ΠΎΠΊ, Ρ‚.ΠΊ. PHP Π΄Π΅Π»Π°Π΅Ρ‚ это автоматичСски. Но, ΠΌΡ‹ ΠΌΠΎΠΆΠ΅ΠΌ ΠΎΡ‚ΠΊΡ€Ρ‹Ρ‚ΡŒ ΠΏΠΎΡ‚ΠΎΠΊ Π²Ρ€ΡƒΡ‡Π½ΡƒΡŽ ΠΈ Π΄Π΅Ρ€ΠΆΠ°Ρ‚ΡŒ Π΅Π³ΠΎ ΠΎΡ‚ΠΊΡ€Ρ‹Ρ‚Ρ‹ΠΌ ΡΡ‚ΠΎΠ»ΡŒΠΊΠΎ, сколько Π½Π°ΠΌ Π½ΡƒΠΆΠ½ΠΎ. Π­Ρ‚ΠΎ Π±ΡƒΠ΄Π΅Ρ‚ Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ быстрСС, Ссли Π’Π°ΠΌ Π½ΡƒΠΆΠ½ΠΎ ΡΡ‡ΠΈΡ‚Π°Ρ‚ΡŒ\Π·Π°ΠΏΠΈΡΠ°Ρ‚ΡŒ Π±ΠΎΠ»Π΅Π΅ ΠΎΠ΄Π½ΠΎΠΉ строки:

  1. $stdinΒ =Β fopen(«php://stdin»,Β «r»);
  2. $line1Β =Β gets($stdin);
  3. $line2Β =Β gets($stdin);
  4. fclose($stdin);

Π’ Π΄Π°Π½Π½ΠΎΠΌ случаС ΠΌΡ‹ сначала ΠΎΡ‚ΠΊΡ€Ρ‹Π²Π°Π΅ΠΌ ΠΏΠΎΡ‚ΠΎΠΊ, считываСм ΠΈΠ· Π½Π΅Π³ΠΎ Π΄Π²Π΅ строки ΠΈ Π·Π°ΠΊΡ€Ρ‹Π²Π°Π΅ΠΌ Π΅Π³ΠΎ.
Π‘ записью Π°Π½Π°Π»ΠΎΠ³ΠΈΡ‡Π½ΠΎ, хотя я ΠΏΡ€Π΅Π΄ΠΏΠΎΡ‡ΠΈΡ‚Π°ΡŽ для Π²Ρ‹Π²ΠΎΠ΄Π° Π½Π° экран просто ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ echo.

ΠŸΡ€ΠΎΠ΄ΠΎΠ»ΠΆΠ°Π΅ΠΌ ΠΏΠΈΡΠ°Ρ‚ΡŒ наш скрипт. Пока Ρƒ нас Π½Π΅Ρ‚ Ρ…ΠΎΡ‚ΡŒ ΠΊΠ°ΠΊΠΎΠΉ-Ρ‚ΠΎ строки Π² качСствС ΠΈΠΌΠ΅Π½ΠΈ хоста, ΠΏΡ€ΠΎΠ΄ΠΎΠ»ΠΆΠ°Π΅ΠΌ ΠΏΡ€ΠΎΡΠΈΡ‚ΡŒ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Ρ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΎΠ½ Ρ‡Ρ‚ΠΎ-Ρ‚ΠΎ Π²Π²Π΅Π»:

  1. whileΒ (!$server_alias)
  2. {
  3. Β Β Β Β echoΒ «EnterΒ yourΒ hostname:Β «;
  4. Β Β Β Β $server_aliasΒ =Β trim(fgets(STDIN));
  5. }

Π’Π΅ΠΏΠ΅Ρ€ΡŒ, спросим Ρƒ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Ρ, Π½ΡƒΠΆΠ½ΠΎ Π»ΠΈ Π΄ΠΎΠ±Π°Π²Π»ΡΡ‚ΡŒ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΡŽ ΠΎ этом хостС Π² /etc/hosts, Π½ΠΎ ΡΠΏΡ€Π°ΡˆΠΈΠ²Π°Π΅ΠΌ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Π² Ρ‚ΠΎΠΌ случаС, Ссли эта информация Π½Π΅ Π±Ρ‹Π»Π° ΠΏΠ΅Ρ€Π΅Π΄Π°Π½Π° Π² качСствС ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Π°. Π’Π°ΠΊ ΠΊΠ°ΠΊ скрипт я писал сСбС для повсСднСвной Ρ€Π°Π±ΠΎΡ‚Ρ‹, Ρ‚ΠΎ Π½ΠΈΠΊΠ°ΠΊΠΈΡ… Ρ€Π΅Π°Π»ΡŒΠ½Ρ‹Ρ… сайтов Ρƒ мСня Π½Π΅ Π±ΡƒΠ΄Π΅Ρ‚ ΠΈ Ρ‡Π°Ρ‰Π΅ всСго Π½ΡƒΠΆΠ½ΠΎ Π±ΡƒΠ΄Π΅Ρ‚ Π΄ΠΎΠ±Π°Π²Π»ΡΡ‚ΡŒ хост Π² /etc/hosts, поэтому Ссли ΠΌΡ‹ Π½ΠΈΡ‡Π΅Π³ΠΎ Π½Π΅ Π²Π²ΠΎΠ΄ΠΈΠΌ, Π° просто Π½Π°ΠΆΠΈΠΌΠ°Π΅ΠΌ Enter Ρ‚ΠΎ это принимаСтся ΠΊΠ°ΠΊ согласиС:

  1. ifΒ ($add_to_hostsΒ ===Β null)
  2. {
  3. Β Β Β Β echoΒ «AddΒ $server_aliasΒ toΒ yourΒ /etc/hostsΒ ?Β (Y/N)Β [Y]:Β «;
  4. Β Β Β Β $lineΒ =Β trim(fgets(STDIN));
  5. Β Β Β Β ifΒ ($lineΒ ==Β ‘n’Β ||Β $lineΒ ==Β ‘N’)
  6. Β Β Β Β {
  7. Β Β Β Β Β Β Β Β $add_to_hostsΒ =Β false;
  8. Β Β Β Β }
  9. Β Β Β Β else
  10. Β Β Β Β {
  11. Β Β Β Β Β Β Β Β $add_to_hostsΒ =Β true;
  12. Β Β Β Β }
  13. }

Π’ΠΎ ΠΆΠ΅ самоС ΠΈ с ΠΊΠΎΡ€Π½Π΅Π²ΠΎΠΉ Π΄ΠΈΡ€Π΅ΠΊΡ‚ΠΎΡ€ΠΈΠ΅ΠΉ сайта:

  1. ifΒ (!$document_root)Β 
  2. {Β 
  3. Β Β Β Β $default_doc_rootΒ =Β $default_doc_root.’/’.$server_alias;Β 
  4. Β Β Β Β echoΒ «EnterΒ yourΒ documentΒ rootΒ [$default_doc_root]:Β «;Β 
  5. Β Β Β Β $lineΒ =Β trim(fgets(STDIN));Β 
  6. Β Β Β Β ifΒ ($lineΒ &&Β is_dir(dirname($line)))Β 
  7. Β Β Β Β {Β 
  8. Β Β Β Β Β Β Β Β $document_rootΒ =Β $line;Β 
  9. Β Β Β Β }Β 
  10. Β Β Β Β elseΒ 
  11. Β Β Β Β {Β 
  12. Β Β Β Β Β Β Β Β $document_rootΒ =Β $default_doc_root;Β 
  13. Β Β Β Β }Β 
  14. }
  15. Β 
ГСнСрация ΠΊΠΎΠ½Ρ„ΠΈΠ³-Ρ„Π°ΠΉΠ»Π°

На этом этапС вСсь сбор ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΠΈ Π·Π°ΠΊΠΎΠ½Ρ‡Π΅Π½ ΠΈ Ρƒ нас Π΅ΡΡ‚ΡŒ всС, Ρ‡Ρ‚ΠΎ Π½ΡƒΠΆΠ½ΠΎ, для Ρ‚ΠΎΠ³ΠΎ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ ΠΊΠΎΠ½Ρ„ΠΈΠ³. Надо убСдится, Ρ‡Ρ‚ΠΎ корнСвая дирСктория сайта сущСствуСт, Π° Ссли Π΅Ρ‘ Π½Π΅Ρ‚ β€” создадим Π΅Ρ‘:

  1. ifΒ (!is_dir($document_root))
  2. {
  3. Β Β Β Β mkdir($document_root);
  4. }

ΠœΡ‹ ΡΠΏΡ€Π°ΡˆΠΈΠ²Π°Π»ΠΈ Ρƒ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Ρ ΠΏΠΎ ΠΏΠΎΠ²ΠΎΠ΄Ρƒ добавлСния хоста Π² /etc/hosts. Π‘Π΄Π΅Π»Π°Π΅ΠΌ это, Ссли ΠΎΠ½ согласился:

  1. ifΒ ($add_to_hosts)
  2. {
  3. Β Β Β Β $hostsΒ =Β file_get_contents(«/etc/hosts»);
  4. Β Β Β Β $hostsΒ .=Β «127.0.0.1\t$server_alias\n»;
  5. Β Β Β Β file_put_contents(«/etc/hosts»,Β $hosts);
  6. }

БобствСнно Ρ‚Π°ΠΊ выглядит шаблон нашСго ΠΊΠΎΠ½Ρ„ΠΈΠ³Π°:

  1. $host_templateΒ =Β <<<HOST
  2. <VirtualHostΒ *:80>Β 
  3. ServerAdminΒ [email protected]Β 
  4. ServerAliasΒ $server_alias
  5. Β 
  6. DocumentRootΒ $document_rootΒ 
  7. <DirectoryΒ $document_root>Β 
  8. Β Β Β Β OptionsΒ IndexesΒ FollowSymLinksΒ MultiViewsΒ 
  9. Β Β Β Β AllowOverrideΒ AllΒ 
  10. Β Β Β Β OrderΒ allow,denyΒ 
  11. Β Β Β Β allowΒ fromΒ allΒ 
  12. </Directory>
  13. Β 
  14. ErrorLogΒ \${APACHE_LOG_DIR}/$server_alias-error.log;Β 
  15. LogLevelΒ warnΒ 
  16. CustomLogΒ \${APACHE_LOG_DIR}/$server_alias-access.logΒ combined
  17. </VirtualHost>
  18. HOST;
  19. Β 

Ну ΠΈ Ρ‚Π΅ΠΏΠ΅Ρ€ΡŒ просто запишСм ΠΊΠΎΠ½Ρ„ΠΈΠ³ Π² Ρ„Π°ΠΉΠ» ΠΈ Π½Π°ΠΏΠΎΠΌΠ½ΠΈΠΌ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŽ ΠΎ Ρ‚ΠΎΠΌ, Ρ‡Ρ‚ΠΎ ΠΊΠΎΠ½Ρ„ΠΈΠ³ Ρ‚Π΅ΠΏΠ΅Ρ€ΡŒ Π½ΡƒΠΆΠ½ΠΎ Π΅Ρ‰Π΅ ΠΈ Π°ΠΊΡ‚ΠΈΠ²ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ a2ensite:

  1. file_put_contents(«/etc/apache2/sites-available/$server_alias»,Β $host_template);Β 
  2. echoΒ «ApacheΒ configΒ forΒ thisΒ hostnameΒ createdΒ successfully!Β Don’tΒ forgetΒ toΒ runΒ a2ensiteΒ $server_alias\n»;
  3. Β 

Π‘ΠΊΡ€ΠΈΠΏΡ‚ написан. НуТно ΡΠΎΡ…Ρ€Π°Π½ΠΈΡ‚ΡŒ Π΅Π³ΠΎ Π² Ρ„Π°ΠΉΠ» ΠΈ Π½Π΅ Π·Π°Π±Ρ‹Ρ‚ΡŒ ΡƒΡΡ‚Π°Π½ΠΎΠ²ΠΈΡ‚ΡŒ Ρ„Π»Π°Π³ +x, Ρ‡Ρ‚ΠΎΠ±Ρ‹ Π΅Π³ΠΎ ΠΌΠΎΠΆΠ½ΠΎ Π±Ρ‹Π»ΠΎ Π·Π°ΠΏΡƒΡΠΊΠ°Ρ‚ΡŒ ΠΊΠ°ΠΊ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡƒ:
chmod +x a2addsite

ИспользованиС

Π’Π΅ΠΏΠ΅Ρ€ΡŒ скрипт ΠΌΠΎΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ. МоТно ΠΊΠ°ΠΊ Π²Π²ΠΎΠ΄ΠΈΡ‚ΡŒ всю ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΡŽ Π² консоли:
% sudo ./a2addsite

Add test.local to your /etc/hosts? (Y/N) [Y]:

Enter your document root [/home/www/test.local]:

Apache config for this hostname created successfully! Don’t forget to run a2ensite test.local

Ρ‚Π°ΠΊ ΠΏΠ΅Ρ€Π΅Π΄Π°Π²Π°Ρ‚ΡŒ всю ΠΈΠ»ΠΈ Ρ‡Π°ΡΡ‚ΡŒ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΠΈ скрипту Π² качСствС ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ΠΎΠ² ΠΏΡ€ΠΈ Π²Ρ‹Π·ΠΎΠ²Π΅:
% sudo ./a2addsite —server-alias=test2.local —add-to-hosts —document-root=default

Apache config for this hostname created successfully! Don’t forget to run a2ensite test2.local

Π’Ρ‹Π²ΠΎΠ΄Ρ‹

PHP ΠΌΠΎΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Π½Π΅ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ для Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ сайтов, Π½ΠΎ ΠΈ для Ρ€Π΅ΡˆΠ΅Π½ΠΈΡ ΠΌΠ΅Π»ΠΊΠΈΡ… Π»ΠΎΠΊΠ°Π»ΡŒΠ½Ρ‹Ρ… Π·Π°Π΄Π°Ρ‡ Π½Π° ΠΊΠΎΠΌΠΏΡŒΡŽΡ‚Π΅Ρ€Π΅. Π‘ΠΊΡ€ΠΈΠΏΡ‚ я писал ΠΏΠΎΠ΄ сСбя ΠΈ, навСрняка, ΠΊΡ‚ΠΎ-Ρ‚ΠΎ ΠΈΠ· Вас ΠΏΠ΅Ρ€Π΅Π΄Π΅Π»Π°Π΅Ρ‚ Π΅Π³ΠΎ ΠΏΠΎΠ΄ свои Π½ΡƒΠΆΠ΄Ρ‹.
Π˜ΡΡ…ΠΎΠ΄Π½Ρ‹ΠΉ ΠΊΠΎΠ΄ скрипта

Π›ΠΈΡ‚Π΅Ρ€Π°Ρ‚ΡƒΡ€Π°

Π‘ΠΎΠ»ΡŒΡˆΠ΅ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΠΈ ΠΎ ΠΏΠΎΡ‚ΠΎΠΊΠ°Ρ… Π²Π²ΠΎΠ΄Π° Π²Ρ‹Π²ΠΎΠ΄Π°, Π° Ρ‚Π°ΠΊΠΆΠ΅ ΠΎ ΠΎΡΡ‚Π°Π»ΡŒΠ½Ρ‹Ρ… особСнностях Ρ€Π°Π±ΠΎΡ‚Ρ‹ с консолью Π² PHP ΠΌΠΎΠΆΠ½ΠΎ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ Π½Π° ΠΎΡ„ΠΈΡ†ΠΈΠ°Π»ΡŒΠ½ΠΎΠΌ сайтС PHP (Π°Π½Π³Π».):
Command line usage
PHP input/output

Командная строка PHP Π² Microsoft Windows | Руководство ΠΏΠΎ PHP

Π’ этом Ρ€Π°Π·Π΄Π΅Π»Π΅ содСрТатся Π·Π°ΠΌΠ΅Ρ‚ΠΊΠΈ ΠΈ совСты ΠΏΠΎ Ρ€Π°Π±ΠΎΡ‚Π΅ PHP, Π·Π°ΠΏΡƒΡ‰Π΅Π½Π½ΠΎΠ³ΠΎ
ΠΈΠ· ΠΊΠΎΠΌΠ°Π½Π΄Π½ΠΎΠΉ строки.

Π—Π°ΠΌΠ΅Ρ‡Π°Π½ΠΈΠ΅:

Π‘Π½Π°Ρ‡Π°Π»Π° ΠΏΡ€ΠΎΡ‡ΠΈΡ‚Π°ΠΉΡ‚Π΅ руководство
ΠΏΠΎ установкС !

PHP, Π·Π°ΠΏΡƒΡ‰Π΅Π½Π½Ρ‹ΠΉ ΠΈΠ· ΠΊΠΎΠΌΠ°Π½Π΄Π½ΠΎΠΉ строки, ΠΌΠΎΠΆΠ΅Ρ‚ Π²Ρ‹ΠΏΠΎΠ»Π½ΡΡ‚ΡŒΡΡ Π±Π΅Π· ΠΊΠ°ΠΊΠΈΡ…-Π»ΠΈΠ±ΠΎ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ Π² Windows.

C:\PHP5\php.exe -f "C:\PHP Scripts\script.php" -- -arg1 -arg2 -arg3

Но Π΅ΡΡ‚ΡŒ нСсколько простых шагов, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΌΠΎΠ³ΡƒΡ‚ ΡƒΠΏΡ€ΠΎΡΡ‚ΠΈΡ‚ΡŒ Π·Π°Π΄Π°Ρ‡Ρƒ.
НСкоторыС ΠΈΠ· этих шагов ΡƒΠΆΠ΅ ΠΌΠΎΠ³Π»ΠΈ Π±Ρ‹Ρ‚ΡŒ Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½Ρ‹, Π½ΠΎ Π±ΡƒΠ΄ΡƒΡ‚ ΠΏΡ€ΠΈΠ²Π΅Π΄Π΅Π½Ρ‹
здСсь для Ρ‚ΠΎΠ³ΠΎ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΉ Π½Π΅ Π±Ρ‹Π»Π° Π½Π°Ρ€ΡƒΡˆΠ΅Π½Π°.

    Π—Π°ΠΌΠ΅Ρ‡Π°Π½ΠΈΠ΅:

    Как PATH, Ρ‚Π°ΠΊ ΠΈ PATHEXT
    ΡΠ²Π»ΡΡŽΡ‚ΡΡ Π²Π°ΠΆΠ½Ρ‹ΠΌΠΈ систСмныС ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹ΠΌΠΈ Π² Windows, поэтому Π²Π°ΠΆΠ½ΠΎ Π½Π΅ Π·Π°Ρ‚Π΅Ρ€Π΅Ρ‚ΡŒ
    ΠΈΡ… Ρ‚Π΅ΠΊΡƒΡ‰Π΅Π΅ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅, Π° Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Π΄ΠΎΠΏΠΈΡΠ°Ρ‚ΡŒ Π½ΡƒΠΆΠ½Ρ‹Π΅ Π΄Π°Π½Π½Ρ‹Π΅ Π² ΠΊΠΎΠ½Π΅Ρ†.

  • Π”ΠΎΠΏΠΈΡˆΠΈΡ‚Π΅ располоТСниС исполняСмых Ρ„Π°ΠΉΠ»ΠΎΠ² php (php.exe,
    php-win.exe ΠΈΠ»ΠΈ php-cli.exe Π² зависимости
    ΠΎΡ‚ Π²Π°ΡˆΠΈΡ… ΠΏΡ€Π΅Π΄ΠΏΠΎΡ‡Ρ‚Π΅Π½ΠΈΠΉ ΠΈ вСрсии PHP) Π² ΠΊΠΎΠ½Π΅Ρ† ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ окруТСния PATH.
    О Ρ‚ΠΎΠΌ, ΠΊΠ°ΠΊ Π΄ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ Π²Π°ΡˆΡƒ Π΄ΠΈΡ€Π΅ΠΊΡ‚ΠΎΡ€ΠΈΡŽ ΠΊ PATH
    Ρ‡ΠΈΡ‚Π°ΠΉΡ‚Π΅ Π² ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΡƒΡŽΡ‰Π΅ΠΌ Ρ€Π°Π·Π΄Π΅Π»Π΅ FAQ.

  • Π”ΠΎΠΏΠΈΡˆΠΈΡ‚Π΅ .PHP Ρ€Π°ΡΡˆΠΈΡ€Π΅Π½ΠΈΠ΅ Π² ΠΊΠΎΠ½Π΅Ρ† ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ окруТСния
    PATHEXT. Π­Ρ‚ΠΎ ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ сдСлано ΠΏΡ€ΠΈ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΈ
    ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ PATH. Π‘Π΄Π΅Π»Π°ΠΉΡ‚Π΅ Ρ‚Π΅ ΠΆΠ΅ шаги, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ описаны Π² FAQ, Π½ΠΎ ΠΈΠ·ΠΌΠ΅Π½ΠΈΡ‚Π΅ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΡƒΡŽ
    PATHEXT вмСсто PATH.

    Π—Π°ΠΌΠ΅Ρ‡Π°Π½ΠΈΠ΅:

    ΠŸΠΎΠ·ΠΈΡ†ΠΈΡ, Π² ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΉ Π²Ρ‹ размСститС .PHP, Π±ΡƒΠ΄Π΅Ρ‚ ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΡΡ‚ΡŒ,
    ΠΊΠ°ΠΊΠΎΠΉ скрипт ΠΈΠ»ΠΈ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ° Π±ΡƒΠ΄ΡƒΡ‚ Π·Π°ΠΏΡƒΡ‰Π΅Π½Π½Ρ‹ для ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ Ρ„Π°ΠΉΠ»Π° с
    ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΠΌ Ρ€Π°ΡΡˆΠΈΡ€Π΅Π½ΠΈΠ΅ΠΌ. НапримСр, размСстив .PHP ΠΏΠ΅Ρ€Π΅Π΄
    .BAT, сначала Π±ΡƒΠ΄Π΅Ρ‚ Π·Π°ΠΏΡƒΡ‰Π΅Π½ ваш скрипт, Π° Π½Π΅ ΠΏΠ°ΠΊΠ΅Ρ‚Π½Ρ‹ΠΉ Ρ„Π°ΠΉΠ»,
    Ссли Π΅ΡΡ‚ΡŒ исполняСмый Ρ„Π°ΠΉΠ» с Ρ‚Π΅ΠΌ ΠΆΠ΅ ΠΈΠΌΠ΅Π½Π΅ΠΌ.

  • АссоциируйтС Ρ€Π°ΡΡˆΠΈΡ€Π΅Π½ΠΈΠ΅ .PHP с ΠΊΠΎΠ½ΠΊΡ€Π΅Ρ‚Π½Ρ‹ΠΌ Ρ‚ΠΈΠΏΠΎΠΌ Ρ„Π°ΠΉΠ»Π°. Π­Ρ‚ΠΎ
    ΠΌΠΎΠΆΠ½ΠΎ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ Π²Ρ‹ΠΏΠΎΠ»Π½ΠΈΠ² ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΡƒΡŽ ΠΊΠΎΠΌΠ°Π½Π΄Ρƒ:

  • АссоциируйтС Ρ‚ΠΈΠΏ Ρ„Π°ΠΉΠ»Π° phpfile с ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΠΌ исполняСмым PHP Ρ„Π°ΠΉΠ»ΠΎΠΌ.
    Π­Ρ‚ΠΎ ΠΌΠΎΠΆΠ½ΠΎ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ Π²Ρ‹ΠΏΠΎΠ»Π½ΠΈΠ² ΠΊΠΎΠΌΠ°Π½Π΄Ρƒ:

    ftype phpfile="C:\PHP5\php.exe" -f "%1" -- %~2
    

Π’Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ этих шагов ΠΏΠΎΠ·Π²ΠΎΠ»ΠΈΡ‚ PHP скриптам Π²Ρ‹ΠΏΠΎΠ»Π½ΡΡ‚ΡŒΡΡ ΠΈΠ· любой Π΄ΠΈΡ€Π΅ΠΊΡ‚ΠΎΡ€ΠΈΠΈ
Π±Π΅Π· нСобходимости ΡƒΠΊΠ°Π·Ρ‹Π²Π°Ρ‚ΡŒ исполняСмый PHP Ρ„Π°ΠΉΠ» ΠΈΠ»ΠΈ Ρ€Π°ΡΡˆΠΈΡ€Π΅Π½ΠΈΠ΅
.PHP, Π° всС ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Ρ‹ Π±ΡƒΠ΄ΡƒΡ‚ ΠΏΠ΅Ρ€Π΅Π΄Π°Π½Ρ‹ Π² скрипт для ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ.

Π’ ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π΅ Π½ΠΈΠΆΠ΅ ΠΎΠΏΠΈΡΡ‹Π²Π°ΡŽΡ‚ΡΡ Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ измСнСния рССстра, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΌΠΎΠ³ΡƒΡ‚ Π±Ρ‹Ρ‚ΡŒ сдСланы Π²Ρ€ΡƒΡ‡Π½ΡƒΡŽ.

ΠŸΡ€ΠΈΠΌΠ΅Ρ€ #1 ИзмСнСния рССстра

Windows Registry Editor Version 5.00

[HKEY_LOCAL_MACHINE\SOFTWARE\Classes\.php]
@="phpfile"
"Content Type"="application/php"

[HKEY_LOCAL_MACHINE\SOFTWARE\Classes\phpfile]
@="PHP Script"
"EditFlags"=dword:00000000
"BrowserFlags"=dword:00000008
"AlwaysShowExt"=""

[HKEY_LOCAL_MACHINE\SOFTWARE\Classes\phpfile\DefaultIcon]
@="C:\\PHP5\\php-win.exe,0"

[HKEY_LOCAL_MACHINE\SOFTWARE\Classes\phpfile\shell]
@="Open"

[HKEY_LOCAL_MACHINE\SOFTWARE\Classes\phpfile\shell\Open]
@="&Open"

[HKEY_LOCAL_MACHINE\SOFTWARE\Classes\phpfile\shell\Open\command]
@="\"C:\\PHP5\\php.exe\" -f \"%1\" -- %~2"

Π‘ этими измСнСниями ΠΊΠΎΠΌΠ°Π½Π΄Π° ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ записана ΠΊΠ°ΠΊ:

"C:\PHP Scripts\script" -arg1 -arg2 -arg3

ΠΈΠ»ΠΈ, Ссли ваш ΠΏΡƒΡ‚ΡŒ Π² ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ окруТСния «C:\PHP Scripts»
PATH:

Π—Π°ΠΌΠ΅Ρ‡Π°Π½ΠΈΠ΅:

Π’ΠΎΠ·Π½ΠΈΠΊΠ°Π΅Ρ‚ нСбольшая ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΠ°, Ссли Π²Ρ‹ ΡΠΎΠ±ΠΈΡ€Π°Π΅Ρ‚Π΅ΡΡŒ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ эту Ρ‚Π΅Ρ…Π½ΠΈΠΊΡƒ
ΠΈ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚Π΅ ваши PHP-скрипты ΠΊΠ°ΠΊ Ρ„ΠΈΠ»ΡŒΡ‚Ρ€Ρ‹ ΠΊΠΎΠΌΠ°Π½Π΄Π½ΠΎΠΉ строки, ΠΊΠ°ΠΊ Π² ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π΅ Π½ΠΈΠΆΠ΅:

dir | "C:\PHP Scripts\script" -arg1 -arg2 -arg3

ΠΈΠ»ΠΈ

dir | script -arg1 -arg2 -arg3

Π’Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΡƒΠ²ΠΈΠ΄Π΅Ρ‚ΡŒ, Ρ‡Ρ‚ΠΎ ваш скрипт завис ΠΈ Π½ΠΈΡ‡Π΅Π³ΠΎ Π½Π΅ Π΄Π΅Π»Π°Π΅Ρ‚.
Для Ρ‚ΠΎΠ³ΠΎ Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΈΠ²Π½ΠΎ ΠΏΠΎΠ»ΡƒΡ‡Π°Ρ‚ΡŒ ΠΎΠ± этом ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΡŽ,
Π²Π°ΠΌ Π½ΡƒΠΆΠ½ΠΎ внСсти Π² рССстр Π΅Ρ‰Π΅ Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ.

Windows Registry Editor Version 5.00

[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\policies\Explorer]
"InheritConsoleHandles"=dword:00000001

Π”ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½ΡƒΡŽ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΡŽ ΠΌΠΎΠΆΠ½ΠΎ Π½Π°ΠΉΡ‚ΠΈ Π² » базС Π·Π½Π°Π½ΠΈΠΉ Microsoft, ΡΡ‚Π°Ρ‚ΡŒΡ 321788.

Π’Π΅Ρ€Π½ΡƒΡ‚ΡŒΡΡ ΠΊ: Установка Π² систСмах Windows

PHP: Π’Π²Π΅Π΄Π΅Π½ΠΈΠ΅ — Manual

Π’Π²Π΅Π΄Π΅Π½ΠΈΠ΅

Основная Ρ†Π΅Π»ΡŒ этого CLI SAPI —
Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠ° ΠΊΠΎΠ½ΡΠΎΠ»ΡŒΠ½Ρ‹Ρ… ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ Π½Π° PHP.
Π˜ΠΌΠ΅Π΅Ρ‚ΡΡ довольно ΠΌΠ½ΠΎΠ³ΠΎ Ρ€Π°Π·Π»ΠΈΡ‡ΠΈΠΉ ΠΌΠ΅ΠΆΠ΄Ρƒ
CLI SAPI ΠΈ Π΄Ρ€ΡƒΠ³ΠΈΠΌΠΈ Π²ΠΈΠ΄Π°ΠΌΠΈ SAPI, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅
Π±ΡƒΠ΄ΡƒΡ‚ рассмотрСны Π² этой Π³Π»Π°Π²Π΅.
Π‘Ρ‚ΠΎΠΈΡ‚ ΠΎΡ‚ΠΌΠ΅Ρ‚ΠΈΡ‚ΡŒ, Ρ‡Ρ‚ΠΎ CLI SAPI ΠΈ CGI —
Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹Π΅ SAPI-интСрфСйсы, хотя Π² ΠΈΡ… ΠΏΠΎΠ²Π΅Π΄Π΅Π½ΠΈΠΈ ΠΌΠ½ΠΎΠ³ΠΎ ΠΎΠ±Ρ‰Π΅Π³ΠΎ.

CLI SAPI Π²ΠΊΠ»ΡŽΡ‡Π°Π΅Ρ‚ΡΡ ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ ΠΎΠΏΡ†ΠΈΠΈ
—enable-cli, Π½ΠΎ ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ Π²Ρ‹ΠΊΠ»ΡŽΡ‡Π΅Π½
ΠΎΠΏΡ†ΠΈΠ΅ΠΉ —disable-cli ΠΏΡ€ΠΈ запускС
./configure.

Имя, располоТСниС ΠΈ сущСствованиС Π±ΠΈΠ½Π°Ρ€Π½Ρ‹Ρ… ΠΌΠΎΠ΄ΡƒΠ»Π΅ΠΉ
CLI/CGI зависит ΠΎΡ‚ Ρ‚ΠΎΠ³ΠΎ, ΠΊΠ°ΠΊ ΠΈΠΌΠ΅Π½Π½ΠΎ
установлСн PHP Π² вашСй систСмС. По ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ ΠΏΡ€ΠΈ Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠΈ
make создаСтся ΠΊΠ°ΠΊ CGI-,
Ρ‚Π°ΠΊ ΠΈ CLI-ΠΌΠΎΠ΄ΡƒΠ»ΡŒ, Ρ€Π°Π·ΠΌΠ΅Ρ‰Π΅Π½Π½Ρ‹Π΅ Π² дирСкториях
sapi/cgi/php-cgi
ΠΈ sapi/cli/php соотвСтствСнно,
Π²Π½ΡƒΡ‚Ρ€ΠΈ Π΄ΠΈΡ€Π΅ΠΊΡ‚ΠΎΡ€ΠΈΠΈ с исходниками PHP.
Π‘Π»Π΅Π΄ΡƒΠ΅Ρ‚ Π·Π°ΠΌΠ΅Ρ‚ΠΈΡ‚ΡŒ, Ρ‡Ρ‚ΠΎ ΠΎΠ±Π° Ρ„Π°ΠΉΠ»Π° ΠΈΠΌΠ΅ΡŽΡ‚ ΠΎΠ΄ΠΈΠ½Π°ΠΊΠΎΠ²ΠΎΠ΅ Π½Π°Π·Π²Π°Π½ΠΈΠ΅:
php.
Π§Ρ‚ΠΎ ΠΏΡ€ΠΎΠΈΠ·ΠΎΠΉΠ΄Π΅Ρ‚ ΠΏΡ€ΠΈ Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠΈ make install,
зависит ΠΎΡ‚ Ρ‚ΠΎΠ³ΠΎ, ΠΊΠ°ΠΊΠΈΠ΅ ΠΎΠΏΡ†ΠΈΠΈ Π²Ρ‹ ΡƒΠΊΠ°Π·Π°Π»ΠΈ Π½Π° стадии
конфигурирования. Если Π²Ρ‹Π±Ρ€Π°Π½ ΠΌΠΎΠ΄ΡƒΠ»ΡŒ SAPI
Π²ΠΎ врСмя выполнСния, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, apxs, ΠΈΠ»ΠΈ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ опция
опция —disable-cgi,
ΠΌΠΎΠ΄ΡƒΠ»ΡŒ CLI Π±ΡƒΠ΄Π΅Ρ‚ скопирован Π² {PREFIX}/bin/php ΠΏΡ€ΠΈ
Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠΈ make install, Π² ΠΏΡ€ΠΎΡ‚ΠΈΠ²Π½ΠΎΠΌ случаС
Π±ΡƒΠ΄Π΅Ρ‚ скопирован CGI-ΠΌΠΎΠ΄ΡƒΠ»ΡŒ. НапримСр, Ссли
Π·Π°Π΄Π°Π½Π° опция —with-apxs,
Ρ‚ΠΎ ΠΏΡ€ΠΈ Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠΈ make install
CLI-вСрсия Π±ΡƒΠ΄Π΅Ρ‚ скопирована Π² {PREFIX}/bin/php.
Если Π²Ρ‹ Ρ…ΠΎΡ‚ΠΈΡ‚Π΅ ΠΏΠ΅Ρ€Π΅ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΠΈΡ‚ΡŒ установку CGI-ΠΌΠΎΠ΄ΡƒΠ»ΡŒ,
ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ make install-cli послС выполнСния
make install. Π’ качСствС Π°Π»ΡŒΡ‚Π΅Ρ€Π½Π°Ρ‚ΠΈΠ²Ρ‹
Π²Ρ‹ ΠΌΠΎΠ³Π»ΠΈ Π±Ρ‹ ΡƒΠΊΠ°Π·Π°Ρ‚ΡŒ ΠΎΠΏΡ†ΠΈΡŽ —disable-cgi
Π² строкС ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΠΈ.

Π—Π°ΠΌΠ΅Ρ‡Π°Π½ΠΈΠ΅:

ΠŸΠΎΡΠΊΠΎΠ»ΡŒΠΊΡƒ ΠΎΠ±Π΅ ΠΎΠΏΡ†ΠΈΠΈ, —enable-cli
ΠΈ —enable-cgi, Π²ΠΊΠ»ΡŽΡ‡Π΅Π½Ρ‹
ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ, просто Π½Π°Π»ΠΈΠ»Ρ‡ΠΈΠ΅
—enable-cli Π² ΠΊΠΎΠΌΠ°Π½Π΄Π΅
ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΠΈ Π½Π΅ΠΎΠ±ΡΠ·Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎ ΠΎΠ·Π½Π°Ρ‡Π°Π΅Ρ‚, Ρ‡Ρ‚ΠΎ CLI Π±ΡƒΠ΄Π΅Ρ‚ скопирован
Π² {PREFIX}/bin/php ΠΏΡ€ΠΈ Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠΈ
make install.

Начиная с PHP 5, Π±ΠΈΠ½Π°Ρ€Π½Ρ‹ΠΉ Ρ„Π°ΠΉΠ» CLI Π²Ρ…ΠΎΠ΄ΠΈΡ‚ Π² дистрибутив
для Windows Π² основной ΠΏΠ°ΠΏΠΊΠ΅ Π² качСствС Ρ„Π°ΠΉΠ»Π°php.exe.
CGI-вСрсия находится Π² Ρ„Π°ΠΉΠ»Π΅ php-cgi.exe.
ΠšΡ€ΠΎΠΌΠ΅ Ρ‚ΠΎΠ³ΠΎ, Π² дистрибутив Π²Ρ…ΠΎΠ΄ΠΈΡ‚ Ρ„Π°ΠΉΠ» php-win.exe,
Ссли PHP Π±Ρ‹Π» сконфигурирован с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ —enable-cli-win32.
Он ΠΏΠΎΠ»Π½ΠΎΡΡ‚ΡŒΡŽ эквивалСнтСн CLI-вСрсии, Π·Π° ΠΈΡΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅ΠΌ Ρ‚ΠΎΠ³ΠΎ,
Ρ‡Ρ‚ΠΎ Π°Π±ΡΠΎΠ»ΡŽΡ‚Π½ΠΎ Π½ΠΈΡ‡Π΅Π³ΠΎ Π½Π΅ Π²Ρ‹Π²ΠΎΠ΄ΠΈΡ‚, ΠΈ, Ρ‚Π°ΠΊΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ, Π½Π΅ прСдоставляСт консоль
(ΠΎΠΊΠ½ΠΎ Ρ‚Π΅Ρ€ΠΌΠΈΠ½Π°Π»Π° Π½Π΅ появляСтся Π½Π° экранС).

Π—Π°ΠΌΠ΅Ρ‡Π°Π½ΠΈΠ΅:
Какой ΠΈΠ· Π²Π°Ρ€ΠΈΠ°Π½Ρ‚ΠΎΠ² SAPI установлСн?

Π’Ρ‹ΠΏΠΎΠ»Π½ΠΈΡ‚Π΅ ΠΈΠ· ΠΊΠΎΠΌΠ°Π½Π΄Π½ΠΎΠΉ строки php -v
для получСния ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΠΈ ΠΎ Ρ‚ΠΎΠΌ, являСтся Π»ΠΈ php
CGI ΠΈΠ»ΠΈ CLI. Π’Π°ΠΊΠΆΠ΅ Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ
Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡŽ php_sapi_name() ΠΈΠ»ΠΈ константу
PHP_SAPI.

Π—Π°ΠΌΠ΅Ρ‡Π°Π½ΠΈΠ΅:

Π‘ΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΡƒΡŽΡ‰ΡƒΡŽ страницу руководства (man)
Unix ΠΌΠΎΠΆΠ½ΠΎ ΠΏΡ€ΠΎΡΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹ man php
в консоли.

Как Π·Π°ΠΏΡƒΡΡ‚ΠΈΡ‚ΡŒ PHP ΠΈΠ· ΠΊΠΎΠΌΠ°Π½Π΄Π½ΠΎΠΉ строки Windows PHP Lang

Π― Π½ΠΎΠ²ΠΈΡ‡ΠΎΠΊ Π² php ΠΈ Ρ…ΠΎΡ‡Ρƒ Π·Π°ΠΏΡƒΡΡ‚ΠΈΡ‚ΡŒ php ΠΈΠ· ΠΊΠΎΠΌΠ°Π½Π΄Π½ΠΎΠΉ строки. Π― установил WAMP ΠΈ установил «БистСмныС ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Π΅Β» Π² свою ΠΏΠ°ΠΏΠΊΡƒ php (это C:\wamp\bin\php\php5.4.3 ).

Когда я ΠΈΠ΄Ρƒ Π² Run -> CMD -> Π’Π²Π΅Π΄ΠΈΡ‚Π΅ php -a ΠΈ Π½Π°ΠΆΠΌΠΈΡ‚Π΅ enter, ΠΎΠ½ Π³ΠΎΠ²ΠΎΡ€ΠΈΡ‚, Ρ‡Ρ‚ΠΎ interactive mode enabled . Но ΠΊΠΎΠ³Π΄Π° я ΠΏΠΈΡˆΡƒ echo 'Hi'; ΠΎΠ½ Π½ΠΈΡ‡Π΅Π³ΠΎ Π½Π΅ ΠΏΠΎΠΊΠ°Π·Ρ‹Π²Π°Π΅Ρ‚.

Π― Π΄Π°ΠΆΠ΅ Π½Π΅ Π²ΠΈΠΆΡƒ Π½ΠΈΡ‡Π΅Π³ΠΎ ΠΏΠΎΠ΄ΠΎΠ±Π½ΠΎΠ³ΠΎ Β«php>Β», ΠΊΠΎΠ³Π΄Π° я php -a ΠΈ наТимаю enter.

PHP CLI ΠΊΠ°ΠΊ Π΅Π³ΠΎ Π½Π°Π·Ρ‹Π²Π°Π΅ΠΌΡ‹ΠΉ (php для интСрфСйса ΠΊΠΎΠΌΠ°Π½Π΄Π½ΠΎΠΉ строки) называСтся php.exe. Он ΠΆΠΈΠ²Π΅Ρ‚ Π² c:\wamp\bin\php\php5.xy\php.exe (Π³Π΄Π΅ x ΠΈ y – Π½ΠΎΠΌΠ΅Ρ€Π° вСрсий php, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π²Ρ‹ установили)

Если Π²Ρ‹ Ρ…ΠΎΡ‚ΠΈΡ‚Π΅ ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ php-скрипты для запуска ΠΈΠ· ΠΊΠΎΠΌΠ°Π½Π΄Π½ΠΎΠΉ строки, Ρ‚ΠΎΠ³Π΄Π° это Π±ΡƒΠ΄Π΅Ρ‚ ΠΎΡ‡Π΅Π½ΡŒ просто ΠΈ ΠΎΡ‡Π΅Π½ΡŒ ΠΏΠΎΠ»Π΅Π·Π½ΠΎ.

Π‘ΠΎΠ·Π΄Π°ΠΉΡ‚Π΅ сСбС ΠΏΠ°ΠΊΠ΅Ρ‚Π½Ρ‹ΠΉ Ρ„Π°ΠΉΠ», ΠΊΠ°ΠΊ это, ΠΏΠΎΠ·Π²ΠΎΠ½ΠΈΡ‚Π΅ Π΅ΠΌΡƒ phppath.cmd :

 PATH=%PATH%;c:\wamp\bin\php\php5.xy php -v 

Π‘ΠΎΡ…Ρ€Π°Π½ΠΈΡ‚Π΅ это Π² ΠΎΠ΄Π½ΠΎΠΉ ΠΈΠ· Π²Π°ΡˆΠΈΡ… ΠΏΠ°ΠΏΠΎΠΊ, которая ΡƒΠΆΠ΅ находится Π½Π° вашСм PATH, поэтому Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Π·Π°ΠΏΡƒΡΠΊΠ°Ρ‚ΡŒ Π΅Π΅ ΠΈΠ· любого мСста.

Π’Π΅ΠΏΠ΅Ρ€ΡŒ ΠΈΠ· ΠΊΠΎΠΌΠ°Π½Π΄Π½ΠΎΠ³ΠΎ ΠΎΠΊΠ½Π°, cd Π² ΠΈΡΡ…ΠΎΠ΄Π½ΡƒΡŽ ΠΏΠ°ΠΏΠΊΡƒ ΠΈ запуститС> phppath.

Π—Π°Ρ‚Π΅ΠΌ запуститС

php your_script.php

Он Π΄ΠΎΠ»ΠΆΠ΅Π½ Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ ΠΊΠ°ΠΊ сон.

Π’ΠΎΡ‚ ΠΏΡ€ΠΈΠΌΠ΅Ρ€, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ настраиваСт PHP Composer ΠΈ PEAR, Ссли это Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ, ΠΈ ΠΎΠ½ΠΈ ΡΡƒΡ‰Π΅ΡΡ‚Π²ΡƒΡŽΡ‚

 @echo off REM ************************************************************** REM * PLACE This file in a folder that is already on your PATH REM * Or just put it in your C:\Windows folder as that is on the REM * Serch path by default REM * - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - REM * EDIT THE NEXT 3 Parameters to fit your installed WAMPServer REM ************************************************************** set baseWamp=D:\wamp set defaultPHPver=7.1.9 set composerInstalled=%baseWamp%\composer set phpFolder=\bin\php\php if %1.==. ( set phpver=%baseWamp%%phpFolder%%defaultPHPver% ) else ( set phpver=%baseWamp%%phpFolder%%1 ) PATH=%PATH%;%phpver% php -v echo --------------------------------------------------------------- REM IF PEAR IS INSTALLED IN THIS VERSION OF PHP IF exist %phpver%\pear ( set PHP_PEAR_SYSCONF_DIR=D:\wamp\bin\php\php%phpver% set PHP_PEAR_INSTALL_DIR=D:\wamp\bin\php\php%phpver%\pear set PHP_PEAR_DOC_DIR=D:\wamp\bin\php\php%phpver%\docs set PHP_PEAR_BIN_DIR=D:\wamp\bin\php\php%phpver% set PHP_PEAR_DATA_DIR=D:\wamp\bin\php\php%phpver%\data set PHP_PEAR_PHP_BIN=D:\wamp\bin\php\php%phpver%\php.exe set PHP_PEAR_TEST_DIR=D:\wamp\bin\php\php%phpver%\tests echo PEAR INCLUDED IN THIS CONFIG echo --------------------------------------------------------------- ) else ( echo PEAR DOES NOT EXIST IN THIS VERSION OF php echo --------------------------------------------------------------- ) REM IF A GLOBAL COMPOSER EXISTS ADD THAT TOO REM ************************************************************** REM * IF A GLOBAL COMPOSER EXISTS ADD THAT TOO REM * REM * This assumes that composer is installed in /wamp/composer REM * REM ************************************************************** IF EXIST %composerInstalled% ( ECHO COMPOSER INCLUDED IN THIS CONFIG echo --------------------------------------------------------------- set COMPOSER_HOME=%baseWamp%\composer set COMPOSER_CACHE_DIR=%baseWamp%\composer PATH=%PATH%;%baseWamp%\composer rem echo TO UPDATE COMPOSER do > composer self-update echo --------------------------------------------------------------- ) else ( echo --------------------------------------------------------------- echo COMPOSER IS NOT INSTALLED echo --------------------------------------------------------------- ) set baseWamp= set defaultPHPver= set composerInstalled= set phpFolder= 

Π’Ρ‹Π·ΠΎΠ²ΠΈΡ‚Π΅ этот ΠΊΠΎΠΌΠ°Π½Π΄Π½Ρ‹ΠΉ Ρ„Π°ΠΉΠ» Ρ‚Π°ΠΊΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΡΡ‚Π°Π½Π΄Π°Ρ€Ρ‚Π½ΡƒΡŽ Π²Π΅Ρ€ΡΠΈΡŽ PHP

 > phppath 

Или ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½ΡƒΡŽ Π²Π΅Ρ€ΡΠΈΡŽ PHP, ΠΊΠ°ΠΊ это

 > phppath 5.6.30 

Π― помню ΠΎΠ΄ΠΈΠ½ Ρ€Π°Π·, ΠΊΠΎΠ³Π΄Π° нСсколько мСсяцСв Π½Π°Π·Π°Π΄ я наткнулся Π½Π° эту ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΡƒ, ΠΏΠΎΡ‚ΠΎΠΌΡƒ Ρ‡Ρ‚ΠΎ Π² ΠΎΠΊΠ½Π°Ρ… Π½Π΅Ρ‚ readline, поэтому Π½Π΅Ρ‚ ΠΈΠ½Ρ‚Π΅Ρ€Π°ΠΊΡ‚ΠΈΠ²Π½ΠΎΠΉ ΠΎΠ±ΠΎΠ»ΠΎΡ‡ΠΊΠΈ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΠΈΠ½Ρ‚Π΅Ρ€Π°ΠΊΡ‚ΠΈΠ²Π½Ρ‹ΠΉ Ρ€Π΅ΠΆΠΈΠΌ php Π±Π΅Π· ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠΈ readline, Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ это вмСсто этого:

 C:\>php -a Interactive mode enabled <?php echo "Hello, world!"; ?> ^Z Hello, world! 

ПослС Π²Ρ…ΠΎΠ΄Π° Π² ΠΈΠ½Ρ‚Π΅Ρ€Π°ΠΊΡ‚ΠΈΠ²Π½Ρ‹ΠΉ Ρ€Π΅ΠΆΠΈΠΌ Π²Π²Π΅Π΄ΠΈΡ‚Π΅ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ открытия ( <?php ) ΠΈ закрытия ( ?> ) Php-Ρ‚Π΅Π³Π° ΠΈ Π·Π°Π²Π΅Ρ€ΡˆΠΈΡ‚Π΅ ΡƒΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠ΅ Z ( ^Z ), ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ΅ ΠΎΠ±ΠΎΠ·Π½Π°Ρ‡Π°Π΅Ρ‚ ΠΊΠΎΠ½Π΅Ρ† Ρ„Π°ΠΉΠ»Π°.

Π― Ρ‚Π°ΠΊΠΆΠ΅ помню, Ρ‡Ρ‚ΠΎ я нашСл Ρ€Π΅ΡˆΠ΅Π½ΠΈΠ΅ ΠΎΡ‚ коммСнтария ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Ρ сайта php: http://www.php.net/manual/en/features.commandline.interactive.php#105729

ΠŸΠΎΠΏΡ€ΠΎΠ±ΡƒΠΉΡ‚Π΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΠΊΠΎΠΌΠ°Π½Π΄Π½Ρ‹ΠΉ Ρ„Π°ΠΉΠ»

  1. ΠžΡ‚ΠΊΡ€Ρ‹Ρ‚ΡŒ Π±Π»ΠΎΠΊΠ½ΠΎΡ‚
  2. Π’ΠΈΠΏ php -S localhost:8000
  3. ΡΠΎΡ…Ρ€Π°Π½ΠΈΡ‚ΡŒ Ρ„Π°ΠΉΠ» ΠΊΠ°ΠΊ Ρ€Π°ΡΡˆΠΈΡ€Π΅Π½ΠΈΠ΅ .bat , server.bat
  4. Ρ‚Π΅ΠΏΠ΅Ρ€ΡŒ Π½Π°ΠΆΠΌΠΈΡ‚Π΅ Π½Π° server.bat Ρ„Π°ΠΉΠ», ваш сСрвСр Π³ΠΎΡ‚ΠΎΠ² Π½Π° http://localhost:8000

Π·Π°Π²ΠΈΡΠΈΠΌΠΎΡΡ‚ΡŒ

Ссли Ρƒ вас Π²ΠΎΠ·Π½ΠΈΠΊΠ»Π° ошибка, php Π½Π΅ распознаСт ΠΊΠ°ΠΊΡƒΡŽ-Π»ΠΈΠ±ΠΎ Π²Π½ΡƒΡ‚Ρ€Π΅Π½Π½ΡŽΡŽ ΠΈΠ»ΠΈ внСшнюю ΠΊΠΎΠΌΠ°Π½Π΄Ρƒ, Ρ‚ΠΎ ΠΏΠ΅Ρ€Π΅ΠΉΠ΄ΠΈΡ‚Π΅ Π² ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΡƒΡŽ окруТСния ΠΈ ΠΈΠ·ΠΌΠ΅Π½ΠΈΡ‚Π΅ ΠΏΡƒΡ‚ΡŒ ΠΊ php.exe "C:\wamp\bin\php\php5.4.3"

ΠŸΡ€ΠΎΠ±Π»Π΅ΠΌΠ°, ΠΊΠΎΡ‚ΠΎΡ€ΡƒΡŽ Π²Ρ‹ описываСтС, Π·Π²ΡƒΡ‡ΠΈΡ‚ Ρ‚Π°ΠΊ, ΠΊΠ°ΠΊ ваша вСрсия PHP ΠΌΠΎΠΆΠ΅Ρ‚ ΠΎΡ‚ΡΡƒΡ‚ΡΡ‚Π²ΠΎΠ²Π°Ρ‚ΡŒ PHP-ΠΌΠΎΠ΄ΡƒΠ»ΡŒ readline, Π² Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Π΅ Ρ‡Π΅Π³ΠΎ интСрактивная ΠΎΠ±ΠΎΠ»ΠΎΡ‡ΠΊΠ° Π½Π΅ Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚. Π― ΠΎΡΠ½ΠΎΠ²Ρ‹Π²Π°ΡŽ это Π½Π° этом прСдставлСнии ошибок PHP .

ΠŸΠΎΠΏΡ€ΠΎΠ±ΡƒΠΉΡ‚Π΅ Π·Π°ΠΏΡƒΡΡ‚ΠΈΡ‚ΡŒ

 php -m 

И посмотритС, появляСтся Π»ΠΈ Π½Π° Π²Ρ‹Ρ…ΠΎΠ΄Π΅ Β«readlineΒ».

ΠœΠΎΠ³ΡƒΡ‚ Π±Ρ‹Ρ‚ΡŒ вСскиС ΠΏΡ€ΠΈΡ‡ΠΈΠ½Ρ‹ для ΠΎΡ‚ΠΊΠ°Π·Π° ΠΎΡ‚ чтСния ΠΈΠ· дистрибутива. PHP ΠΎΠ±Ρ‹Ρ‡Π½ΠΎ выполняСтся Π²Π΅Π±-сСрвСром; поэтому Π½Π° самом Π΄Π΅Π»Π΅ это Π½Π΅ Π½ΡƒΠΆΠ½ΠΎ для Π±ΠΎΠ»ΡŒΡˆΠΈΠ½ΡΡ‚Π²Π° случаСв использования. Π― ΡƒΠ²Π΅Ρ€Π΅Π½, Ρ‡Ρ‚ΠΎ Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Π²Ρ‹ΠΏΠΎΠ»Π½ΠΈΡ‚ΡŒ PHP-ΠΊΠΎΠ΄ Π² Ρ„Π°ΠΉΠ»Π΅ ΠΈΠ· ΠΊΠΎΠΌΠ°Π½Π΄Π½ΠΎΠΉ строки, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡ:

 php file.php 

БущСствуСт Ρ‚Π°ΠΊΠΆΠ΅ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ phpsh, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ обСспСчиваСт (Π»ΡƒΡ‡ΡˆΡƒΡŽ) ΠΈΠ½Ρ‚Π΅Ρ€Π°ΠΊΡ‚ΠΈΠ²Π½ΡƒΡŽ ΠΎΠ±ΠΎΠ»ΠΎΡ‡ΠΊΡƒ для PHP. Π’Π΅ΠΌ Π½Π΅ ΠΌΠ΅Π½Π΅Π΅, Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ люди ΡΡ‚ΠΎΠ»ΠΊΠ½ΡƒΠ»ΠΈΡΡŒ с трудностями ΠΏΡ€ΠΈ Ρ€Π°Π±ΠΎΡ‚Π΅ ΠΏΠΎΠ΄ Windows (я сам этого Π½Π΅ ΠΏΡ€ΠΎΠ±ΠΎΠ²Π°Π»).

Π˜Π·ΠΌΠ΅Π½ΠΈΡ‚ΡŒ : согласно Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Π°Ρ†ΠΈΠΈ здСсь , readline Π½Π΅ поддСрТиваСтся Π² Windows:

ΠŸΡ€ΠΈΠΌΠ΅Ρ‡Π°Π½ΠΈΠ΅. Π­Ρ‚ΠΎ Ρ€Π°ΡΡˆΠΈΡ€Π΅Π½ΠΈΠ΅ нСдоступно Π½Π° ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΠ°Ρ… Windows.

Π˜Ρ‚Π°ΠΊ, Ссли это ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½ΠΎ, ваши Π²Π°Ρ€ΠΈΠ°Π½Ρ‚Ρ‹:

  • Π˜Π·Π±Π΅Π³Π°ΠΉΡ‚Π΅ ΠΈΠ½Ρ‚Π΅Ρ€Π°ΠΊΡ‚ΠΈΠ²Π½ΠΎΠΉ ΠΎΠ±ΠΎΠ»ΠΎΡ‡ΠΊΠΈ ΠΈ просто выполняйтС PHP-ΠΊΠΎΠ΄ Π² Ρ„Π°ΠΉΠ»Π°Ρ… ΠΈΠ· ΠΊΠΎΠΌΠ°Π½Π΄Π½ΠΎΠΉ строки – это Π΄ΠΎΠ»ΠΆΠ½ΠΎ Ρ…ΠΎΡ€ΠΎΡˆΠΎ Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ
  • ΠŸΠΎΠΏΡ€ΠΎΠ±ΡƒΠΉΡ‚Π΅ Π·Π°ΡΡ‚Π°Π²ΠΈΡ‚ΡŒ phpsh Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ ΠΏΠΎΠ΄ Windows

Если Π²Ρ‹ Ρ…ΠΎΡ‚ΠΈΡ‚Π΅ просто Π·Π°ΠΏΡƒΡΡ‚ΠΈΡ‚ΡŒ быстрый Ρ„Ρ€Π°Π³ΠΌΠ΅Π½Ρ‚ ΠΊΠΎΠ΄Π°, Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ -r:

 php -r "echo 'hi';" 

-r позволяСт Π·Π°ΠΏΡƒΡΠΊΠ°Ρ‚ΡŒ ΠΊΠΎΠ΄ Π±Π΅Π· использования Ρ‚Π΅Π³ΠΎΠ² скриптов <?..?>

ΠžΠ‘ΠΠžΠ’Π›Π•ΠΠž. ПослС Π½Π΅ΡΠΊΠΎΠ»ΡŒΠΊΠΈΡ… исслСдований Π»ΡƒΡ‡ΡˆΠΈΠΌ Ρ€Π΅ΡˆΠ΅Π½ΠΈΠ΅ΠΌ Π±Ρ‹Π»ΠΎ использованиС этой ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΠΈ Π² Π΄Ρ€ΡƒΠ³ΠΎΠΌ ΠΏΠΎΡ‚ΠΎΠΊΠ΅ stackoverflow, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΈΠ·Π±Π΅ΠΆΠ°Ρ‚ΡŒ Π²Π²ΠΎΠ΄Π° ctrl + z, Π° Ρ‚Π°ΠΊΠΆΠ΅ ΠΈΠ· Π²Ρ‹Π²ΠΎΠ΄Π° scree. Π˜Ρ‚Π°ΠΊ, вмСсто php -a Π²Ρ‹ Π΄ΠΎΠ»ΠΆΠ½Ρ‹ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ call "php.exe" -f NAMED_SCRIPT.php

OLD Readline Π½Π΅Π²ΠΎΠ·ΠΌΠΎΠΆΠ΅Π½ Π² Windows, поэтому Π½ΠΈ ΠΎΠ΄Π½Π° ΠΈΠ· ΡΡƒΡ‰Π΅ΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΡ… php-ΠΎΠ±ΠΎΠ»ΠΎΡ‡Π΅ΠΊ, написанных Π½Π° php, Π½Π΅ Π±ΡƒΠ΄Π΅Ρ‚ Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ. Но Π΅ΡΡ‚ΡŒ ΠΎΠ±Ρ…ΠΎΠ΄Π½ΠΎΠΉ ΠΏΡƒΡ‚ΡŒ, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‰ΠΈΠΉ ΠΈΠ½Ρ‚Π΅Ρ€Π°ΠΊΡ‚ΠΈΠ²Π½Ρ‹ΠΉ Ρ€Π΅ΠΆΠΈΠΌ.

2 ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΡ‹ с сообщСниСм здСсь. Π’Ρ‹ Π½Π΅ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΡƒΠ²ΠΈΠ΄Π΅Ρ‚ΡŒ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ Π΄ΠΎ выполнСния ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹ CTRL Z, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΡƒΠΊΠ°Π·Π°Ρ‚ΡŒ ΠΎΠΊΠΎΠ½Ρ‡Π°Ρ‚Π΅Π»ΡŒΠ½Ρ‹ΠΉ ΠΊΠΎΠ΄ / ​​файл, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€ EOF. Когда Π²Ρ‹ это Π΄Π΅Π»Π°Π΅Ρ‚Π΅, Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ΠΎΠΌ Π² Π±ΠΎΠ»ΡŒΡˆΠΈΠ½ΡΡ‚Π²Π΅ случаСв являСтся Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ ΠΏΠ΅Ρ‡Π°Ρ‚ΠΈ ΠΈ быстроС Π·Π°ΠΊΡ€Ρ‹Ρ‚ΠΎΠ΅ ΠΎΠΊΠ½ΠΎ. Π’ΠΎ всяком случаС, Π²Ρ‹ Π²Π΅Ρ€Π½Π΅Ρ‚Π΅ΡΡŒ Π² cmd, Π° Π½Π΅ Π² ΠΈΠ½Ρ‚Π΅Ρ€Π°ΠΊΡ‚ΠΈΠ²Π½Ρ‹ΠΉ Ρ€Π΅ΠΆΠΈΠΌ.

Π‘ΠΎΡ…Ρ€Π°Π½ΠΈΡ‚Π΅ этот ΠΊΠΎΠ½Ρ‚Π΅Π½Ρ‚ Π² Ρ„Π°ΠΉΠ»Π΅ .bat ΠΈ ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΠΈΡ‚Π΅ свой PHP PATH Π² ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Π΅ Windows ΠΈΠ»ΠΈ ΠΈΠ·ΠΌΠ΅Π½ΠΈΡ‚Π΅ php.exe Π½Π° Β«ΠΏΠΎΠ»Π½Ρ‹ΠΉ ΠΏΡƒΡ‚ΡŒ ΠΊ exeΒ»:

 :: :: PHP Shell launch wrapper :: @ECHO off call "php.exe" -a echo. echo. call "PHP Shell.bat" 

Π­Ρ‚ΠΎ простой ΠΏΠ°ΠΊΠ΅Ρ‚Π½Ρ‹ΠΉ запуск – Ρ€Π΅ΠΆΠΈΠΌ php.exe. Когда ΠΎΠ½ запускаСт php, останавливаСт скрипт, Π΄Π°ΠΆΠ΅ ΠΏΠ°ΡƒΠ·Π° Π½Π΅ записываСтся, ΠΏΠΎΡ‚ΠΎΠΌΡƒ Ρ‡Ρ‚ΠΎ «находится» Π² ΠΈΠ½Ρ‚Π΅Ρ€Π°ΠΊΡ‚ΠΈΠ²Π½ΠΎΠΌ ΠΎΠΆΠΈΠ΄Π°Π½ΠΈΠΈ Π²Π²ΠΎΠ΄Π°. Когда Π²Ρ‹ Π½Π°ΠΆΠΈΠΌΠ°Π΅Ρ‚Π΅ CTRL Z, ΠΏΠΎΠ»ΡƒΡ‡Π°Π΅Ρ‚ SIGSTEP (ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΉ шаг), Π° Π½Π΅ SIGSTOP (ΠΎΠ±Ρ‹Ρ‡Π½ΠΎ Π·Π°ΠΊΡ€Ρ‹Π²Π°ΠΉΡ‚Π΅, CTRL + C), Π·Π°Ρ‚Π΅ΠΌ Ρ‡ΠΈΡ‚Π°ΠΉΡ‚Π΅ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΡƒΡŽ ΠΊΠΎΠ½ΡΡ‚Ρ€ΡƒΠΊΡ†ΠΈΡŽ, которая являСтся рСкурсивным Π²Ρ‹Π·ΠΎΠ²ΠΎΠΌ самому .bat. ΠŸΠΎΡΠΊΠΎΠ»ΡŒΠΊΡƒ Π²Ρ‹ всСгда Π½Π°Ρ…ΠΎΠ΄ΠΈΡ‚Π΅ΡΡŒ Π² Ρ€Π΅ΠΆΠΈΠΌΠ΅ PHP -a, Π½Π΅Ρ‚ ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹ Π²Ρ‹Ρ…ΠΎΠ΄Π°. Π’Ρ‹ Π΄ΠΎΠ»ΠΆΠ½Ρ‹ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ CTRL + C ΠΈΠ»ΠΈ Π½Π°ΠΆΠ°Ρ‚ΡŒ Π½Π° крСст Π½Π° Π²Ρ‹Ρ…ΠΎΠ΄Π΅ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ ΠΌΡ‹ΡˆΠΈ. (НСт alt + f4)

Π’Ρ‹ Ρ‚Π°ΠΊΠΆΠ΅ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΠΊΠΎΠ½Π²Π΅Ρ€Ρ‚Π΅Ρ€ Β«Bat to ExeΒ» для удобства использования.

Π’Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Π·Π°ΠΏΡƒΡΠΊΠ°Ρ‚ΡŒ php-страницы, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡ php.exe, ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ php-Ρ„Π°ΠΉΠ» с php-ΠΊΠΎΠ΄ΠΎΠΌ ΠΈ Π² cmd Π·Π°ΠΏΠΈΡΠ°Ρ‚ΡŒ "[PATH to php.ext]\php.exe [path_to_file]\file.php"

Π­Ρ‚ΠΎ ΠΏΠΎΡ‚ΠΎΠΌΡƒ, Ρ‡Ρ‚ΠΎ Π²Ρ‹ Π½Π°Ρ…ΠΎΠ΄ΠΈΡ‚Π΅ΡΡŒ Π² Β«Π˜Π½Ρ‚Π΅Ρ€Π°ΠΊΡ‚ΠΈΠ²Π½ΠΎΠΌ Ρ€Π΅ΠΆΠΈΠΌΠ΅Β», Π³Π΄Π΅ php ΠΎΡ†Π΅Π½ΠΈΠ²Π°Π΅Ρ‚ всС, Ρ‡Ρ‚ΠΎ Π²Ρ‹ Π½Π°Π±ΠΈΡ€Π°Π΅Ρ‚Π΅. Π§Ρ‚ΠΎΠ±Ρ‹ ΡƒΠ²ΠΈΠ΄Π΅Ρ‚ΡŒ ΠΊΠΎΠ½Π΅Ρ‡Π½Ρ‹ΠΉ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚, Π²Ρ‹ Π΄Π΅Π»Π°Π΅Ρ‚Π΅ Β«ctrl + zΒ» ΠΈ Enter. Π’Π΅ΠΏΠ΅Ρ€ΡŒ Π²Ρ‹ Π΄ΠΎΠ»ΠΆΠ½Ρ‹ ΡƒΠ²ΠΈΠ΄Π΅Ρ‚ΡŒ ΠΎΡ†Π΅Π½ΠΈΠ²Π°Π΅ΠΌΡ‹ΠΉ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ πŸ™‚

ps запускаСт cmd ΠΊΠ°ΠΊ Администратор!

Π’ Windows помСститС Ρ„Π°ΠΉΠ» php.exe Π² windows / system32 ΠΈΠ»ΠΈ Π² Π΄Ρ€ΡƒΠ³ΠΈΠ΅ систСмныС исполняСмыС ΠΏΠ°ΠΏΠΊΠΈ, Π° Π·Π°Ρ‚Π΅ΠΌ ΠΏΠ΅Ρ€Π΅ΠΉΠ΄ΠΈΡ‚Π΅ Π² ΠΊΠΎΠΌΠ°Π½Π΄Π½ΡƒΡŽ строку ΠΈ Π²Π²Π΅Π΄ΠΈΡ‚Π΅ php ΠΈ Π½Π°ΠΆΠΌΠΈΡ‚Π΅ Enter, слСдуя Π·Π° Π½ΠΈΠΌ, Ссли ΠΎΠ½ Π½Π΅ Π³Π΅Π½Π΅Ρ€ΠΈΡ€ΡƒΠ΅Ρ‚ Π½ΠΈΠΊΠ°ΠΊΠΈΡ… ошибок, Ρ‚ΠΎΠ³Π΄Π° Π²Ρ‹ Π³ΠΎΡ‚ΠΎΠ²Ρ‹ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ PHP Π² ΠΊΠΎΠΌΠ°Π½Π΄Π½ΠΎΠΉ строкС , Если Π²Ρ‹ установили свой php.exe Π³Π΄Π΅-Ρ‚ΠΎ Π΅Ρ‰Π΅, ΠΊΡ€ΠΎΠΌΠ΅ систСмных ΠΏΠ°ΠΏΠΎΠΊ ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ, Π²Π°ΠΌ Π½ΡƒΠΆΠ½ΠΎ ΡƒΡΡ‚Π°Π½ΠΎΠ²ΠΈΡ‚ΡŒ ΠΏΡƒΡ‚ΡŒ ΠΊ Π½Π΅ΠΌΡƒ Π² ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Ρ… срСды! Π’Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΏΠΎΠΏΠ°ΡΡ‚ΡŒ Ρ‚ΡƒΠ΄Π° ΠΏΠΎ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅ΠΌΡƒ ΠΏΡƒΡ‚ΠΈ ….

панСль управлСния -> БистСма -> Π˜Π·ΠΌΠ΅Π½ΠΈΡ‚ΡŒ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Π΅ срСды вашСй ΡƒΡ‡Π΅Ρ‚Π½ΠΎΠΉ записи -> Environment Vaiables -> path -> edit, Π° Π·Π°Ρ‚Π΅ΠΌ ΡƒΡΡ‚Π°Π½ΠΎΠ²ΠΈΡ‚ΡŒ Π°Π±ΡΠΎΠ»ΡŽΡ‚Π½Ρ‹ΠΉ ΠΏΡƒΡ‚ΡŒ вашСго php.exe ΠΈ ΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚ΡŒ Ρ‚ΠΎΠΉ ΠΆΠ΅ ΠΏΡ€ΠΎΡ†Π΅Π΄ΡƒΡ€Π΅, Ρ‡Ρ‚ΠΎ ΠΈ Π² ΠΏΠ΅Ρ€Π²ΠΎΠΌ Π°Π±Π·Π°Ρ†Π΅, Ссли Π½ΠΈΡ‡Π΅Π³ΠΎ Π² ошибкС ΠΎΡ‚Π΄Π΅Π»Π°, Ρ‚ΠΎ Π²Ρ‹ Π³ΠΎΡ‚ΠΎΠ²Ρ‹ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ php ΠΈΠ· ΠΊΠΎΠΌΠ°Π½Π΄Π½ΠΎΠΉ строки!

Π‘Π»Π΅Π΄ΡƒΡŽΡ‰Π΅Π΅ Ρ€Π΅ΡˆΠ΅Π½ΠΈΠ΅ ΡΠΏΠ΅Ρ†ΠΈΠ°Π»ΡŒΠ½ΠΎ ΠΏΡ€Π΅Π΄Π½Π°Π·Π½Π°Ρ‡Π΅Π½ΠΎ для срСды Wamp:

Π­Ρ‚ΠΎ лишило мСня Π½Π° Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ΅ врСмя, ΠΏΠΎΠΏΡ€ΠΎΠ±ΠΎΠ²Π°Π» всС Π΄Ρ€ΡƒΠ³ΠΈΠ΅ прСдлоТСния, $ PATH ΠΈ Ρ‚. Π”. Π”Π°ΠΆΠ΅ искал рССстр Windows, ΠΈΡ‰Π° подсказки:

GUI (wampmanager) ΡƒΠΊΠ°Π·Ρ‹Π²Π°Π΅Ρ‚, Ρ‡Ρ‚ΠΎ Ρƒ мСня Π΅ΡΡ‚ΡŒ вСрсия 7, ΠΈ Π΄Π°, Ссли я phpinfo () Π½Π° страницС Π² Π±Ρ€Π°ΡƒΠ·Π΅Ρ€Π΅, ΠΎΠ½Π° скаТСт ΠΌΠ½Π΅, Ρ‡Ρ‚ΠΎ Π΅Π΅ вСрсия 7.xx всС ΠΆΠ΅ php -v Π² ΠΊΠΎΠΌΠ°Π½Π΄Π½ΠΎΠΉ строкС сообщаСт ΠΎ 5.xx

Если Π²Ρ‹ Π½Π°ΠΆΠΌΠ΅Ρ‚Π΅ ΠΏΡ€Π°Π²ΠΎΠΉ ΠΊΠ½ΠΎΠΏΠΊΠΎΠΉ ΠΌΡ‹ΡˆΠΈ Π½Π° Π³ΠΎΠ»ΠΎΠ²Ρƒ wampmanager Π½Π° Π·Π½Π°Ρ‡ΠΎΠΊ-> tools-> ΡƒΠ΄Π°Π»ΠΈΡ‚ΡŒ Π½Π΅ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌΡ‹Π΅ вСрсии ΠΈ ΡƒΠ΄Π°Π»ΠΈΡ‚Π΅ ΡΡ‚Π°Ρ€ΡƒΡŽ Π²Π΅Ρ€ΡΠΈΡŽ, ΠΏΠΎΠ·Π²ΠΎΠ»ΡŒΡ‚Π΅ Π΅ΠΉ ΠΏΠ΅Ρ€Π΅Π·Π°ΠΏΡƒΡΡ‚ΠΈΡ‚ΡŒ слуТбы, Ρ‚ΠΎΠ³Π΄Π° командная строка Π²Π΅Ρ€Π½Π΅Ρ‚ 7.xx

Π­Ρ‚ΠΎ Ρ€Π΅ΡˆΠ΅Π½ΠΈΠ΅ ΠΎΠ·Π½Π°Ρ‡Π°Π΅Ρ‚, Ρ‡Ρ‚ΠΎ Ρƒ вас большС Π½Π΅Ρ‚ старой вСрсии, Ссли Π²Ρ‹ Ρ…ΠΎΡ‚ΠΈΡ‚Π΅ ΠΏΠ΅Ρ€Π΅ΠΊΠ»ΡŽΡ‡ΠΈΡ‚ΡŒΡΡ ΠΌΠ΅ΠΆΠ΄Ρƒ вСрсиями php, Π½ΠΎ Π΅ΡΡ‚ΡŒ Ρ„Π°ΠΉΠ» ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΠΈ Π² C: \ wamp64 \ wampmanager.conf, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ, ΠΊΠ°ΠΊ прСдставляСтся, ΡƒΠΊΠ°Π·Ρ‹Π²Π°Π΅Ρ‚ Π²Π΅Ρ€ΡΠΈΡŽ для использования с CLI (этот ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ называСтся phpCliVersion) , Π― ΠΈΠ·ΠΌΠ΅Π½ΠΈΠ» Π΅Π³ΠΎ, пСрСзапустил сСрвСр … Π΄ΡƒΠΌΠ°Π», Ρ‡Ρ‚ΠΎ я Ρ€Π΅ΡˆΠΈΠ» это, Π½ΠΎ Π½ΠΈΠΊΠ°ΠΊΠΎΠ³ΠΎ эффСкта, Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ, я Π±Ρ‹Π» Π½Π΅ΠΌΠ½ΠΎΠ³ΠΎ Π½Π΅Ρ‚Π΅Ρ€ΠΏΠ΅Π»ΠΈΠ², поэтому Ρƒ мСня Π΅ΡΡ‚ΡŒ ΠΎΡ‰ΡƒΡ‰Π΅Π½ΠΈΠ΅, Ρ‡Ρ‚ΠΎ Π² этом ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ ΠΏΡ€ΠΎΠ±Π΅Π³.

НадСТда, которая ΠΏΠΎΠΌΠΎΠ³Π°Π΅Ρ‚ ΠΊΠΎΠΌΡƒ-Ρ‚ΠΎ

ВсС ΠΎΡ‚Π²Π΅Ρ‚Ρ‹ Ρ…ΠΎΡ€ΠΎΡˆΠΈ, Π½ΠΎ Π½Π΅ΠΌΠ½ΠΎΠ³ΠΎ дольшС. Π’ΠΎΡ‚ фактичСский вопрос: ΠΊΠ°ΠΊ Π·Π°ΠΏΡƒΡΡ‚ΠΈΡ‚ΡŒ PHP-скрипт ΠΈΠ· ΠΊΠΎΠΌΠ°Π½Π΄Π½ΠΎΠΉ строки Windows. Если Π²Ρ‹ Π½Π΅ Π΄ΠΎΠ±Π°Π²ΠΈΠ»ΠΈ исполняСмый Ρ„Π°ΠΉΠ» PHP Π² ΡΠΈΡΡ‚Π΅ΠΌΠ½ΡƒΡŽ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΡƒΡŽ Windows, это быстрый способ Π»Π΅Π³ΠΊΠΎ Π·Π°ΠΏΡƒΡΡ‚ΠΈΡ‚ΡŒ PHP-скрипт.
[path to PHP excutable]/php.exe [path to php file]/somefile.php

Π’ ΠΌΠΎΠ΅ΠΌ случаС
c:\xampp\htdocs>C:/xampp/php/php.exe info.php

Π’Π΅ΠΏΠ΅Ρ€ΡŒ, Ссли Π²Ρ‹ Ρ…ΠΎΡ‚ΠΈΡ‚Π΅ Π½Π°ΠΏΡ€ΡΠΌΡƒΡŽ Π²Ρ‹ΠΏΠΎΠ»Π½ΠΈΡ‚ΡŒ PHP-ΠΊΠΎΠ΄ Π² ΠΊΠΎΠΌΠ°Π½Π΄Π½ΠΎΠΉ строкС, Π½Π°ΠΏΠΈΡˆΠΈΡ‚Π΅ ΠΊΠΎΠ΄, ΠΊΠ°ΠΊ это …
[path to PHP executable]/php.exe -r "echo 'hi';"

Π Π°Π±ΠΎΡ‚Π° с PHP-скриптами Π²Β ΠΊΠΎΠΌΠ°Π½Π΄Π½ΠΎΠΉ строкС | REG.RU

ΠŸΠΎΒ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ php скрипты Π·Π°ΠΏΡƒΡΠΊΠ°ΡŽΡ‚ΡΡ ΠΏΠΎΠ΄ «систСмной» сборкой php (5.3), Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€:

        -bash-4.1$ php www/mysite.ru/info.php
phpinfo()
PHP Version => 5.3.3
...
    

БоотвСтствСнно, ΠΊΠΎΠΌΠ°Π½Π΄Π° php -v ΠΏΠΎΠΊΠ°ΠΆΠ΅Ρ‚ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΡŽ ΠΎ «систСмной» сборкС php, Π°Β Π½Π΅ Ρ‚ΠΎΠΉ, Ρ‡Ρ‚ΠΎ Π°ΠΊΡ‚ΠΈΠ²ΠΈΡ€ΠΎΠ²Π°Π½Π° Π²Β ΠΏΠ°Π½Π΅Π»ΠΈ управлСния хостингом:

        -bash-4.1$ php -v

PHP 5.3.3 (cli) (built: Jul  9 2015 17:39:00)

Copyright (c) 1997-2010 The PHP Group
Zend Engine v2.3.0, Copyright (c) 1998-2010 Zend Technologies
    with eAccelerator v0.9.6.1, Copyright (c) 2004-2010 eAccelerator, by eAccelerator
    with the ionCube PHP Loader v4.2.2, Copyright (c) 2002-2012, by ionCube Ltd., and
    with Zend Guard Loader v3.3, Copyright (c) 1998-2010, by Zend Technologies
    

Π‘Π±ΠΎΡ€ΠΊΠΈ php, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π²Π°ΠΌ доступны Π²Β ΠΏΠ°Π½Π΅Π»ΠΈ управлСния хостингом, располоТСны Π²Β /opt/php:

        -bash-4.1$ ls /opt/php

4.4.9  5.2  5.3-bx-optimized  5.4-bx-optimized   5.5               5.6                7.0                 7.1
5.1    5.3  5.4               5.4-bx-optimized2  5.5-bx-optimized  5.6-bx-optimized   7.0-bx-optimized
    

ΠšΠ°ΠΊΒ Π·Π°ΠΏΡƒΡΡ‚ΠΈΡ‚ΡŒ скрипт ΠΏΠΎΠ΄Β ΠΎΠΏΡ€Π΅Π΄Π΅Π»Ρ‘Π½Π½ΠΎΠΉ вСрсиСй PHP

ΠžΠ±Ρ€Π°Ρ‚ΠΈΡ‚Π΅ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅: скрипты ΠΌΠΎΠΆΠ½ΠΎ Π·Π°ΠΏΡƒΡΠΊΠ°Ρ‚ΡŒ ΠΈΒ Ρ‡Π΅Ρ€Π΅Π· php, ΠΈΒ Ρ‡Π΅Ρ€Π΅Π· php-cgi. НапримСр:

  • /opt/php/5.4-with-xcache/bin/php-cgi
  • /opt/php/5.4-with-xcache/bin/php

ΠžΒ Ρ‚ΠΎΠΌ, ΠΊΠ°ΠΊΠΎΠΉ Ρ€Π΅ΠΆΠΈΠΌ ΠΏΠΎΠ΄ΠΎΠΉΠ΄Π΅Ρ‚ для работы скриптов, Π²Ρ‹Β ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΡƒΠ·Π½Π°Ρ‚ΡŒ ΡƒΒ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠΎΠ² вашСго сайта.

Для запуска скрипта под вСрсиСй Β«php 5.5Β» Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ Π²Ρ‹ΠΏΠΎΠ»Π½ΠΈΡ‚ΡŒ ΠΊΠΎΠΌΠ°Π½Π΄Ρƒ:

/opt/php/5.5/bin/php www/mysite.ru/info.php

Π³Π΄Π΅:

  • /opt/php/5.5/bin/phpΒ β€” ΠΏΡƒΡ‚ΡŒ ΠΊΒ ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΡƒ;
  • www/mysite.ru/info.phpΒ β€” ΠΏΡƒΡ‚ΡŒ к скрипту.

Π½Π°Β ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π΅ phpinfo

        -bash-4.1$ /opt/php/5.5/bin/php www/mysite.ru/info.php

X-Powered-By: PHP/5.5.23
Content-type: text/html
...
    

Π²ΠΈΠ΄Π½ΠΎ, Ρ‡Ρ‚ΠΎ скрипт запустился ΠΏΠΎΠ΄Β Β«php 5.5Β».

Аналогичным ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ ΠΌΠΎΠΆΠ½ΠΎ Π·Π°ΠΏΡƒΡΡ‚ΠΈΡ‚ΡŒ скрипт под любой Π΄Ρ€ΡƒΠ³ΠΎΠΉ доступной сборкой php:

  • /opt/php/4.4.9/bin/php
  • /opt/php/5.1/bin/php
  • /opt/php/5.2/bin/php
  • /opt/php/5.3/bin/php
  • /opt/php/5.3-bx-optimized/bin/php
  • /opt/php/5.3-with-xcache/bin/php
  • /opt/php/5.4/bin/php
  • /opt/php/5.4-bx-optimized/bin/php
  • /opt/php/5.4-bx-optimized2/bin/php
  • /opt/php/5.4-with-xcache/bin/php
  • /opt/php/5.5/bin/php
  • /opt/php/5.5-bx-optimized/bin/php
  • /opt/php/5.6/bin/php
  • /opt/php/5.6-bx-optimized/bin/php
  • /opt/php/7.0/bin/php
  • /opt/php/7.0-bx-optimized/bin/php
  • /opt/php/7.1/bin/php

Π£Π·Π½Π°Ρ‚ΡŒ ΠΏΠΎΠ΄Ρ€ΠΎΠ±Π½ΡƒΡŽ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΡŽ о сборкС php ΠΌΠΎΠΆΠ½ΠΎ ΠΏΡ€ΠΈΒ ΠΏΠΎΠΌΠΎΡ‰ΠΈ ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹:

        /opt/php/.../bin/php -i

# Π£Π·Π½Π°Ρ‚ΡŒ список доступных ΠΌΠΎΠ΄ΡƒΠ»Π΅ΠΉ: 
/opt/php/.../bin/php -m
    

Помогла Π»ΠΈ Π²Π°ΠΌ ΡΡ‚Π°Ρ‚ΡŒΡ?

40
Ρ€Π°Π· ΡƒΠΆΠ΅
ΠΏΠΎΠΌΠΎΠ³Π»Π°

Как Π·Π°ΠΏΡƒΡΡ‚ΠΈΡ‚ΡŒ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡƒ PHP ΠΈΠ· ΠΊΠΎΠΌΠ°Π½Π΄Π½ΠΎΠΉ строки Π½Π° Windows-машинС? PHP Lang

По профСссии я Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊ PHP .

Π― ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽ Π½ΠΎΡƒΡ‚Π±ΡƒΠΊ Lenovo Ideapad, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚ Π² Windows 10 Home Single Language 64-разрядная опСрационная систСма

Π― Ρ‚Π°ΠΊΠΆΠ΅ установил XAMPP Control Panel v3.2.2 Π² ΠΏΠ°ΠΏΠΊΡƒ Β«C: \ xamppΒ» для выполнСния ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌ PHP Π² Π²Π΅Π±-Π±Ρ€Π°ΡƒΠ·Π΅Ρ€Π΅ Π½Π° ΠΌΠΎΠ΅ΠΉ машинС.

Π€Π°ΠΉΠ» Β«php.exeΒ» присутствуСт Π² мСстС Β«C: \ xampp \ phpΒ» .

ΠšΠΎΡ€Π½Π΅Π²ΠΎΠΉ ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³ Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Π° для сохранСния Ρ„Π°ΠΉΠ»ΠΎΠ² PHP находится Π² ΠΏΠ°ΠΏΠΊΠ΅ Β«C: \ xampp \ htdocsΒ» .

Π― ΠΌΠΎΠ³Ρƒ Π·Π°ΠΏΡƒΡΠΊΠ°Ρ‚ΡŒ созданныС ΠΌΠ½ΠΎΠΉ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ PHP ΠΈ ΡΠΎΡ…Ρ€Π°Π½ΡΡ‚ΡŒ ΠΈΡ… Π² ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³Π΅ C: \ xampp \ htdocs \ html_playground , запустив ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½ΠΎΠ΅ обСспСчСниС XAMPP (Π΄Π²Π°ΠΆΠ΄Ρ‹ Ρ‰Π΅Π»ΠΊΠ½ΡƒΠ² ярлык XAMPP Π½Π° ΠΌΠΎΠ΅ΠΌ Ρ€Π°Π±ΠΎΡ‡Π΅ΠΌ столС) ΠΈ ввСдя URL-адрСс Ρ„Π°ΠΉΠ»Π° ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, Β« http: //localhost/html_playground/sample.php Β» Π² адрСсной строкС Π±Ρ€Π°ΡƒΠ·Π΅Ρ€Π°.

Π’Π°ΠΊΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ, я ΠΌΠΎΠ³Ρƒ Π·Π°ΠΏΡƒΡΡ‚ΠΈΡ‚ΡŒ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ PHP Ρ‚ΠΎΡ‡Π½ΠΎ, Π½ΠΎ я Ρ…ΠΎΡ‡Ρƒ Π·Π°ΠΏΡƒΡΡ‚ΠΈΡ‚ΡŒ Ρ‚Ρƒ ΠΆΠ΅ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡƒ ΠΈΠ· ΠΊΠΎΠΌΠ°Π½Π΄Π½ΠΎΠΉ строки Windows

ПослСдняя новая строка выглядСла ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ:

Π—Π°Ρ‚Π΅ΠΌ вмСсто отобраТСния Π²Ρ‹Π²ΠΎΠ΄Π° ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ ΠΎΠ½ ΠΎΡ‚ΠΊΡ€Ρ‹Π» Ρ‚ΠΎΡ‚ ΠΆΠ΅ Ρ„Π°ΠΉΠ» Π² Sublime Text (Ρ€Π΅Π΄Π°ΠΊΡ‚ΠΎΡ€, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ я ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽ для написания ΠΊΠΎΠ΄Π°)

Π€Π°ΠΉΠ» sample.php ΠΈΠΌΠ΅Π΅Ρ‚ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΉ исполняСмый ΠΊΠΎΠ΄ PHP :

Для вашСй справки я Ρ‚Π°ΠΊΠΆΠ΅ ΠΏΡ€ΠΈΠΊΡ€Π΅ΠΏΠ»ΡΡŽ экранный снимок ΠΎΠΊΠ½Π° ΠΊΠΎΠΌΠ°Π½Π΄Π½ΠΎΠΉ строки:

ΠŸΠΎΠΆΠ°Π»ΡƒΠΉΡΡ‚Π°, ΠΏΠΎΠΌΠΎΠ³ΠΈΡ‚Π΅ ΠΌΠ½Π΅, отвСчая Π½Π° ΠΌΠΎΠΈ вопросы ΠΈ помогая ΠΌΠ½Π΅ Π·Π°ΠΏΡƒΡΡ‚ΠΈΡ‚ΡŒ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡƒ ΠΈΠ· ΠΊΠΎΠΌΠ°Π½Π΄Π½ΠΎΠΉ строки.

Π”Π°ΠΆΠ΅ я попытался ΠΏΠ΅Ρ€Π΅Π·Π°Π³Ρ€ΡƒΠ·ΠΈΡ‚ΡŒ ПК ΠΈ Π·Π°ΠΏΡƒΡΡ‚ΠΈΡ‚ΡŒ ΠΊΠΎΠΌΠ°Π½Π΄Ρƒ php -v, Π½ΠΎ это Ρ‚Π°ΠΊΠΆΠ΅ Π½Π΅ сработало. НиТС ΠΏΠΎΠΊΠ°Π·Π°Π½ снимок экрана:

Если Π²Ρ‹ Ρ…ΠΎΡ‚ΠΈΡ‚Π΅ Π·Π°ΠΏΡƒΡΡ‚ΠΈΡ‚ΡŒ CLI PHP, я Π±Ρ‹ Π½Π°ΡΡ‚ΠΎΡΡ‚Π΅Π»ΡŒΠ½ΠΎ ΠΏΡ€Π΅Π΄Π»ΠΎΠΆΠΈΠ» ΡƒΡΡ‚Π°Π½ΠΎΠ²ΠΈΡ‚ΡŒ php vanilla, Π½Π°ΠΉΠ΄Π΅Π½Π½Ρ‹ΠΉ Π½Π° windows.php.net . ΠŸΡƒΡΡ‚ΡŒ ΠΎΠ½ устанавливаСтся Π½Π° C:\php . ΠŸΡ€ΠΈΡ‡ΠΈΠ½Π°, ΠΏΠΎ ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΉ я Ρ€Π΅ΠΊΠΎΠΌΠ΅Π½Π΄ΡƒΡŽ это, Π·Π°ΠΊΠ»ΡŽΡ‡Π°Π΅Ρ‚ΡΡ Π² Ρ‚ΠΎΠΌ, Ρ‡Ρ‚ΠΎ Ссли Π²Ρ‹ ΠΊΠΎΠ³Π΄Π°-Π»ΠΈΠ±ΠΎ Π·Π°Ρ…ΠΎΡ‚ΠΈΡ‚Π΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Composer (ΠΈ Ρƒ вас Π΅ΡΡ‚ΡŒ Π΄Π΅ΠΉΡΡ‚Π²ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ Ρ…ΠΎΡ€ΠΎΡˆΠΈΠΉ шанс), ΠΎΠ½ Π½Π°ΠΉΠ΄Π΅Ρ‚ Π΅Π³ΠΎ Ρ‚Π°ΠΌ.

Π’Π΅ΠΏΠ΅Ρ€ΡŒ Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΎΡ‚ΠΊΡ€Ρ‹Ρ‚ΡŒ ΠΊΠΎΠΌΠ°Π½Π΄Π½ΡƒΡŽ строку ΠΈ Π·Π°ΠΏΡƒΡΡ‚ΠΈΡ‚ΡŒ скрипты, ΠΊΠ°ΠΊ ΠΏΠΎΠΊΠ°Π·Π°Π½ΠΎ Π½ΠΈΠΆΠ΅.

 C:\php\php.exe C:\path\to\php\script.php 

К вашим особСнностям

  1. Why I'm not able to see the output at command prompt or a web browser? ΠŸΠΎΡ‚ΠΎΠΌΡƒ Ρ‡Ρ‚ΠΎ Π²Ρ‹Π²ΠΎΠ΄ отправляСтся Π² ΠΊΠΎΠΌΠ°Π½Π΄Π½ΡƒΡŽ строку. Запросы Π±Ρ€Π°ΡƒΠ·Π΅Ρ€Π° ΠΎΡ‚ΠΏΡ€Π°Π²Π»ΡΡŽΡ‚ΡΡ Ρ‡Π΅Ρ€Π΅Π· Π²Π΅Π±-сСрвСр Π² Π±Ρ€Π°ΡƒΠ·Π΅Ρ€
  2. Is it necessary to start the XAMPP server like I normally do to run the program from command prompt too? Для запросов CLI Π½Π΅Ρ‚. PHP являСтся исполняСмым ΠΈ ΠΌΠΎΠΆΠ΅Ρ‚ Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ сам ΠΏΠΎ сСбС. Если Π²Ρ‹ Ρ…ΠΎΡ‚ΠΈΡ‚Π΅ Π²Ρ‹ΠΏΠΎΠ»Π½ΡΡ‚ΡŒ запросы Π±Ρ€Π°ΡƒΠ·Π΅Ρ€Π°, Ρ‚ΠΎΠ³Π΄Π° XAMPP Π΄ΠΎΠ»ΠΆΠ΅Π½ Π±Ρ‹Ρ‚ΡŒ Π·Π°ΠΏΡƒΡ‰Π΅Π½.
  3. Is there really a need to set environment variables? If yes why? If no why? На самом Π΄Π΅Π»Π΅, Π½Π΅Ρ‚. CLI Π±ΡƒΠ΄Π΅Ρ‚ ΠΎΠ±Ρ€Π°Ρ‰Π°Ρ‚ΡŒ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Π½Π° Ρ‚ΠΎ, Ρ‡Ρ‚ΠΎ php.ini XAMPP ΠΏΡ€Π΅Π΄Π½Π°Π·Π½Π°Ρ‡Π΅Π½Ρ‹ для Apache, Π² основном.
  4. But I'm not understanding the reason why people do insist for running the PHP programs from Command Line . Основная ΠΏΡ€ΠΈΡ‡ΠΈΠ½Π° – Π°Π²Ρ‚ΠΎΠΌΠ°Ρ‚ΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Π½Π½Ρ‹Π΅ Π·Π°Π΄Π°Ρ‡ΠΈ. Π£ мСня Π΅ΡΡ‚ΡŒ нСсколько процСссов Π½Π° Ρ€Π°Π±ΠΎΡ‚Π΅, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ я Π·Π°ΠΏΡƒΡΠΊΠ°ΡŽ Π½Π° Ρ€Π°Π±ΠΎΡ‚Ρƒ cron.

ПошаговоС руководство ΠΏΠΎ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹ΠΌ путям Π² Windows 10

  1. Π©Π΅Π»ΠΊΠ½ΠΈΡ‚Π΅ ΠΏΡ€Π°Π²ΠΎΠΉ ΠΊΠ½ΠΎΠΏΠΊΠΎΠΉ ΠΌΡ‹ΡˆΠΈ ΠΊΠ½ΠΎΠΏΠΊΡƒ Β«ΠŸΡƒΡΠΊΒ» Windows , Π²Ρ‹Π±Π΅Ρ€ΠΈΡ‚Π΅ Β« БистСма»
  1. НаТмитС Β« БвСдСния ΠΎ систСмС»
  1. НаТмитС Β« Π”ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹Π΅ настройки систСмы»
  1. НаТмитС Β« ΠŸΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Π΅ срСды»
  1. Π’Ρ‹Π±Π΅Ρ€ΠΈΡ‚Π΅ PATH Π² Ρ€Π°Π·Π΄Π΅Π»Π΅ Β« БистСмныС ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Π΅Β» ΠΈ Π½Π°ΠΆΠΌΠΈΡ‚Π΅ Β« Π˜Π·ΠΌΠ΅Π½ΠΈΡ‚ΡŒΒ» .
  1. НаТмитС Β« Π‘ΠΎΠ·Π΄Π°Ρ‚ΡŒΒ» , Π²Π²Π΅Π΄ΠΈΡ‚Π΅ мСстополоТСниС Β«ΠŸΡƒΡ‚ΡŒΒ» для исполняСмого Ρ„Π°ΠΉΠ»Π°
  1. НаТмитС OK ΠΈ APPLY Π½Π° всСх ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΡ… панСлях, Π·Π°Ρ‚Π΅ΠΌ ΠΏΠ΅Ρ€Π΅Π·Π°Π³Ρ€ΡƒΠ·ΠΈΡ‚Π΅ ΠΊΠΎΠΌΠΏΡŒΡŽΡ‚Π΅Ρ€ .

Π¨Π°Π³ 1. Π©Π΅Π»ΠΊΠ½ΠΈΡ‚Π΅ ΠΏΡ€Π°Π²ΠΎΠΉ ΠΊΠ½ΠΎΠΏΠΊΠΎΠΉ ΠΌΡ‹ΡˆΠΈ Π·Π½Π°Ρ‡ΠΎΠΊ Β«ΠšΠΎΠΌΠΏΡŒΡŽΡ‚Π΅Ρ€Β» Π½Π° Ρ€Π°Π±ΠΎΡ‡Π΅ΠΌ столС ΠΈ Π²Ρ‹Π±Π΅Ρ€ΠΈΡ‚Π΅ «Бвойства».

Π¨Π°Π³ 2. Π’ ΠΎΠΊΠ½Π΅ «БистСма» Π½Π°ΠΆΠΌΠΈΡ‚Π΅ Β«Π”ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹Π΅ систСмныС настройки» Π½Π° Π»Π΅Π²ΠΎΠΉ ΠΏΠ°Π½Π΅Π»ΠΈ.

Π¨Π°Π³ 3: Π’ ΠΎΠΊΠ½Π΅ «Бвойства систСмы» Π²Ρ‹Π±Π΅Ρ€ΠΈΡ‚Π΅ Β«Π”ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΒ» Π² Π³ΠΎΡ€ΠΈΠ·ΠΎΠ½Ρ‚Π°Π»ΡŒΠ½ΠΎΠΌ мСню Π²Π²Π΅Ρ€Ρ…Ρƒ ΠΈ Π½Π°ΠΆΠΌΠΈΡ‚Π΅ ΠΊΠ½ΠΎΠΏΠΊΡƒ Β«ΠŸΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Π΅ срСды», ΡƒΠΊΠ°Π·Π°Π½Π½ΡƒΡŽ Π² Π½ΠΈΠΆΠ½Π΅ΠΉ части ΠΎΠΊΠ½Π°.

Π¨Π°Π³ 4: Π’ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅ΠΌ ΠΎΠΊΠ½Π΅ Π²Ρ‹Π·ΠΎΠ²ΠΈΡ‚Π΅ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Π΅ срСды, ΠΏΠ΅Ρ€Π΅ΠΉΠ΄ΠΈΡ‚Π΅ Π² Π‘ΠΈΡΡ‚Π΅ΠΌΠ½ΡƒΡŽ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΡƒΡŽ (вторая сСтка) ΠΈ Π½Π°ΠΉΠ΄ΠΈΡ‚Π΅ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΡƒΡŽ Path ΠΈ Π½Π°ΠΆΠΌΠΈΡ‚Π΅ Edit. Если пСрСмСнная Path отсутствуСт, Π½Π°ΠΆΠΌΠΈΡ‚Π΅ Β«Π‘ΠΎΠ·Π΄Π°Ρ‚ΡŒΒ».

Если Π²Ρ‹ Ρ€Π΅Π΄Π°ΠΊΡ‚ΠΈΡ€ΡƒΠ΅Ρ‚Π΅, Π΄ΠΎΠ±Π°Π²ΡŒΡ‚Π΅ Ρ‚ΠΎΡ‡ΠΊΡƒ с запятой Π΄ΠΎ ΠΏΡƒΡ‚ΠΈ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Π²Ρ‹ добавляСтС ΠΊ ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½Ρ‹ΠΌ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹ΠΌ.

Π¨Π°Π³ 5: ΠŸΠΎΠ»ΡƒΡ‡ΠΈΡ‚Π΅ ΠΏΡƒΡ‚ΡŒ php, Π³Π΄Π΅ Π²Ρ‹ установили XAMPP. Π”ΠΎΠ±Π°Π²ΡŒΡ‚Π΅ этот ΠΏΡƒΡ‚ΡŒ ΠΊ Π·Π½Π°Ρ‡Π΅Π½ΠΈΡŽ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ Π² появившСмся малСньком Π΄ΠΈΠ°Π»ΠΎΠ³ΠΎΠ²ΠΎΠΌ ΠΎΠΊΠ½Π΅.

Π¨Π°Π³ 6: НаТмитС ОК ΠΈ Π·Π°ΠΊΡ€ΠΎΠΉΡ‚Π΅ всС ΠΎΠΊΠ½Π°.

Π¨Π°Π³ 7. ΠžΡ‚ΠΊΡ€ΠΎΠΉΡ‚Π΅ ΠΊΠΎΠΌΠ°Π½Π΄Π½ΡƒΡŽ строку с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ cmd.

Π¨Π°Π³ 8: cd to your_install_path / xampp / htdocs

Π¨Π°Π³ 9: Π²Π²Π΅Π΄ΠΈΡ‚Π΅ ΠΊΠΎΠΌΠ°Π½Π΄Ρƒ Β«php -i | Π‘ΠΎΠ»ΡŒΡˆΠ΅’

Π¨Π°Π³ 10: НСт шага 10.

ΠžΡ‚ΠΊΡ€ΠΎΠΉΡ‚Π΅ ΠΊΠΎΠΌΠ°Π½Π΄Π½ΡƒΡŽ строку Π² Ρ‚ΠΎΠΌ ΠΆΠ΅ ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³Π΅, Ρ‡Ρ‚ΠΎ ΠΈ php.exe, ΠΈ Π²Ρ‹Π·ΠΎΠ²ΠΈΡ‚Π΅ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡƒ с Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚ΠΎΠΌ Ρ„Π°ΠΉΠ»Π°, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Π²Ρ‹ Ρ…ΠΎΡ‚ΠΈΡ‚Π΅ ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ.

C:\xampp\php\php.exe C:\xamp\htdocs\html_playground\test.php

Если test.php содСрТится; <?php echo "Hello World"; ?> <?php echo "Hello World"; ?> Ρ‚ΠΎΠ³Π΄Π° командная строка Π²Ρ‹Π²ΠΎΠ΄ΠΈΡ‚ Β«Hello WorldΒ» ΠΈ Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅Ρ‚ стандартный ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΡΠΊΠΈΠΉ Π²Π²ΠΎΠ΄ CMD CLI.

ΠŸΡ€ΠΈΡ‡ΠΈΠ½Π°, ΠΏΠΎ ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΉ ваш Π²Ρ‹Π·ΠΎΠ² >php Π½Π΅ Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚, Π±ΠΎΠ»Π΅Π΅ Ρ‡Π΅ΠΌ вСроятно ΠΈΠ·-Π·Π° ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ срСды PATH, Π½Π΅ содСрТащСй ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½ΠΎΠ³ΠΎ располоТСния для PHP, ΠΎΡ‚Ρ€Π΅Π΄Π°ΠΊΡ‚ΠΈΡ€ΡƒΠΉΡ‚Π΅ систСмныС ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Π΅ ΠΈ Π΄ΠΎΠ±Π°Π²ΡŒΡ‚Π΅ ‘C: \ xampp \ php \;’ Π² строку PATH. Π—Π°Ρ‚Π΅ΠΌ это Π΄ΠΎΠ»ΠΆΠ½ΠΎ ΠΏΠΎΠ·Π²ΠΎΠ»ΠΈΡ‚ΡŒ Π²Π°ΠΌ Π²Ρ‹Π·Π²Π°Ρ‚ΡŒ php C:\xamp\htdocs\html_playground\test.php для Ρ‚ΠΎΠ³ΠΎ ΠΆΠ΅ Π²Ρ‹Ρ…ΠΎΠ΄Π°, Ρ‡Ρ‚ΠΎ ΠΈ Π²Ρ‹ΡˆΠ΅.

ΠŸΠΎΡΠΊΠΎΠ»ΡŒΠΊΡƒ Π²Ρ‹ установили XAMPP Ρ‚ΠΎΠ³Π΄Π° Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Π·Π°ΠΏΡƒΡΡ‚ΠΈΡ‚ΡŒ PHP ΠΈΠ· ΠΎΠΊΠ½Π° SHELL ΠΏΠ°Π½Π΅Π»ΠΈ управлСния XAMPP v3.2.2

Π’ ΠΌΠΎΠ΅ΠΌ тСстовом случаС я ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽ нСбольшой Ρ„Π°ΠΉΠ» index.php Π²Π½ΡƒΡ‚Ρ€ΠΈ ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³Π° c:\xampp\htdocs\tester содСрТимоС index.php :

 echo "This is output from command line "."\n"; if(!empty($argv)) { foreach($argv as $key => $arg) { if($key>0) { echo "command line argument ".$key ." ". $arg."\n"; } } } 

ΠŸΡ€ΠΎΡΡ‚ΠΎ Π²Π²Π΅Π΄ΠΈΡ‚Π΅ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅Π΅ Π² ΠΎΠΊΠ½Π΅ ΠΊΠΎΠΌΠ°Π½Π΄Π½ΠΎΠΉ строки.

 php C:\xampp\htdocs\tester\index.php var1=1 var2="lorem ipsum..." 

Π’Ρ‹Π²ΠΎΠ΄

Π’Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΡƒΠ²ΠΈΠ΄Π΅Ρ‚ΡŒ Π²Ρ‹Π²ΠΎΠ΄ php ΠΊΠΎΠ΄Π° Π² вашСм Π±Ρ€Π°ΡƒΠ·Π΅Ρ€Π΅ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ Ρ„Π»Π°Π³Π° -S :

 php -S <host/ip>:<port> 

Π§Ρ‚ΠΎΠ±Ρ‹ ΠΏΡ€ΠΎΡ‚Π΅ΡΡ‚ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ Π΅Π³ΠΎ, создайтС Ρ„Π°ΠΉΠ» sample.php содСрТащий:

 <?php echo "Hello World from built-in PHP server"; 

ΠΈ запуститС ΠΊΠΎΠΌΠ°Π½Π΄Ρƒ php -S localhost:8080 ΠΈΠ· ΠΊΠΎΠΌΠ°Π½Π΄Π½ΠΎΠΉ строки ( Π½Π΅ Π²ΠΊΠ»ΡŽΡ‡Π°ΠΉΡ‚Π΅ http: // ).

Π­Ρ‚ΠΎ запустит Π²Π΅Π±-сСрвСр, ΠΏΡ€ΠΎΡΠ»ΡƒΡˆΠΈΠ²Π°ΡŽΡ‰ΠΈΠΉ ΠΏΠΎΡ€Ρ‚ 8080, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡ Ρ‚Π΅ΠΊΡƒΡ‰ΠΈΠΉ ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³, Π² ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΌ Π²Ρ‹ Π½Π°Ρ…ΠΎΠ΄ΠΈΡ‚Π΅ΡΡŒ Π² качСствС корня Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Π°.

ΠžΡ‚ΠΊΡ€ΠΎΠΉΡ‚Π΅ Π±Ρ€Π°ΡƒΠ·Π΅Ρ€ ΠΈ ΠΏΠ΅Ρ€Π΅ΠΉΠ΄ΠΈΡ‚Π΅ ΠΏΠΎ адрСсу http: // localhost: 8080 . Π’Ρ‹ Π΄ΠΎΠ»ΠΆΠ½Ρ‹ ΡƒΠ²ΠΈΠ΄Π΅Ρ‚ΡŒ страницу Β«Hello WorldΒ».

ΠŸΡ€ΠΈΠΌΠ΅Ρ‡Π°Π½ΠΈΠ΅. МоС ΠΏΡ€Π΅Π΄ΠΏΠΎΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Π·Π°ΠΊΠ»ΡŽΡ‡Π°Π΅Ρ‚ΡΡ Π² Ρ‚ΠΎΠΌ, Ρ‡Ρ‚ΠΎ Π²Ρ‹ Π½Π°Ρ…ΠΎΠ΄ΠΈΡ‚Π΅ΡΡŒ Π² ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³Π΅, Π³Π΄Π΅ присутствуСт sample.php .

ΠŸΡ€ΠΎΡΡ‚ΠΎΠΉ, ΠΊΠΎΡ€ΠΎΡ‚ΠΊΠΈΠΉ ΠΈ ΠΈΠ΄Π΅Π°Π»ΡŒΠ½Ρ‹ΠΉ ΠΎΡ‚Π²Π΅Ρ‚ для вас. ΠŸΠΎΠΏΡ€ΠΎΠ±ΡƒΠΉΡ‚Π΅ хотя Π±Ρ‹ ΠΎΠ΄ΠΈΠ½ Ρ€Π°Π·, ΠΊΠΎΠ³Π΄Π° Π²Ρ‹ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚Π΅ успСх πŸ™‚

ΠžΡ‚ΠΊΡ€Ρ‹Ρ‚ΡŒ C: \ xampp \ php (ΠΈΠ»ΠΈ ваш ΠΏΡƒΡ‚ΡŒ ΠΌΠΎΠΆΠ΅Ρ‚ ΠΎΡ‚Π»ΠΈΡ‡Π°Ρ‚ΡŒΡΡ Π² зависимости ΠΎΡ‚ Ρ‚ΠΎΠ³ΠΎ, Π³Π΄Π΅ Π²Ρ‹ Π΅Π³ΠΎ установили)

Π’Π΅ΠΏΠ΅Ρ€ΡŒ запуститС PHP.exe

Ρ‚Π΅ΠΏΠ΅Ρ€ΡŒ просто слСдуйтС этому Ρ‚ΠΈΠΏΡƒ

 php -a 

ΠΈ Π·Π°Ρ‚Π΅ΠΌ Π½Π°Ρ‡Π½ΠΈΡ‚Π΅ ΠΏΠΈΡΠ°Ρ‚ΡŒ свой ΠΊΠΎΠ΄.

Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€

 <?php echo "Hello, world!"; ?> 

Π—Π°Ρ‚Π΅ΠΌ Π½Π°ΠΆΠΌΠΈΡ‚Π΅ CTRL + Z, Π° Π·Π°Ρ‚Π΅ΠΌ Enter

ΠŸΡ€ΠΈΠ²Π΅Ρ‚ ΠΌΠΈΡ€! // Π’Ρ‹Π²ΠΎΠ΄

АргумСнты ΠΈ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Ρ‹ ΠΊΠΎΠΌΠ°Π½Π΄Π½ΠΎΠΉ строки PHP

ΠŸΠ΅Ρ€Π΅ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ стСка

  1. Около
  2. ΠŸΡ€ΠΎΠ΄ΡƒΠΊΡ‚Ρ‹

  3. Для ΠΊΠΎΠΌΠ°Π½Π΄
  1. ΠŸΠ΅Ρ€Π΅ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ стСка
    ΠžΠ±Ρ‰Π΅ΡΡ‚Π²Π΅Π½Π½Ρ‹Π΅ вопросы ΠΈ ΠΎΡ‚Π²Π΅Ρ‚Ρ‹

  2. ΠŸΠ΅Ρ€Π΅ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ стСка для ΠΊΠΎΠΌΠ°Π½Π΄
    Π“Π΄Π΅ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠΈ ΠΈ Ρ‚Π΅Ρ…Π½ΠΎΠ»ΠΎΠ³ΠΈ дСлятся частными знаниями с ΠΊΠΎΠ»Π»Π΅Π³Π°ΠΌΠΈ

  3. Вакансии
    ΠŸΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ ΠΈ связанныС с Π½ΠΈΠΌ тСхничСскиС возмоТности ΠΊΠ°Ρ€ΡŒΠ΅Ρ€Π½ΠΎΠ³ΠΎ роста

  4. Π’Π°Π»Π°Π½Ρ‚
    НанимайтС тСхничСских спСциалистов ΠΈ создавайтС свой Π±Ρ€Π΅Π½Π΄ работодатСля

  5. Π Π΅ΠΊΠ»Π°ΠΌΠ°
    ΠžΠ±Ρ€Π°Ρ‚ΠΈΡ‚Π΅ΡΡŒ ΠΊ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠ°ΠΌ ΠΈ Ρ‚Π΅Ρ…Π½ΠΎΠ»ΠΎΠ³Π°ΠΌ со всСго ΠΌΠΈΡ€Π°

  6. О компании

.

Π’Ρ‹Π·ΠΎΠ² Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ PHP ΠΈΠ· ΠΊΠΎΠΌΠ°Π½Π΄Π½ΠΎΠΉ строки

ΠŸΠ΅Ρ€Π΅ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ стСка

  1. Около
  2. ΠŸΡ€ΠΎΠ΄ΡƒΠΊΡ‚Ρ‹

  3. Для ΠΊΠΎΠΌΠ°Π½Π΄
  1. ΠŸΠ΅Ρ€Π΅ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ стСка
    ΠžΠ±Ρ‰Π΅ΡΡ‚Π²Π΅Π½Π½Ρ‹Π΅ вопросы ΠΈ ΠΎΡ‚Π²Π΅Ρ‚Ρ‹

  2. ΠŸΠ΅Ρ€Π΅ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ стСка для ΠΊΠΎΠΌΠ°Π½Π΄
    Π“Π΄Π΅ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠΈ ΠΈ Ρ‚Π΅Ρ…Π½ΠΎΠ»ΠΎΠ³ΠΈ дСлятся частными знаниями с ΠΊΠΎΠ»Π»Π΅Π³Π°ΠΌΠΈ

  3. Вакансии
    ΠŸΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ ΠΈ связанныС с Π½ΠΈΠΌ тСхничСскиС возмоТности ΠΊΠ°Ρ€ΡŒΠ΅Ρ€Π½ΠΎΠ³ΠΎ роста

  4. Π’Π°Π»Π°Π½Ρ‚
    НанимайтС тСхничСских спСциалистов ΠΈ создавайтС свой Π±Ρ€Π΅Π½Π΄ работодатСля

  5. Π Π΅ΠΊΠ»Π°ΠΌΠ°
    ΠžΠ±Ρ€Π°Ρ‚ΠΈΡ‚Π΅ΡΡŒ ΠΊ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠ°ΠΌ ΠΈ Ρ‚Π΅Ρ…Π½ΠΎΠ»ΠΎΠ³Π°ΠΌ со всСго ΠΌΠΈΡ€Π°

.

Имя сСрвСра PHP ΠΈΠ· ΠΊΠΎΠΌΠ°Π½Π΄Π½ΠΎΠΉ строки

ΠŸΠ΅Ρ€Π΅ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ стСка

  1. Около
  2. ΠŸΡ€ΠΎΠ΄ΡƒΠΊΡ‚Ρ‹

  3. Для ΠΊΠΎΠΌΠ°Π½Π΄
  1. ΠŸΠ΅Ρ€Π΅ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ стСка
    ΠžΠ±Ρ‰Π΅ΡΡ‚Π²Π΅Π½Π½Ρ‹Π΅ вопросы ΠΈ ΠΎΡ‚Π²Π΅Ρ‚Ρ‹

  2. ΠŸΠ΅Ρ€Π΅ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ стСка для ΠΊΠΎΠΌΠ°Π½Π΄
    Π“Π΄Π΅ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠΈ ΠΈ Ρ‚Π΅Ρ…Π½ΠΎΠ»ΠΎΠ³ΠΈ дСлятся частными знаниями с ΠΊΠΎΠ»Π»Π΅Π³Π°ΠΌΠΈ

  3. Вакансии
    ΠŸΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ ΠΈ связанныС с Π½ΠΈΠΌ тСхничСскиС возмоТности ΠΊΠ°Ρ€ΡŒΠ΅Ρ€Π½ΠΎΠ³ΠΎ роста

  4. Π’Π°Π»Π°Π½Ρ‚
    НанимайтС тСхничСских спСциалистов ΠΈ создавайтС свой Π±Ρ€Π΅Π½Π΄ работодатСля

  5. Π Π΅ΠΊΠ»Π°ΠΌΠ°
    ΠžΠ±Ρ€Π°Ρ‚ΠΈΡ‚Π΅ΡΡŒ ΠΊ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠ°ΠΌ ΠΈ Ρ‚Π΅Ρ…Π½ΠΎΠ»ΠΎΠ³Π°ΠΌ со всСго ΠΌΠΈΡ€Π°

  6. О компании

Загрузка…

.

php — ΠžΠ±Π½ΠΎΠ²ΠΈΡ‚ΡŒ Π²Ρ‹Π²ΠΎΠ΄ ΠΊΠΎΠΌΠ°Π½Π΄Π½ΠΎΠΉ строки, Ρ‚.Π΅. для Progress

ΠŸΠ΅Ρ€Π΅ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ стСка

  1. Около
  2. ΠŸΡ€ΠΎΠ΄ΡƒΠΊΡ‚Ρ‹

  3. Для ΠΊΠΎΠΌΠ°Π½Π΄
  1. ΠŸΠ΅Ρ€Π΅ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ стСка
    ΠžΠ±Ρ‰Π΅ΡΡ‚Π²Π΅Π½Π½Ρ‹Π΅ вопросы ΠΈ ΠΎΡ‚Π²Π΅Ρ‚Ρ‹

  2. ΠŸΠ΅Ρ€Π΅ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ стСка для ΠΊΠΎΠΌΠ°Π½Π΄
    Π“Π΄Π΅ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠΈ ΠΈ Ρ‚Π΅Ρ…Π½ΠΎΠ»ΠΎΠ³ΠΈ дСлятся частными знаниями с ΠΊΠΎΠ»Π»Π΅Π³Π°ΠΌΠΈ

  3. Вакансии
    ΠŸΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ ΠΈ связанныС с Π½ΠΈΠΌ тСхничСскиС возмоТности ΠΊΠ°Ρ€ΡŒΠ΅Ρ€Π½ΠΎΠ³ΠΎ роста

  4. Π’Π°Π»Π°Π½Ρ‚
    НанимайтС тСхничСских спСциалистов ΠΈ создавайтС свой Π±Ρ€Π΅Π½Π΄ работодатСля

  5. Π Π΅ΠΊΠ»Π°ΠΌΠ°
    ΠžΠ±Ρ€Π°Ρ‚ΠΈΡ‚Π΅ΡΡŒ ΠΊ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠ°ΠΌ ΠΈ Ρ‚Π΅Ρ…Π½ΠΎΠ»ΠΎΠ³Π°ΠΌ со всСго ΠΌΠΈΡ€Π°

  6. О компании

.

Π”ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ ΠΊΠΎΠΌΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈΠΉ

Π’Π°Ρˆ адрСс email Π½Π΅ Π±ΡƒΠ΄Π΅Ρ‚ ΠΎΠΏΡƒΠ±Π»ΠΈΠΊΠΎΠ²Π°Π½. ΠžΠ±ΡΠ·Π°Ρ‚Π΅Π»ΡŒΠ½Ρ‹Π΅ поля ΠΏΠΎΠΌΠ΅Ρ‡Π΅Π½Ρ‹ *