Ubunt20.4中配置普通用户使用 php 和 nginx 同时 php 命令行调用nginx 重启

最近有时间回顾了以前的一个项目,类似于微服务的形式。项目主要是将众多的小项目动态加载到服务器上,后台管理员可以进行小项目管理。还有部分需要使用 nginx 代理 docker服务的场景(这块先不说,有时间上了补上)。

目录

技术点需要去实现

一、添加用户组

二、配置nginx user 改为普通的用户 www-data

三、对nginx做权限处理方便 php调用

四、修改php-fpm的配置

五、php调用nginx重新加载命令,随意写一个test.php的文件执行nginx命令

六、写在最后


技术点需要去实现

1.首先是nginx的多服务配置,也就是多端口的使用。

2.nginx的动态加载配置文件。基础命令 nginx -s reload 的动态使用。

3.php对nginx的状态操作权限,及php对linux命令行操作 cli模式。

4.nginx 的反向代理实现代理docker,身份验证需求等(以后写)

一、添加用户组

查看用户组

cat /etc/group
创建新的用户组
sudo addgroup www-data
创建新的用户

sudo adduser www-data
把用户添加到用户组

sudo gpasswd -a www-data www-data

二、配置nginx user 改为普通的用户 www-data

user www-data www-data;
worker_processes auto;
pid /run/nginx.pid;
include /etc/nginx/modules-enabled/*.conf;

events {
	worker_connections 768;
	# multi_accept on;
}

http {
	sendfile on;
	tcp_nopush on;
	tcp_nodelay on;
	keepalive_timeout 65;
	types_hash_max_size 2048;
	# server_tokens off;

	# server_names_hash_bucket_size 64;
	# server_name_in_redirect off;

	include /etc/nginx/mime.types;
	default_type application/octet-stream;
	
	client_max_body_size 1024M;

	access_log /var/log/nginx/access.log;
	error_log /var/log/nginx/error.log;

	gzip on;

  	include /etc/nginx/sites-enabled/*;
#注意include 的是具体的项目的配置文件也就多个server
    server{
   #.....
    }

}

在 sites-enabled中 具体的配置文件,多server的配置就是多个端口不重复的配置文件

 server {
    listen 80;

    server_name docker;
    root  /var/www/docker-api/public;
    index  index.php index.html index.htm;

    access_log /var/log/nginx/docker.access.log;
    error_log /var/log/nginx/docker.error.log debug;

    location / {
	try_files $uri $uri/  /index.php?$query_string; 
    }
       
    location ~ \.php$ {
	include snippets/fastcgi-php.conf;

	fastcgi_pass unix:/run/php/php7.4-fpm.sock;
	fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
	#fastcgi_pass 127.0.0.1:9000;

	fastcgi_index index.php;
        include fastcgi_params;
    }

}
#这里是一个动态安全口令配置,正常使用删除掉即可
include /home/wwwroot/competition-examine/storage/other/*.conf;

关于的nginx的安全口令设置推荐一个文章可以去看看理解Nginx auth_basic 身份验证icon-default.png?t=M4ADhttps://blog.csdn.net/qq_44633541/article/details/124370705 

三、对nginx做权限处理方便 php调用

仅 root 用户和 www-data 用户可以运行(因为是750权限,文件所有者:root,组所有者:www-data)

chown root.www-data /usr/sbin/nginx
chmod 750 /usr/sbin/nginx
chmod u+s /usr/sbin/nginx

有些服务的环境 直接使用 不知道nginx在哪可以使用 whereis nginx进行查看 

 

推荐一个 nginx权限处理的文章

四、修改php-fpm的配置

user = www-data
group = www-data
listen.owner = www-data
listen.group = www-data
四项该我新建的用户组

五、php调用nginx重新加载命令,随意写一个test.php的文件执行nginx命令

nginx 权限不对的问题如下返回 这里要仔细的看第三步

正确的调用返回

 

测试通后就去叭叭具体的业务逻辑吧。

六、写在最后

需求总是千奇百怪,不变的是实现的组件,来回的组合,叠加。

你可能感兴趣的:(nginx,php,运维)