เซิร์ฟเวอร์ PHP บนเครื่องโลคอล


161

ฉันพยายามสร้างเว็บไซต์ PHP และฉันต้องการทดสอบไฟล์ PHP ของฉันโดยไม่ต้องอัปโหลดไปยังโฮสต์ของฉัน ทำการทดสอบบนเครื่องของฉันก่อนที่จะอัพโหลด ฉันจะทำอย่างไร


1
ใช้ XAMPP และติดตั้งเซิร์ฟเวอร์ PHP บางครั้งหาก skype ใช้พอร์ต 80 & 443 เซิร์ฟเวอร์ apache จะไม่เปิดขึ้น โซลูชันที่สมบูรณ์มีให้ที่นี่feelzdroid.com/2015/12/install-php-server-local-machine.html
Naruto

คำตอบ:


57

ติดตั้งและเรียกใช้ XAMPP: http://www.apachefriends.org/en/xampp.html


เพียงแค่เพิ่มบทความนี้สำหรับทุกคนที่กำลังจะเป็น XAMPP / MAMP: dwuser.com/education/content/ …
Richard Fu

22
การใช้php -S localhost:8000เป็นตัวเลือกที่ง่ายกว่าโดยไม่ต้องติดตั้งอะไรเพิ่มเติม
alanwsx

380

PHP 5.4 และใหม่กว่ามีเว็บเซิร์ฟเวอร์ในตัวในปัจจุบัน

คุณเพียงแค่เรียกใช้คำสั่งจากเทอร์มินัล:

cd path/to/your/app
php -S 127.0.0.1:8000

จากนั้นในเบราว์เซอร์ของคุณไปถึงhttp://127.0.0.1:8000แล้วระบบของคุณควรจะเปิดใช้งาน (ต้องมีไฟล์ index.php หรือ index.html เพื่อให้สามารถใช้งานได้)

คุณสามารถเพิ่มเราเตอร์แบบง่ายได้เช่นกัน

<?php
// router.php
if (preg_match('/\.(?:png|jpg|jpeg|gif)$/', $_SERVER["REQUEST_URI"])) {
    return false;    // serve the requested resource as-is.
} else { 
    require_once('resolver.php');
}
?>

จากนั้นเรียกใช้คำสั่ง

php -S 127.0.0.1:8000 router.php

อ้างอิง:


9
ในกรณีที่มีคนสงสัยว่า -S และการอ้างอิงถึงคำสั่งอื่น ๆ สามารถดูได้ที่ลิงค์ด้านล่าง โดยเฉพาะอย่างยิ่ง -S หมายถึง "ทำงานกับเว็บเซิร์ฟเวอร์ในตัว" php.net/manual/en/features.commandline.options.php
calipoop

แต่สิ่งที่เกี่ยวกับฐานข้อมูลมันควรจะมีสถานที่ที่จะเก็บไว้ใน!
Yousef Altaf

1
@YousefAltaf OP ไม่ได้ระบุสภาพอากาศหรือไม่ต้องการให้มีการใช้ฐานข้อมูล พวกเขาถามหาเซิร์ฟเวอร์ PHP และนี่เป็นเพียงเซิร์ฟเวอร์ PHP หากคุณต้องการเรียกใช้เซิร์ฟเวอร์ MYSQL หรือเซิร์ฟเวอร์ PostGres นั่นจะเป็นคำถามอื่นและคุณสามารถกำหนดค่าแอปพลิเคชัน PHP ของคุณให้ใช้เซิร์ฟเวอร์ดังกล่าวได้ นอกจากนี้เพื่อวัตถุประสงค์ในการพัฒนาอย่างรวดเร็ว SQLITE DB ควรทำ
GardenRouteGold

1
PHP Built-in The web server runs a only one single-threaded process, so PHP applications will stall if a request is blocked.เว็บเซิร์ฟเวอร์ไม่สนับสนุนคำขอขนาน: นี่อาจทำให้เกิดปัญหาประสิทธิภาพการทำงาน
vikyd

1
@vik ไม่ได้หมายความว่าสำหรับการพัฒนาแอพพลิเคชั่นที่สมบูรณ์ แต่เป็นเพียงวิธีการทดสอบ / แก้ไขข้อบกพร่องหรือรหัส IMHO
GardenRouteGold

39

นี่เป็นวิธีที่ง่ายและแน่นอนในการเรียกใช้เซิร์ฟเวอร์ php ในเครื่อง:

php -S 0.0.0.0:<PORT_NUMBER>

โดยที่ PORT_NUMBER เป็นจำนวนเต็มตั้งแต่ 1024 ถึง 49151

ตัวอย่าง: php -S 0.0.0.0:8000

หมายเหตุ:

  1. หากคุณใช้localhostมากกว่าที่0.0.0.0คุณจะได้รับการเชื่อมต่อปฏิเสธข้อผิดพลาด

  2. 0.0.0.0หากต้องการที่จะทำให้เว็บเซิร์ฟเวอร์ที่สามารถเข้าถึงอินเตอร์เฟซใดใช้

  3. หากคำร้องขอ URI ไม่ได้ระบุไฟล์ดังนั้น index.php หรือ index.html ในไดเร็กทอรีที่กำหนดจะถูกส่งคืน

รับไฟล์ดังต่อไปนี้ (router.php)

