繁体   English   中英

如何在Laravel或PHP中测试Nginx配置文件?

[英]How to test nginx config file in laravel or php?

我在Laravel中有一个任务,在存储文件夹中创建一个nginx.conf文件,并使用nginx命令测试该文件。 我在存储文件夹中创建了一个配置文件'nginx.conf',并尝试在nginx命令,shell_exec()或exec()的帮助下进行测试,但出现错误“权限被拒绝”。

这是我用来测试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;
  }
}

不幸的是,如果没有sudo ,您将无法执行此操作,因此,您可以尝试安装OpenSSH ServerLaravel的Envoy将您的私密ssh密钥添加到root的授权密钥中,然后尝试使用具有root访问权限的Envoy来编写它。 Envoy.blade.php将如下所示:

@servers(['nginx' => isset($server) ? $server : 'root@localhost'])

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

然后在PHP中,只需添加envoy命令的shell执行,如:

envoy run testconf

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM