protected function execute(InputInterface $input, OutputInterface $output)
 {
     $filename = $input->getOption('file');
     $config = $this->getConfig($input);
     list($name, $port) = explode(':', $input->getArgument('name') . ':80');
     $listenIPv4 = new Directive('listen', [new Param($port)]);
     $listenIPv6 = new Directive('listen', [new Param("[::]:{$port}"), new Param('default'), new Param('ipv6only=on')]);
     // TODO: Find server by name
     $server = new Server([$listenIPv4, $listenIPv6]);
     if ($name != 'localhost' && !empty($name)) {
         $server->append(new Directive('server_name', [new Param($name)]));
     }
     $config->append($server);
     $builder = new Builder();
     $builder->append($server);
     $builder->dumpFile($filename);
 }
Exemplo n.º 2
0
    error_page 404 /404.html;

    error_page 500 502 503 504 /50x.html;
    location = /50x.html {
        root /usr/share/nginx/www;
    }

    # pass the PHP scripts to FastCGI server listening on the php-fpm socket
    location ~ \\.php\$ {
        try_files \$uri =404;
        fastcgi_pass unix:/var/run/php5-fpm.sock;
        fastcgi_index index.php;
        fastcgi_param SCRIPT_FILENAME \$document_root\$fastcgi_script_name;
        include fastcgi_params;
    }
}
CONFIG;
$parser = new Parser();
$defaultConfig = $parser->parse($config);
/** @var Server $defaultServers[] */
$defaultServers = $defaultConfig->search(function (Node $node) {
    return $node instanceof Server;
});
$builder = new Builder();
if (count($defaultServers) > 0) {
    /** @var Server $defaultServer */
    foreach ($defaultServers as $defaultServer) {
        $builder->appendServerNode($defaultServer);
    }
}
Exemplo n.º 3
0
<?php

use Madkom\NginxConfigurator\Builder;
use Madkom\NginxConfigurator\Config\Location;
use Madkom\NginxConfigurator\Node\Directive;
use Madkom\NginxConfigurator\Node\Literal;
use Madkom\NginxConfigurator\Node\Param;
require __DIR__ . '/../vendor/autoload.php';
$builder = new Builder();
$server = $builder->addServerNode(80);
$server->append(new Directive('error_log', [new Param('/var/log/nginx/error.log'), new Param('debug')]));
$server->append(new Location(new Param('/test'), null, [new Directive('error_page', [new Param('401'), new Param('@unauthorized')]), new Directive('set', [new Param('$auth_user'), new Literal('none')]), new Directive('auth_request', [new Param('/auth')]), new Directive('proxy_pass', [new Param('http://test-service')])]));
$server->append(new Location(new Param('/auth'), null, [new Directive('proxy_pass', [new Param('http://*****:*****@unauthorized'), null, [new Directive('return', [new Param('302'), new Param('/login?backurl=$request_uri')])]));
$server->append(new Location(new Param('/login'), null, [new Directive('expires', [new Param('-1')]), new Directive('proxy_pass', [new Param('http://identity-provider-service')]), new Directive('proxy_bind', [new Param('$server_addr')]), new Directive('proxy_redirect', [new Param('http://$host'), new Param('https://$host')]), new Directive('proxy_set_header', [new Param('Content-Length'), new Literal("")]), new Directive('proxy_pass_request_body', [new Param('off')])]));
print $builder->dump();