<?php
// router.php
if (preg_match('/\.(?:png|jpg|jpeg|gif)$/', $_SERVER["REQUEST_URI"])) {
    return false;    // serve the requested resource as-is.
} else { 
    echo "<p>Welcome to PHP</p>";
}
?>

เรียกใช้สิ่งนี้ ...

php -S 0.0.0.0:8000 router.php

... และนำทางในเบราว์เซอร์ของคุณไปยังhttp: // localhost: 8000 /และต่อไปนี้จะปรากฏขึ้น:

Welcome to PHP

อ้างอิง:

เว็บเซิร์ฟเวอร์ในตัว


4
ขอบคุณสำหรับเคล็ดลับเกี่ยวกับ 0.0.0.0 สิ่งที่แก้ไขมันเป็นมายากล - ควรจะรวมอยู่ในคำตอบที่ได้รับการยอมรับหรือบางสิ่งบางอย่าง ...
calipoop

14

ฉันมักจะใช้คำสั่งต่อไปนี้เพื่อหมุนกรอบงาน PHP Laravel ของฉัน:

$ php artisan serve --port=8080
or
$ php -S localhost:8080 -t public/

ในคำสั่งดังกล่าว: - Artisanเป็นอินเตอร์เฟสบรรทัดคำสั่งที่มาพร้อมกับ Laravel ซึ่งใช้การบริการเพื่อโทรในตัวเซิร์ฟเวอร์ php

ในการทำงานด้วยเว็บเซิร์ฟเวอร์ในตัว

 php -S <addr>:<port> -T

ที่นี่
-S: เปลี่ยนเป็นเรียกใช้ด้วยเว็บเซิร์ฟเวอร์ในตัว
-T: สลับเพื่อระบุรูทเอกสารสำหรับเว็บเซิร์ฟเวอร์ในตัว


8

ผมใช้WAMP วิซาร์ดการติดตั้งง่ายตัวเดียวโมดูลจำนวนมากสำหรับ Apache และ PHP ที่กำหนดค่าไว้ล่วงหน้าและเปิดและปิดได้ง่ายเพื่อให้ตรงกับการกำหนดค่าระยะไกลของคุณ


7

หากคุณต้องการสแต็คการพัฒนาในพื้นที่อเนกประสงค์สำหรับระบบปฏิบัติการใด ๆ ที่คุณสามารถเลือกได้จาก PHP, MySQL และเว็บเซิร์ฟเวอร์เวอร์ชั่นต่าง ๆ และไม่กลัวที่จะใช้ Docker คุณสามารถไปที่Devilboxได้

The devilbox เป็นสแต็ก PHP ที่ทันสมัยและปรับแต่งได้ตามความต้องการซึ่งรองรับ LAMP และ MEAN เต็มรูปแบบและทำงานบนแพลตฟอร์มหลักทั้งหมด เป้าหมายหลักคือการสลับและรวมเวอร์ชันใด ๆ ที่จำเป็นสำหรับการพัฒนาในท้องถิ่นได้อย่างง่ายดาย รองรับจำนวนโครงการที่ vhosts และ DNS สร้างขึ้นโดยอัตโนมัติ เครื่องมือจับใจและการพัฒนาอีเมลที่เป็นที่นิยมจะอยู่ที่บริการของคุณเช่นกัน ไม่จำเป็นต้องทำการกำหนดค่าเนื่องจากทุกอย่างได้รับการตั้งค่าล่วงหน้าด้วยโฮสติ้งเสมือนจริงจำนวนมาก

การเริ่มต้นใช้งานและการใช้งานนั้นค่อนข้างตรงไปตรงมา:

# Get the devilbox
$ git clone https://github.com/cytopia/devilbox
$ cd devilbox

# Create docker-compose environment file
$ cp env-example .env

# Edit your configuration
$ vim .env

# Start all containers
$ docker-compose up

devilbox

ลิงค์:





1

ใช้Apache เพื่อน XAMPP มันจะตั้งค่าเซิร์ฟเวอร์ Apache HTTP, PHP 5 และ MySQL 5 (เท่าที่ฉันรู้ คุณไม่จำเป็นต้องรู้วิธีกำหนดค่า apache (หรือโมดูลใด ๆ ) เพื่อใช้งาน

คุณจะมีไดเรกทอรี htdocs ซึ่ง Apache จะให้บริการ (สามารถเข้าถึงได้โดยhttp: // localhost / ) และควรวางไฟล์ PHP ของคุณไว้ที่นั่น ด้วยการติดตั้งของฉันมันอยู่ที่ C: \ xampp \ htdocs


1

หากคุณมีเครื่องที่มีซอฟต์แวร์ที่ถูกต้อง: เว็บเซิร์ฟเวอร์ที่รองรับ PHP ไม่มีเหตุผลว่าทำไมคุณไม่ทำตามที่อธิบาย

ฉันกำลังทำมันกับ XAMPP ในเครื่อง Windows XP และ (ที่บ้าน) กับ Kubuntu และ LAMP stack



1

AppServเป็นโปรแกรมขนาดเล็กใน Windows ที่จะเรียกใช้:

  • อาปาเช่
  • PHP
  • MySQL
  • phpMyAdmin

นอกจากนี้ยังจะให้คุณเริ่มต้นและปุ่มหยุดสำหรับ Apache ซึ่งฉันพบว่ามีประโยชน์มาก

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.