Máy chủ PHP trên máy cục bộ?


161

Tôi đang cố gắng xây dựng một trang web PHP và tôi muốn kiểm tra các tệp PHP của mình mà không tải chúng lên máy chủ của mình. Về cơ bản kiểm tra chúng trên máy của tôi trước khi tôi tải chúng lên. Làm thế nào để làm điều đó?


1
sử dụng XAMPP và cài đặt máy chủ PHP. đôi khi nếu skype sử dụng cổng 80 & 443, máy chủ apache sẽ không khởi chạy. Giải pháp hoàn chỉnh được cung cấp tại đây feelzdroid.com/2015/12/install-php-server-local-machine.html
Naruto

Câu trả lời:



379

PHP 5.4 trở lên có máy chủ web tích hợp ngày nay.

Bạn chỉ cần chạy lệnh từ thiết bị đầu cuối:

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

Sau đó, trong trình duyệt của bạn đi http://127.0.0.1:8000và bùng nổ, hệ thống của bạn sẽ hoạt động. (Phải có tệp index.php hoặc index.html để làm việc này.)

Bạn cũng có thể thêm một Bộ định tuyến đơn giản

<?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');
}
?>

Và sau đó chạy lệnh

php -S 127.0.0.1:8000 router.php

Người giới thiệu:


9
Trong trường hợp bất cứ ai thắc mắc, -S và tham chiếu đến các lệnh khác có thể được tìm thấy tại liên kết dưới đây. Cụ thể, -S có nghĩa là "Chạy với máy chủ web tích hợp." php.net/manual/en/features.commandline.options.php
calipoop

Nhưng những gì về cơ sở dữ liệu cần có nơi lưu trữ!
Yousef Altaf

1
@YousefAltaf OP không chỉ định thời tiết hoặc họ không muốn sử dụng cơ sở dữ liệu. Họ đã yêu cầu Máy chủ PHP và đây đơn giản là Máy chủ PHP. Nếu bạn muốn chạy Máy chủ MYSQL hoặc Máy chủ PostGres thì đó sẽ là một câu hỏi khác và bạn có thể định cấu hình Ứng dụng PHP của mình để sử dụng máy chủ nói trên. Ngoài ra, với mục đích phát triển nhanh, SQLITE DB nên làm.
GardenRouteGold

1
Máy chủ web tích hợp PHP không hỗ trợ yêu cầu song song : The web server runs a only one single-threaded process, so PHP applications will stall if a request is blocked.. Điều này có thể gây ra một số vấn đề hiệu suất.
vikyd

1
@vikyd điều này không có nghĩa là không phát triển ứng dụng chính thức, nó chỉ là một cách nhanh chóng để kiểm tra / gỡ lỗi các tính năng hoặc mã IMHO.
GardenRouteGold

39

Đây là một cách đơn giản, chắc chắn để chạy máy chủ php của bạn cục bộ:

php -S 0.0.0.0:<PORT_NUMBER>

Trong đó PORT_NUMBER là một số nguyên từ 1024 đến 49151

Thí dụ: php -S 0.0.0.0:8000

Ghi chú:

  1. Nếu bạn sử dụng localhostchứ không phải 0.0.0.0bạn có thể gặp lỗi từ chối kết nối.

  2. Nếu muốn làm cho máy chủ web có thể truy cập vào bất kỳ giao diện nào, hãy sử dụng 0.0.0.0.

  3. Nếu một yêu cầu URI không chỉ định một tệp, thì index.php hoặc index.html trong thư mục đã cho sẽ được trả về.

Cho tập tin sau (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>";
}
?>

Chạy cái này ...

php -S 0.0.0.0:8000 router.php

... và điều hướng trong trình duyệt của bạn tới http: // localhost: 8000 / và sau đây sẽ được hiển thị:

Welcome to PHP

Tài liệu tham khảo:

Máy chủ web tích hợp


4
Cảm ơn vì lời khuyên liên quan đến 0.0.0.0, đó là cách khắc phục kỳ diệu - nên được đưa vào câu trả lời được chấp nhận hoặc một cái gì đó ...
calipoop

14

Tôi thường sử dụng lệnh sau để quay khung công tác PHP Laravel của mình:

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

Trong lệnh trên: - Artisan là giao diện dòng lệnh đi kèm với Laravel, sử dụng phục vụ để gọi được xây dựng trong máy chủ php

Để chạy với máy chủ web tích hợp.

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

Tại đây,
-S: Chuyển sang Chạy với máy chủ web tích hợp.
-T: Chuyển sang chỉ định gốc tài liệu cho máy chủ web tích hợp.


8

Tôi sử dụng WAMP . Một trình hướng dẫn cài đặt dễ dàng, hàng tấn mô-đun để cấu hình sẵn Apache và PHP và dễ dàng bật và tắt để phù hợp với cấu hình từ xa của bạn.


7

Nếu bạn muốn có một ngăn xếp phát triển cục bộ đa mục đích cho bất kỳ hệ điều hành nào mà bạn có thể chọn từ các phiên bản máy chủ PHP, MySQL và Web khác nhau và cũng không sợ sử dụng Docker, bạn có thể sử dụng Devilbox .

Devilbox là một ngăn xếp PHP dockerized hiện đại và tùy biến cao hỗ trợ LAMP và MEAN đầy đủ và chạy trên tất cả các nền tảng chính. Mục tiêu chính là dễ dàng chuyển đổi và kết hợp bất kỳ phiên bản nào cần thiết cho phát triển địa phương. Nó hỗ trợ số lượng dự án không giới hạn mà các bản ghi vhost và DNS được tạo tự động. Email bắt tất cả và các công cụ phát triển phổ biến cũng sẽ có mặt tại dịch vụ của bạn. Cấu hình là không cần thiết, vì mọi thứ đều được thiết lập sẵn với lưu trữ ảo hàng loạt.

Bắt nó và chạy là khá đơn giản:

# 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

hộp đựng quỷ

Liên kết:





1

Sử dụng XAMPP của bạn bè Apache . Nó sẽ thiết lập máy chủ HTTP HTTP, PHP 5 và MySQL 5 (theo như tôi biết, có lẽ còn nhiều hơn thế). Bạn không cần phải biết cách định cấu hình apache (hoặc bất kỳ mô-đun nào) để sử dụng nó.

Bạn sẽ có một thư mục htdocs mà Apache sẽ phục vụ (có thể truy cập bằng http: // localhost / ) và có thể đặt các tệp PHP của bạn ở đó. Với cài đặt của tôi, nó có tại C: \ xampp \ htdocs.


1

Nếu bạn có một máy cục bộ với phần mềm phù hợp: máy chủ web có hỗ trợ PHP, không có lý do gì bạn không thể làm như bạn mô tả.

Hiện tại tôi đang làm điều đó với XAMPP trên máy Windows XP và (ở nhà) với Kubfox và ngăn xếp LAMP.



1

AppServ là một chương trình nhỏ trong Windows để chạy:

  • Apache
  • PHP
  • MySQL
  • phpMyAdmin

Nó cũng sẽ cung cấp cho bạn một nút khởi động và dừng cho Apache. Mà tôi thấy rất hữu ích.

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.