Skip to content

Fine-tuning on the PHP built-in web server

License

Notifications You must be signed in to change notification settings

natanfelles/php-server

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

PHP Server

Latest release PHP version Packagist downloads

Fine-tuning on the PHP built-in web server

PHP Built-in web server autoindex

See release notes at: https://github.com/natanfelles/php-server/releases

Installation

Composer

Open your terminal and run:

composer global require natanfelles/php-server

Add the composer bin path to your .bashrc:

echo 'export PATH="$PATH:$HOME/.config/composer/vendor/bin"' >> ~/.bashrc

Run:

source ~/.bashrc

Manual

Download and extract the php-server project folder.

Add the php-server alias to your .bashrc:

echo 'alias php-server="~/php-server/bin/php-server"' >> ~/.bashrc

Run:

source ~/.bashrc

Config

You can run the php-server in any folder of your operating system.

Each time you run the php-server command, it will look up if there is a file named php-server.ini in the current directory. If found, your settings will override the default settings.

A quick example file content is:

php = PHP_BINARY
host = localhost
port = 8080
root = ./public
autoindex = true
index = index.php
error_reporting = E_ALL

[ini]
display_errors = 1
display_startup_errors = 1
max_execution_time = 360
post_max_size = 200M
upload_max_filesize = 200M

[server]
ENVIRONMENT = development

You can use the command php-server new to create a new configuration file in the current directory.

Explanation

General Vars

Key Default Value Description
php PHP_BINARY PHP binary path or command
host localhost Server host
port 8080 Server host port
root getcwd() Document root. The location that will be the public root of your website.
autoindex true Determines if the server will list directory contents if it does not find an index file.
index index.html index.php The names of the index files separated by spaces.
error_reporting E_ALL Sets the level of errors that will be reported.

Sections

Section Description
ini Used to set custom php.ini directives.
server Used to set custom Server and execution environment information.

Knowing this, just create (if necessary) a php-server.ini file, run the server and you're done.

Run

As you can see in the config. You can create a php-server.ini file to leave the settings of each project already pre-established.

But, you can also simply run php-server and the server will already be available at http://localhost:8080.

The php-server command can receive some parameters and they are:

Parameter Description
--php PHP binary path or command
--host Server host
--port Server host port
--root Document root

For example, to run the server on a different port:

php-server --port 8081

Or, also with a different version of PHP than the default:

php-server --php php8.4 --port 8081

Right. You get the idea. If you want to run on a different host you can add the host to the hosts file of your operating system.

Contribute

Hello, how nice that you are reading this.

If you have any idea to improve this project or something is not working as it should, do not hesitate to open an issue and if you have solved the problem feel free to open a Pull Request.