ローカルマシン上のPHPサーバー?


161

PHPサイトを構築しようとしていて、PHPファイルをホストにアップロードせずにテストしたいのですが。基本的に、アップロードする前に自分のマシンでテストします。それ、どうやったら出来るの?


1
XAMPPを使用してPHPサーバーをインストールします。Skypeがポート80と443を使用する場合、Apacheサーバーが起動しないことがあります。完全なソリューションはここに提供されていますfeelzdroid.com/2015/12/install-php-server-local-machine.html
Naruto

回答:



379

PHP 5.4以降には組み込みのWebサーバーがあります最近。

ターミナルからコマンドを実行するだけです:

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は「組み込みのWebサーバーで実行する」を意味します。php.net/manual/en/features.commandline.options.php
calipoop

しかし、データベースを保存する場所はどうでしょうか?
Yousef Altaf

1
@YousefAltaf OPは天候を指定していないか、データベースの使用を望んでいません。彼らはPHPサーバーを要求し、これは単にPHPサーバーです。MYSQLサーバーまたはPostGresサーバーを実行する場合、それは別の質問となるでしょう。そのサーバーを使用するようにPHPアプリケーションを構成できます。また、迅速な開発のために、SQLITE DBを使用する必要があります。
GardenRouteGold 2017年

1
PHPビルトインWebサーバーは並列リクエストをサポートしていません:The web server runs a only one single-threaded process, so PHP applications will stall if a request is blocked.。これにより、パフォーマンスの問題が発生する可能性があります。
vikyd 2018

1
@vikydこれは、本格的なアプリケーション開発のためのものではなく、機能をテスト/デバッグしたり、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. Webサーバーを任意のインターフェイスからアクセスできるようにするには、を使用します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

参照:

内蔵Webサーバー


4
0.0.0.0に関するヒントをありがとう、それはどのような魔法の修正でしたか-受け入れられた回答または何かに組み込む必要があります...
calipoop

14

私はよく次のコマンドを使用してPHP Laravelフレームワークをスピンします。

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

上記のコマンドで:- 職人はLaravelに含まれているコマンドラインインターフェースで、内蔵のphpサーバーを呼び出すためにserveを使用します

組み込みのWebサーバーで実行するには

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

ここで、
-S:組み込みのWebサーバーで実行に切り替えます。
-T:組み込みWebサーバーのドキュメントルートを指定するように切り替えます。


8

私はWAMPを使用しています。1つの簡単なインストールウィザード、ApacheおよびPHP用の多数のモジュールが事前設定されており、リモート構成に合わせてオンとオフを簡単に切り替えることができます。


7

さまざまなPHP、MySQL、およびWebサーバーのバージョンから選択でき、またDockerの使用を恐れないオペレーティングシステム用の多目的ローカル開発スタックが必要な場合は、devilboxを使用できます。

devilboxは、完全なLAMPとMEANをサポートし、すべての主要なプラットフォームで実行される、モダンで高度にカスタマイズ可能なドッキングされたPHPスタックです。主な目標は、ローカル開発に必要なバージョンを簡単に切り替えて組み合わせることです。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

リンク:


5

XAMPPをインストールします。MS Windowsを実行している場合は、WAMPもオプションです。




1

Apache Friends XAMPPを使用してください。これにより、Apache HTTPサーバー、PHP 5、およびMySQL 5がセットアップされます(私の知る限り、おそらくそれ以上の数があります)。Apache(またはモジュールのいずれか)を使用するように構成する方法を知っている必要はありません。

Apacheが提供するhtdocsディレクトリ(http:// localhost /からアクセス可能)があり、そこにPHPファイルを置くことができるはずです。私のインストールでは、C:\ xampp \ htdocsにあります。


1

適切なソフトウェアを備えたローカルマシンがある場合:PHPをサポートするWebサーバーの場合、説明したようにできない理由はありません。

私は現在、Windows XPマシンのXAMPPを使用して、(自宅で)KubuntuとLAMPスタックを使用してそれを行っています。



1

AppServはWindowsで実行する小さなプログラムです。

  • Apache
  • PHP
  • MySQL
  • phpMyAdmin

また、Apacheの起動ボタンと停止ボタンも表示されます。これはとても便利だと思います。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.