일반적으로 우리가 웹 애플리케이션을 실행하는 서버에는 CentOS, Ubuntu, Debian 등과 같은 Linux 배포판이 포함됩니다. 이때 서비스 아키텍처를 형성하는 데 필요한 Nginx, PHP, MySQL 및 기타 애플리케이션의 권한 제어는 매우 중요합니다. 각 서비스에는 코드 디렉토리에 대한 권한 요구 사항이 다르므로 특정 권한이 없으면 서비스를 수행할 수 없습니다. 읽기, 쓰기 또는 실행을 수행하면 권한 요구 사항이 낮아지고 침입 및 수정 위험이 발생합니다.
PHP의 운영 프레임워크는 일반적으로 Nginx와 결합하여 LNMP를 구성하거나 Apache와 결합하여 LAMP 아키텍처를 구성합니다. 여기서는 Nginx를 예로 들어 Nginx 서비스를 실행하는 데 필요한 권한을 설명합니다.
우리는 Nginx 자체가 PHP 구문을 구문 분석할 수 없다는 것을 알고 있으므로 Nginx는 정적 파일(예: HTML 등)에 대해 직접 구문 분석하고 결과를 반환하지만, PHP 파일의 경우 Nginx는 처리를 위해 이를 PHP 인터프리터 php-fpm으로 전송합니다. 처리 후 클라이언트 브라우저에 응답을 반환합니다.
따라서 Nginx 및 PHP 서비스에 필요한 권한을 코드 디렉터리에 통합해야 합니다.
① 루트 사용자를 일률적으로 사용하는 경우 일반 게스트 계정은 애플리케이션에 액세스할 수 없습니다. 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的主进程是root,其余子进程均是www的用户
nginx.conf的配置:
同样的,php的运行方式也是由主进程root运行,在子进程池(pool)里面配置由www用户执行,具体配置在php根目录下的etcphp-fpm.conf
下,添加两行:
user = www group = www
即可,同样用ps aux | grep php
可以查看进程使用的用户身份:
通过ps aux | grep mysql
nginx의 기본 프로세스는 루트이고 다른 하위 프로세스는 모두 www
2. PHP 권한 구성
마찬가지로 PHP는 기본 프로세스 루트에 의해 실행되며, www 사용자가 실행하도록 하위 프로세스 풀(풀)에 구성됩니다. 구체적인 구성은 etcphp에 있습니다. -fpm.conf
를 PHP 루트 디렉토리에 추가하세요.
user www www;
ps aux | grep php
를 사용하여 프로세스에서 사용하는 사용자 ID를 볼 수도 있습니다. 🎜 mysql 사용자로 MySQL 서비스가 실행되고 있는 것을 볼 수 있습니다. 이 서비스에서는 mysql 사용자 이름만 가져오면 됩니다. PHP 코드가 mysql에 연결될 때 비밀번호를 입력해야 합니다. 기본 데이터의 보안을 보장하기 위해 데이터 레이어를 비즈니스 로직 레이어와 격리해야 하기 때문에 www로 통합할 필요가 없습니다. mysql의 인증은 주로 새로운 사용자를 추가하고 mysql 서비스에서 권한을 나누는 것입니다. 이는 데이터 보안을 보장하기 위해 다양한 PHP 비즈니스가 다양한 권한 범위를 가진 ID와 연결하도록 제어하는 데 사용됩니다. 🎜🎜🎜🎜🎜🎜🎜 IV. 요약 🎜🎜🎜nginx 구성: 🎜user = www group = www
drwxr-xr-x 就是755
위 내용은 nginx, php-fpm 및 mysql에 대한 사용자 권한을 구성하는 방법의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!