2016-06-03 6 views
0

Ich habe eine Aufgabe in Laravel, um eine nginx.conf-Datei im Speicherordner zu erstellen und die Datei mit Nginx-Befehl zu testen. Ich habe eine Konfigurationsdatei 'nginx.conf' im Speicherordner erstellt und ich habe versucht, mit Hilfe von Nginx-Befehl, shell_exec() oder exec() zu testen, aber ich bekomme den Fehler 'Berechtigung verweigert'. HierWie nginx Konfigurationsdatei in Laravel oder PHP zu testen?

ist die Kommandozeile I gefolgt nginx.conf Datei https://www.nginx.com/resources/wiki/start/topics/tutorials/commandline/#

NginxController.php

public function nginxConfig(){ 
     $path    = storage_path('app/nginx/nginx.conf'); //"/home/vagrant/Code/Laravel/storage/app/nginx.conf" 
     /*$change_mode  = exec('chmod -R 755 /home/vagrant/Code/Laravel/storage/app/nginx 2>&1');*/ 
     $config   = exec('/home/vagrant/Code/Laravel/storage/app/nginx -t 2>&1'); 
     dd($config); 
     /*$restart_config = shell_exec('/etc/init.d/nginx restart'); 
     $reload   = shell_exec('nginx -s reload');*/ 
    } 

Nachricht zu testen bekommen

"sh: 1: /home/vagrant/Code/Laravel/storage/app/nginx: Permission denied" 

nginx.conf

server { 
listen 443 ssl http2 

root /var/www/google.de/beta.google.de 
index index.html index.htm index.php 

server_name beta.google.de 

include var/www/includes/contao 
include var/www/includes/shopware 

location ~* ^.+\.(ogg|ogv|svg|svgz|eot|otf|woff|mp4|ttf|rss|atom|jpg|jpeg|gif|png|ico|zip|tgz|gz|rar|bz2|doc|xls|exe|ppt|tar|mid|midi|wav|bmp|rtf)$ { 
         access_log off; log_not_found off; expires max; 
  } 
} 

Antwort

0

Leider kann man es nicht ohne sudo so, was Sie können versuchen, ist OpenSSH Server und Laravel's Envoy fügen Sie Ihre privaten SSH-Schlüssel zu root autorisierten Schlüssel zu installieren und dann versuchen, diese Envoy in zu schreiben mit Root-Zugriff. Die Envoy.blade.php wird wie folgt aussehen:

@servers(['nginx' => isset($server) ? $server : '[email protected]']) 

@task('testconf', ['on' => 'nginx']) 
    {-- here you do what you whant to check --} 
@endtask 

dann in PHP Sie nur addinf shell Ausführung des Gesandten Befehl wie:

envoy run testconf