>백엔드 개발 >PHP 튜토리얼 >nginx, php-fpm, mysql 등의 권한 구분을 정리하고 요약합니다.

nginx, php-fpm, mysql 등의 권한 구분을 정리하고 요약합니다.

青灯夜游
青灯夜游앞으로
2022-06-14 12:17:553953검색

이 글은 PHP의 기본 지식에 대해 이야기하고 nginx, php-fpm 및 mysql의 사용자 권한에 대한 심층적인 이해를 제공할 것입니다. 모든 사람에게 도움이 되기를 바랍니다!

nginx, php-fpm, mysql 등의 권한 구분을 정리하고 요약합니다.

일반적으로 우리가 웹 애플리케이션을 실행하는 서버에는 CentOS, Ubuntu, Debian 등과 같은 Linux 배포판이 포함됩니다. 이때 서비스 아키텍처를 형성하는 데 필요한 Nginx, PHP, MySQL 및 기타 애플리케이션의 권한 제어는 매우 중요합니다. 각 서비스는 코드 디렉토리에 대한 권한 요구 사항이 다릅니다. 읽기, 쓰기 또는 실행이 불가능합니다. 권한 요구 사항을 낮추면 해킹 및 수정될 위험이 있습니다. 여기에서는 nginx, php-fpm, mysql과 같은 서비스의 권한 구분을 요약합니다.

1. 웹 서버 Nginx 권한

PHP의 운영 프레임워크는 일반적으로 Nginx와 결합하여 LNMP를 구성하거나 Apache와 결합하여 LAMP 아키텍처를 구성합니다. 여기서는 Nginx를 예로 들어 Nginx 서비스를 실행하는 데 필요한 권한을 설명합니다.
우리는 Nginx 자체가 PHP 구문을 구문 분석할 수 없다는 것을 알고 있으므로 Nginx는 정적 파일(예: HTML 등)에 대해 직접 구문 분석하고 결과를 반환하지만, PHP 파일의 경우 Nginx는 처리를 위해 이를 PHP 인터프리터 php-fpm으로 전송합니다. . 완료 후 클라이언트 브라우저에 응답을 반환합니다 .

따라서 Nginx 및 PHP 서비스에 필요한 권한을 code 디렉터리에 통합해야 합니다.

① 루트 사용자를 일률적으로 사용하는 경우 일반 게스트 계정은 애플리케이션에 접근할 수 없습니다. nginx를 루트로 실행하도록 구성하면 일단 공격을 받으면 루트 ID를 획득하게 됩니다. 시스템에서 모든 작업을 수행합니다.

② 모든 코드 디렉터리 권한이 rwxrwxrwx로 설정된 경우 사용자가 브라우저를 통해 코드 디렉터리를 직접 수정할 수 있는 숨겨진 위험이 있습니다.

따라서 가장 좋은 방법은 새로운 사용자 그룹으로 분류하고 Nginx 및 PHP를 실행하는 데 필요한 권한을 사용자 그룹에 할당하여 웹 애플리케이션에 대한 권한 디렉터리 관리를 달성하는 것입니다. 일반적으로 많은 팀에서는 이 사용자 그룹에 www라는 이름을 지정하고 www 사용자는 코드 디렉터리 권한을 균일하게 관리합니다.

Nginx 구성 파일 nginix.conf에 구분된 실행 권한이 www 사용자 아래에 구성되어 있는 것을 볼 수 있으므로 Nginx 하위 프로세스도 www 사용자에 의해 실행되며, 이는 www 사용자에 의해 실행될 수 있습니다. ps aux | grep nginx 보기:

nginix.conf里面划分的运行权限就是配置到了www用户下,因此Nginx的子进程也是由www用户执行,可以通过ps aux | grep nginx来查看:

nginx, php-fpm, mysql 등의 권한 구분을 정리하고 요약합니다.

可以看到nginx的主进程是root,其余子进程均是www的用户

nginx.conf的配置:

nginx, php-fpm, mysql 등의 권한 구분을 정리하고 요약합니다.

二、php的权限配置

同样的,php的运行方式也是由主进程root运行,在子进程池(pool)里面配置由www用户执行,具体配置在php根目录下的<span style="color: rgb(192, 0, 0);">etcphp-fpm.conf</span>下,添加两行:

user = www
group = www

即可,同样用ps aux | grep php可以查看进程使用的用户身份:

nginx, php-fpm, mysql 등의 권한 구분을 정리하고 요약합니다.

三、MySQL服务的权限配置

通过ps aux | grep mysqlnginx, php-fpm, mysql 등의 권한 구분을 정리하고 요약합니다.nginx의 주요 프로세스는 루트이고 다른 하위 프로세스는 모두 www

nginx.conf 구성의 사용자임을 알 수 있습니다.

nginx, php-fpm, mysql 등의 권한 구분을 정리하고 요약합니다.nginx, php-fpm, mysql 등의 권한 구분을 정리하고 요약합니다.

두 번째, PHP 권한 구성

마찬가지로 PHP 실행 모드도 기본 프로세스 루트에서 실행되며, www 사용자가 실행하도록 하위 프로세스 풀(풀)에서 구성됩니다. 구체적인 구성은

etcphp-fpm에 있습니다. php 루트 디렉터리에 conf

두 줄을 추가하세요.

user www www;

그렇습니다. ps aux | grep php를 사용하여 프로세스에서 사용하는 사용자 ID를 볼 수도 있습니다. nginx, php-fpm, mysql 등의 권한 구분을 정리하고 요약합니다.


3. MySQL 서비스

의 권한 구성은 ps aux | grep mysql code>을 통해

mysql🎜 사용자로 실행되는 것을 확인할 수 있습니다. 이 서비스🎜에서는 mysql 사용자 이름과 비밀번호만 가져오면 됩니다. PHP 코드가 mysql에 연결될 때 데이터 레이어는 mysql에 연결되어야 하기 때문에 www로 통합될 필요가 없습니다. 기본 데이터의 보안을 보장하기 위해 비즈니스 로직 레이어가 격리됩니다🎜. mysql의 인증은 주로 새로운 사용자를 추가하고 mysql 서비스에서 권한을 나누는 것입니다. 이는 데이터 보안을 보장하기 위해 다양한 PHP 비즈니스가 다양한 권한 범위를 가진 ID와 연결하도록 제어하는 ​​데 사용됩니다. 🎜🎜🎜🎜🎜🎜IV. 요약 🎜🎜🎜nginx 구성: 🎜
user = www
group = www
🎜php-fpm: 🎜🎜
drwxr-xr-x 就是755
🎜디렉토리: 🎜🎜rrreee🎜추천 학습: "🎜PHP 비디오 튜토리얼🎜"🎜

위 내용은 nginx, php-fpm, mysql 등의 권한 구분을 정리하고 요약합니다.의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
이 기사는 csdn.net에서 복제됩니다. 침해가 있는 경우 admin@php.cn으로 문의하시기 바랍니다. 삭제