2016-06-03 1 views
0

У меня есть задача в Laravel создать файл nginx.conf в папке хранилища и протестировать файл с помощью команды nginx. Я создал файл конфигурации «nginx.conf» в папке хранилища, и я попытался протестировать с помощью команды nginx, shell_exec() или exec(), но я получаю ошибку «Permission denied».Как проверить конфигурационный файл nginx в laravel или php?

Вот командная строка я следовал, чтобы проверить nginx.conf файлу 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');*/ 
    } 

сообщение получать

"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; 
  } 
} 

ответ

0

К сожалению, вы не можете сделать это без sudo так что вы можете попробовать это установить OpenSSH Server и Laravel's Envoy добавить свой секретный ключ SSH для авторизованных ключей корневого, а затем попытаться написать в Envoy с правами суперпользователя. Envoy.blade.php будет выглядеть следующим образом:

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

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

Тогда в PHP вы просто addinf shell выполнения команды посланника, как:

envoy run testconf 
Смежные вопросы