[英]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 Server , Laravel的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.