Coder Social home page Coder Social logo

php-server-manager's Introduction

PHP Server Manager

Package to manage the PHP built-in server from node.

Install

yarn add php-server-manager

Usage

const PHPServer = require('php-server-manager');

const server = new PHPServer();

server.run(cb); // http://localhost:8000

Callback vs Promise

You can pass a callback to the run method, this will get called when the PHP server is up and running. If you don't pass a callback to the run method, a promise will be returned that resolves when the PHP server is up and running.

Configuration

Name Default Description
php php The php command file
host 127.0.0.1 The server's host
port 8000 The port used
directory null The document root. By default is the current working directory
script null The "router" script
stdio inherit stdio option passed to the spawned process - https://nodejs.org/api/child_process.html#child_process_options_stdio
directives {} An object with the custom PHP directives
config null The path of a custom php.ini file
env process.env The environment variables passed

Example:

const PHPServer = require('php-server-manager');

const server = new PHPServer({
    port: 3000,
    directives: {
        display_errors: 0,
        expose_php: 0
    }
});

server.run();

Quick use

You can use the static function start() to create and run a PHPServer in a single line:

PHPServer.start();

Use with gulp

gulp.task('php-server', () =>
    PHPServer.start({
        directory: 'public',
        script: 'public/index.php'
    })
);

php-server-manager's People

Contributors

oscarotero avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar

php-server-manager's Issues

php server is not getting started.

this is my main.js file
if I install php in my system it's working and if I uninstall it's not working
it should run the php from php directory of the app but it's throwing error server is not started

const electron = require('electron')
const path = require('path')

const BrowserWindow = electron.BrowserWindow
const app = electron.app

app.on('ready', () => {
createWindow()
})

var phpServer = require('php-server-manager');
const PHPServer = require('php-server-manager');
const port = 8001, host = '127.0.0.1';
const serverUrl = http://${host}:${port};

const server = new PHPServer({
php: ${__dirname}/php,
stdio: 'inherit',
port: 8001,
directory: ${__dirname}/www/public,
directives: {
display_errors: 1,
expose_php: 1
},
config: ${__dirname}/php/php.ini,
script: ${__dirname}/www/server.php,
});

let mainWindow

function createWindow() {
// Create a PHP Server

server.run();

// phpServer.createServer({
// port: port,
// hostname: host,
// base: ${__dirname}/www/public,
// keepalive: false,
// open: false,
// bin: ${__dirname}/php/php.exe,
// router: __dirname + '/www/server.php'
// });

// Create the browser window.
const {
width,
height
} = electron.screen.getPrimaryDisplay().workAreaSize
mainWindow = new BrowserWindow({
width: width,
height: height,
show: false,
autoHideMenuBar: true
})

mainWindow.loadURL(serverUrl)

mainWindow.webContents.once('dom-ready', function () {
mainWindow.show()
mainWindow.maximize();
// mainWindow.webContents.openDevTools()
});

// Emitted when the window is closed.
mainWindow.on('closed', function () {
server.close();
mainWindow = null;
})
}

// This method will be called when Electron has finished
// initialization and is ready to create browser windows.
// Some APIs can only be used after this event occurs.
//app.on('ready', createWindow) // <== this is extra so commented, enabling this can show 2 windows..

// Quit when all windows are closed.
app.on('window-all-closed', function () {
// On OS X it is common for applications and their menu bar
// to stay active until the user quits explicitly with Cmd + Q
if (process.platform !== 'darwin') {
// PHP SERVER QUIT
server.close();
app.quit();
}
})

app.on('activate', function () {
// On OS X it's common to re-create a window in the app when the
// dock icon is clicked and there are no other windows open.
if (mainWindow === null) {
createWindow()
}
})

PHPServer redirect not working in electron

my server:

phpServer.createServer({
    port: port,
    hostname: host,
    base: `${__dirname}/`,
    keepalive: false,
    open: false,
    bin: `${__dirname}/php/php.exe`,
    router: __dirname + '/index.php',
    directives: {
      display_errors: 1,
      expose_php: 0
  }
  });

and this is a simple code to redirect to another page with href:

<a href="http://localhost:8000/second/second.php">open second</a>

and this is not working...

PHP server not started. Retrying Electron

I was using this module to start a php webserver inside my electron app. All works fine, the server will start correctly, but in the console it will be logged until I exit from the app this message: PHP server not started. Retrying...
I read the other issue about the child process, but I don't think this is related to my issue. Any solution to solve this?

Hide PHP console window

When I build my electron application and then run it, a PHP server console window opens in addition to the application window. Closing this console window stops the PHP server. Is there any way to hide this window?

renderer.js

I tried using the "renderer.js" to implement my program, but it does not work. The error "cannot find module renderer.js" happens every time. Is it possible to use renderer.js? How should I proceed?

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.