https://github.com/horizom/dev-server
Reverse proxy for PHP built-in server which supports multiprocessing and TLS/SSL encryption
https://github.com/horizom/dev-server
builtin-server multi-process php ssl tls
Last synced: 7 months ago
JSON representation
Reverse proxy for PHP built-in server which supports multiprocessing and TLS/SSL encryption
- Host: GitHub
- URL: https://github.com/horizom/dev-server
- Owner: horizom
- License: mit
- Created: 2022-08-23T13:49:45.000Z (over 3 years ago)
- Default Branch: master
- Last Pushed: 2022-08-23T14:01:22.000Z (over 3 years ago)
- Last Synced: 2025-06-08T20:52:35.284Z (10 months ago)
- Topics: builtin-server, multi-process, php, ssl, tls
- Language: PHP
- Homepage:
- Size: 29.3 KB
- Stars: 1
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# Horizom Dev Server
Reverse proxy for PHP built-in server which supports multiprocessing and TLS/SSL encryption.
## Installing
### Global install
```shell script
composer global require horizom/dev-server
```
If not yet, you must add **`~/.composer/vendor/bin`** to `$PATH`.
Append the following statement to `~/.bashrc`, `~/.zshrc` or what not.
```bash
export PATH="$HOME/.composer/vendor/bin:$PATH"
```
### Local install only for development environment
```shell script
composer require --dev horizom/dev-server
```
Use **`vendor/bin/horizom-serve`** as the execution path.
## Usage
### Quick start
```shell script
horizom-serve -S localhost -s localhost -t public
```
2 servers will start with the directory `public` as the document root:
- `http://localhost:8000`
- `https://localhost:44300`
Servers start with first unoccupied port within range depending on a scheme.
| Scheme | Default | Range |
| ------- | ------- | ----------- |
| `HTTP` | 8000 | 8000-8099 |
| `HTTPS` | 44300 | 44300-44399 |
### Customize ports
```shell script
horizom-serve -S localhost:8080 -s localhost:4000 -t public
```
2 servers will start with the directory `public` as the document root:
- `http://localhost:8080`
- `https://localhost:4000`
### Command Reference
```ShellSession
mpyw@localhost:~$ horizom-serve -h
Usage:
horizom-serve
Example:
horizom-serve -S localhost:8000 -s localhost:44300
[Required]
-S ":" of an HTTP server. Multiple arguments can be accepted.
-s ":" of an HTTPS server. Multiple arguments can be accepted.
[Optional]
-n The number of PHP built-in server clusters, from 1 to 20. Default is 10.
-t Path for the document root. Default is the current directory.
-r Path for the router script. Default is empty.
-c Path for the PEM-encoded certificate.
Default is "/Users/username/.composer/vendor/horizom/dev-server/certificate.pem".
Restrictions:
- The option -s is only supported on PHP 5.6.0 or later.
- Access logs will not be displayed on Windows.
username@localhost:~$
```
## Note for Windows users
Unfortunately, `cmd.exe` has no option to run via shebang `#!/usr/bin/env php`, so you need to create the following batch file in the proper directory.
### For Standalone PHP
```bat
@echo OFF
"C:\php\php.exe" "%HOMEPATH%\.composer\vendor\horizom\dev-server\horizom-serve" %*
```
### For XAMPP
```bat
@echo OFF
"C:\xampp\php\php.exe" "%HOMEPATH%\.composer\vendor\horizom\dev-server\horizom-serve" %*
```
## License
[MIT license](LICENSE)