Server PHP pada mesin lokal?

161

Saya mencoba membangun situs PHP dan saya ingin menguji file PHP saya tanpa mengunggahnya ke host saya. Pada dasarnya mengujinya di mesin saya sendiri sebelum saya mengunggahnya. Bagaimana aku melakukan itu?

Kozy
sumber
1
gunakan XAMPP dan instal server PHP. terkadang jika skype menggunakan port 80 & 443, server apache tidak akan diluncurkan. Solusi lengkap disediakan di sini feelzdroid.com/2015/12/install-php-server-local-machine.html
Naruto

Jawaban:

380

PHP 5.4 dan yang lebih baru memiliki server web built-in akhir-akhir ini.

Anda cukup menjalankan perintah dari terminal:

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

Kemudian di browser Anda buka http://127.0.0.1:8000dan booming, sistem Anda harus aktif dan berjalan. (Harus ada file index.php atau index.html agar ini berfungsi.)

Anda juga bisa menambahkan Router sederhana

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

Dan kemudian jalankan perintah

php -S 127.0.0.1:8000 router.php

Referensi:

GardenRouteGold
sumber
9
Jika ada yang bertanya-tanya, -S dan referensi ke perintah lain dapat ditemukan di tautan di bawah ini. Secara khusus, -S berarti "Jalankan dengan server web bawaan." php.net/manual/en/features.commandline.options.php
calipoop
tapi bagaimana dengan Databas yang seharusnya menyimpannya!
Yousef Altaf
1
@YousefAltaf OP tidak menentukan cuaca atau tidak, mereka ingin database digunakan. Mereka meminta Server PHP dan ini hanyalah Server PHP. Jika Anda ingin menjalankan MYSQL Server atau PostGres Server maka itu akan menjadi pertanyaan lain dan Anda dapat mengonfigurasi Aplikasi PHP Anda untuk menggunakan server tersebut. Juga untuk tujuan pengembangan cepat, SQLITE DB harus dilakukan.
GardenRouteGold
1
PHP Built-in web server tidak mendukung permintaan paralel: The web server runs a only one single-threaded process, so PHP applications will stall if a request is blocked.. Ini dapat menyebabkan beberapa masalah kinerja.
vikyd
1
@vikyd ini bukan berarti bukan untuk pengembangan aplikasi yang lengkap itu hanya cara cepat untuk menguji / men-debug fitur atau kode IMHO.
GardenRouteGold
39

Ini adalah cara yang sederhana dan pasti untuk menjalankan server php Anda secara lokal:

php -S 0.0.0.0:<PORT_NUMBER>

Di mana PORT_NUMBER adalah bilangan bulat dari 1024 hingga 49151

Contoh: php -S 0.0.0.0:8000

Catatan:

  1. Jika Anda menggunakan localhostdaripada 0.0.0.0Anda dapat menekan koneksi menolak kesalahan.

  2. Jika ingin membuat server web dapat diakses oleh antarmuka apa pun, gunakan 0.0.0.0.

  3. Jika permintaan URI tidak menentukan file, maka index.php atau index.html di direktori yang diberikan dikembalikan.

Diberikan file berikut (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>";
}
?>

Jalankan ini ...

php -S 0.0.0.0:8000 router.php

... dan navigasi di browser Anda ke http: // localhost: 8000 / dan yang berikut ini akan ditampilkan:

Welcome to PHP

Referensi:

Server web bawaan

l3x
sumber
4
Terima kasih atas tipnya tentang 0.0.0.0, apa itu perbaikan ajaib - harus dimasukkan ke dalam jawaban yang diterima atau sesuatu ...
calipoop
14

Saya sering menggunakan perintah berikut untuk memutar kerangka PHP Laravel saya:

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

Dalam perintah di atas: - Artisan adalah antarmuka baris perintah yang disertakan dengan Laravel yang menggunakan serve to call built in server php

Untuk Jalankan dengan server web bawaan.

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

Di sini,
-S: Beralih ke Jalankan dengan server web bawaan.
-T: Beralih untuk menentukan root dokumen untuk server web bawaan.

Amitesh Bharti
sumber
8

Saya menggunakan WAMP . Satu wizard penginstalan yang mudah, banyak modul untuk untuk Apache dan PHP yang telah dikonfigurasikan sebelumnya dan mudah dinyalakan dan dimatikan agar sesuai dengan konfigurasi jarak jauh Anda.

Chris Sobolewski
sumber
7

Jika Anda menginginkan tumpukan pengembangan lokal serba guna untuk sistem operasi mana pun yang dapat Anda pilih dari berbagai versi PHP, MySQL, dan server Web dan juga tidak takut menggunakan Docker, Anda bisa menggunakan devilbox .

Devilbox adalah tumpukan PHP dockerized modern dan sangat dapat disesuaikan mendukung LAMP penuh dan MEAN dan berjalan pada semua platform utama. Tujuan utamanya adalah untuk dengan mudah beralih dan menggabungkan versi apa pun yang diperlukan untuk pengembangan lokal. Ini mendukung sejumlah proyek yang tidak terbatas di mana vhosts dan catatan DNS dibuat secara otomatis. Email catch-all dan alat pengembangan populer akan siap melayani Anda juga. Konfigurasi tidak diperlukan, karena semuanya sudah diatur sebelumnya dengan hosting virtual massal.

Menjalankan dan menjalankannya cukup mudah:

# 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

Tautan:

sitopia
sumber
5

Instal XAMPP . Jika Anda menjalankan MS Windows, WAMP juga merupakan opsi.

outis
sumber
4

MAMP jika Anda menggunakan MAC MAMP

Joey Blake
sumber
1

Gunakan Apache Friends XAMPP . Ini akan mengatur server HTTP Apache, PHP 5 dan MySQL 5 (sejauh yang saya tahu, mungkin ada beberapa lebih dari itu). Anda tidak perlu tahu cara mengkonfigurasi apache (atau modul apa saja) untuk menggunakannya.

Anda akan memiliki direktori htdocs yang akan dilayani oleh Apache (dapat diakses dengan http: // localhost / ) dan harus dapat meletakkan file PHP Anda di sana. Dengan instalasi saya, itu di C: \ xampp \ htdocs.

Carson Myers
sumber
1

Jika Anda memiliki mesin lokal dengan perangkat lunak yang tepat: server web dengan dukungan untuk PHP, tidak ada alasan mengapa Anda tidak dapat melakukan seperti yang Anda gambarkan.

Saya melakukannya saat ini dengan XAMPP pada mesin Windows XP, dan (di rumah) dengan Kubuntu dan tumpukan LAMP.

pavium
sumber
1

AppServ adalah program kecil di Windows untuk dijalankan:

  • Apache
  • PHP
  • MySQL
  • phpMyAdmin

Ini juga akan memberi Anda tombol startup dan stop untuk Apache. Yang menurut saya sangat berguna.

M. Sundstrom
sumber