FastCGI (PHP-FPM)를 사용하여 Nginx에서 PHP를 설정하는 방법 예
1. 구성 : 오류 :. xml2-config 찾기를 찾지 못했습니다. libxml2 설치를 확인하십시오.
nginx에는 php가 있습니까?
무언가가 조금 다른 경우 소스에서 구축하는 것은 쉽지 않으며 일부 디렉토리 및 구성 옵션으로 어려움을 겪었습니다. 중국어에서 번역 된이 사이트를 발견 할 때까지 웹 주위에 흠뻑 젖어있었습니다. 다른 사람은 해결책이 없었습니다. 디렉토리를 변경할 때까지 PHP FPM을 시작할 수 없었습니다 (항목 2.오류 : 세계화 할 수 없음). 다른 문제가 나열되었지만 해결할 수있었습니다. 삭제하지 마십시오. 매우 유용한 정보입니다.
원래 사이트 (그것은 내 사이트가 아니라 중국어로 이루어 지지만 신용을주고 싶습니다) :
(거기에 더 많은 것이 있습니다. 사이트로 갈 수 있습니다)
1. 구성 : 오류 :. xml2-config 찾기를 찾지 못했습니다. libxml2 설치를 확인하십시오.
apt-get 설치 libxml2-dev
2.경고 : pear_installer :: download ()의 선언은 & pear_downloader :: download ($ params)와 호환되어야합니다.0.0alpha1/pear/install-pear-nozlib.Phar /Pear /Installer.43 행에 PHP
경고 : pear_packagefile_parser_v2 :: parse ()의 선언은 par_xmlparser :: parse ($ data)와 호환되어야합니다.0.0alpha1/pear/install-pear-nozlib.Phar/ Pear/ PackageFile/ Parser/ V2.113 행에 PHP
[배] Archive_tar- 이미 설치된 : 1.삼.13
[pear] console_getopt- 이미 설치된 : 1.삼.1
[Pear] Structures_Graph- 이미 설치되어 있습니다 : 1.0.4
경고 : pear_task_replace :: init ()의 선언은 phar : // root/php-7의 pear_task_common :: init ($ xml, $ fileattributes, $ lastversion)와 호환되어야합니다.0.0alpha1/pear/install-pear-nozlib. Phar / Pear / Task / Replace.31 행에 PHP
[배] XML_UTIL- 이미 설치된 : 1.2.삼
경고 : pear_task_windowseol :: init ()의 선언은 phar : // root/php-7의 pear_task_common :: init ($ xml, $ fileattributes, $ lastversion)와 호환됩니다.0.0alpha1/pear/install-pear-nozlib. Phar / Pear / Task / Windowseol.76 행에 PHP
경고 : par_task_unixeol :: init ()의 선언은 phar : // root/php-7의 pear_task_common :: init ($ xml, $ fileattributes, $ lastversion)와 호환되어야합니다.0.0alpha1/pear/install-pear-nozlib. Phar / Pear / Task / Unixeol.76 행에 PHP
[배] 배 – 이미 설치된 : 1.9.5
1.오류 : 구성 파일을 열지 못했습니다 ‘/usr/local/etc/php-fpm.conf ‘: 그러한 파일이나 디렉토리 (2)
오류 : 구성 파일을로드하지 못했습니다 ‘/usr/local/etc/php-fpm.conf ‘
오류 : FPM 초기화에 실패했습니다
PHP-FPM.소스 파일에서 해당 위치로 파일을 복사합니다.
CP /루트 /PHP-7.0.0ALPHA1/SAPI/FPM/PHP-FPM.conf/usr/local/etc/php-fpm.콘크리트
2.오류 : ‘/usr/local/none/etc/php-fpm globalize 할 수 없습니다.디/*.conf ‘(ret = 2)에서/usr/local/etc/php-fpm.라인 125에서 콘크리트.
오류 : 구성 파일을로드하지 못했습니다 ‘/usr/local/etc/php-fpm.conf ‘
오류 : FPM 초기화에 실패했습니다
편집/usr/local/etc/php-fpm.소개 된 문서를 혼란 .conf part, 올바른 경로로 변경하면 = / usr / local / etc / php-fpm 포함.d / *. 콘크리트
/usr/local/etc/php-fpm이없는 경우.D 디렉토리, 디렉토리를 만듭니다.
삼.경고 : 포함 된 패턴 ‘/usr/local/etc/php-fpm과 일치하지 않습니다.디/*./usr/local/etc/php-fpm에서 conf ‘.라인 125에서 콘크리트.
오류:. 정의 된 풀 정의되지 않은 풀 섹션은 구성 파일에 지정되어야합니다
오류 : 구성을 후 처리하지 못했습니다
오류 : FPM 초기화에 실패했습니다
CP www.콘크리트.기본 www.콘크리트
4.오류 : [풀 www] 그룹 ‘아무도’그룹에 대한 GID를 얻을 수 없습니다
오류 : FPM 초기화에 실패했습니다
www.Conf Open 파일, 사용자 및 그룹 사용자가 Nginx 기본 설정으로, 일반적으로 기본값은 www-data입니다.
1 년 전
자원이 가장 적은 속도로 서버 성능을 최대화하기 위해 최소 Linux/Unix 기반 OS에서 PHP 8을 수동으로 컴파일하기로 결정했습니다 (Linux 배포판은 RPM 기반 패키지입니다)
내 시스템은 PHP 8에 의해 성공적으로 전원이 켜졌습니다.0.9- Opcache/Jit 활성화 및 기타 여러 PHP 확장 모듈 포함. 다음은 몇 시간의 연구를 절약 할 수있는 몇 가지 경험입니다.
1. 단계 (3) 이전 (3) – PHP 구성 및 빌드 – 오류가 발생하지 않도록 내 전제 조건 라이브러리를 참조 할 수 있습니다.
sudo dnf install \
GCC GCC-C ++ MAKE CMAKE AUTOCONFIG \
zlib zlib-devel pcre pcre-devel \
libxml2-devel libxslt-devel \
Bzip2-Devel Curl-Devel Libzip-Devel \
sqlite-devel \
Systemd-Devel \
OpenSSL-DEVEL \
libffi-devel \
libpng libpng-devel libwebp libwebp-devel libjpeg libjpeg-devel libxpm libxpm-devel \
Freetype-Devel \
gmp-devel \
libldb-devel \
libc-client libc-client-devel \
OpenlDap OpenLDap-Devel \
Oniguruma Oniguruma-Devel \
net-snmp-devel readline-devel unixodbc-devel \
UW-IMAP UW-IMAP-DEVEL UW-IMAP-Static UW-IMAP-UTILS \
libicu-devel \
enchant2 enchant2-devel \
GD GD-DEVEL \
Libsodium libsodium-devel \
libtidy libtidy-devel
발행시 오류가 발생하지 않을 수 있습니다 ./configure, make && 설치를 만듭니다. 나중에 PHP 확장 패키지를 수동으로 제작하더라도.
2. PHP를 수정하기 전 5 단계에서.INI- 현재 PHP가 읽고 있는지 여부를 두 번 확인할 수 있습니다.이 명령에 의해 ini 파일
php -ini | Grep Php.이니
# 내 결과. 튜토리얼과 다릅니다.
구성 파일 (php.ini) path =>/usr/local/lib
로드 된 구성 파일 =>/usr/local/lib/php.이니
4 년 전
PHP-FPM을 시작하기 위해 다음 명령을 실행할 때 :
/usr/local/bin/php-fpm
다음 오류 정보가 있습니다
‘/usr/local/none/etc/php-fpm globalize 할 수 없습니다.디/*.conf ‘(ret = 2)에서/usr/local/etc/php-fpm.143 행에서 conf.
이 오류를 해결하려면 다음을 수행하십시오
ST를 변경하십시오
FastCGI (PHP-FPM)를 사용하여 Nginx에서 PHP를 설정하는 방법 예
1. 구성 : 오류 :. xml2-config 찾기를 찾지 못했습니다. libxml2 설치를 확인하십시오.
nginx에는 php가 있습니까?
무언가가 조금 다른 경우 소스에서 구축하는 것은 쉽지 않으며 일부 디렉토리 및 구성 옵션으로 어려움을 겪었습니다. 중국어에서 번역 된이 사이트를 발견 할 때까지 웹 주위에 흠뻑 젖어있었습니다. 다른 사람은 해결책이 없었습니다. 디렉토리를 변경할 때까지 PHP FPM을 시작할 수 없었습니다 (항목 2.오류 : 세계화 할 수 없음). 다른 문제가 나열되었지만 해결할 수있었습니다. 삭제하지 마십시오. 매우 유용한 정보입니다.
원래 사이트 (그것은 내 사이트가 아니라 중국어로 이루어 지지만 신용을주고 싶습니다) :
(거기에 더 많은 것이 있습니다. 사이트를 얻을 수 있습니다)
1. 구성 : 오류 :. xml2-config 찾기를 찾지 못했습니다. libxml2 설치를 확인하십시오.
apt-get 설치 libxml2-dev
2.경고 : pear_installer :: download ()의 선언은 & pear_downloader :: download ($ params)와 호환되어야합니다.0.0alpha1/pear/install-pear-nozlib.Phar /Pear /Installer.43 행에 PHP
경고 : pear_packagefile_parser_v2 :: parse ()의 선언은 par_xmlparser :: parse ($ data)와 호환되어야합니다.0.0alpha1/pear/install-pear-nozlib.Phar/ Pear/ PackageFile/ Parser/ V2.113 행에 PHP
[배] Archive_tar- 이미 설치된 : 1.삼.13
[pear] console_getopt- 이미 설치된 : 1.삼.1
[Pear] Structures_Graph- 이미 설치되어 있습니다 : 1.0.4
경고 : pear_task_replace :: init ()의 선언은 phar : // root/php-7의 pear_task_common :: init ($ xml, $ fileattributes, $ lastversion)와 호환되어야합니다.0.0alpha1/pear/install-pear-nozlib. Phar / Pear / Task / Replace.31 행에 PHP
[배] XML_UTIL- 이미 설치된 : 1.2.삼
경고 : pear_task_windowseol :: init ()의 선언은 phar : // root/php-7의 pear_task_common :: init ($ xml, $ fileattributes, $ lastversion)와 호환됩니다.0.0alpha1/pear/install-pear-nozlib. Phar / Pear / Task / Windowseol.76 행에 PHP
경고 : par_task_unixeol :: init ()의 선언은 phar : // root/php-7의 pear_task_common :: init ($ xml, $ fileattributes, $ lastversion)와 호환되어야합니다.0.0alpha1/pear/install-pear-nozlib. Phar / Pear / Task / Unixeol.76 행에 PHP
[배] 배 – 이미 설치된 : 1.9.5
1.오류 : 구성 파일을 열지 못했습니다 ‘/usr/local/etc/php-fpm.conf ‘: 그러한 파일이나 디렉토리 (2)
오류 : 구성 파일을로드하지 못했습니다 ‘/usr/local/etc/php-fpm.conf ‘
오류 : FPM 초기화에 실패했습니다
PHP-FPM.소스 파일에서 해당 위치로 파일을 복사합니다.
CP /루트 /PHP-7.0.0ALPHA1/SAPI/FPM/PHP-FPM.conf/usr/local/etc/php-fpm.콘크리트
2.오류 : ‘/usr/local/none/etc/php-fpm globalize 할 수 없습니다.디/*.conf ‘(ret = 2)에서/usr/local/etc/php-fpm.라인 125에서 콘크리트.
오류 : 구성 파일을로드하지 못했습니다 ‘/usr/local/etc/php-fpm.conf ‘
오류 : FPM 초기화에 실패했습니다
편집/usr/local/etc/php-fpm.소개 된 문서를 혼란 .conf part, 올바른 경로로 변경하면 = / usr / local / etc / php-fpm 포함.d / *. 콘크리트
/usr/local/etc/php-fpm이없는 경우.D 디렉토리, 디렉토리를 만듭니다.
삼.경고 : 포함 된 패턴 ‘/usr/local/etc/php-fpm과 일치하지 않습니다.디/*./usr/local/etc/php-fpm에서 conf ‘.라인 125에서 콘크리트.
오류:. 정의 된 풀 정의되지 않은 풀 섹션은 구성 파일에 지정되어야합니다
오류 : 프로세스를 게시하지 못했습니다
오류 : FPM 초기화에 실패했습니다
CP www.콘크리트.기본 www.콘크리트
4.오류 : [풀 www] 그룹 ‘아무도’그룹에 대한 GID를 얻을 수 없습니다
오류 : FPM 초기화에 실패했습니다
www.Conf Open 파일, 사용자 및 그룹 사용자가 Nginx 기본 설정으로, 일반적으로 기본값은 www-data입니다.
1 년 전
자원이 가장 적은 속도로 서버 성능을 최대화하기 위해 최소 Linux/Unix 기반 OS에서 PHP 8을 수동으로 컴파일하기로 결정했습니다 (Linux 배포판이 RPM 기반 패키지입니다)
내 시스템은 PHP 8에 의해 성공적으로 전원이 켜졌습니다.0.9- Opcache/JIT 활성화 및 기타 여러 PHP 확장 모듈 포함. 다음은 몇 시간의 연구를 절약 할 수있는 몇 가지 경험이 있습니다.
1. 단계 (3) 이전 (3) – PHP 구성 및 빌드 – 오류가 발생하지 않도록 내 전제 조건 라이브러리를 참조 할 수 있습니다.
sudo dnf install \
GCC GCC-C ++ MAKE CMAKE AUTOCONFIG \
zlib zlib-devel pcre pcre-devel \
libxml2-devel libxslt-devel \
Bzip2-Devel Curl-Devel Libzip-Devel \
sqlite-devel \
Systemd-Devel \
OpenSSL-DEVEL \
libffi-devel \
libpng libpng-devel libwebp libwebp-devel libjpeg libjpeg-devel libxpm libxpm-devel \
Freetype-Devel \
gmp-devel \
libldb-devel \
libc-client libc-client-devel \
OpenlDap OpenLDap-Devel \
Oniguruma Oniguruma-Devel \
net-snmp-devel readline-devel unixodbc-devel \
UW-IMAP UW-IMAP-DEVEL UW-IMAP-Static UW-IMAP-UTILS \
libicu-devel \
enchant2 enchant2-devel \
GD GD-DEVEL \
Libsodium libsodium-devel \
libtidy libtidy-devel
발행시 오류를받지 못할 수 있습니다 ./configure, make && 설치를 만듭니다. 나중에 PHP 확장 패키지를 수동으로 제작하더라도.
2. PHP를 수정하기 전 5 단계에서.INI- 현재 PHP가 읽고 있는지 여부를 두 번 확인할 수 있습니다.이 명령에 의해 ini 파일
php -ini | Grep Php.이니
# 내 결과. 튜토리얼과 다릅니다.
구성 파일 (php.ini) path =>/usr/local/lib
로드 된 구성 파일 =>/usr/local/lib/php.이니
4 년 전
PHP-FPM을 시작하기 위해 다음 명령을 실행할 때 :
/usr/local/bin/php-fpm
다음 오류 정보가 있습니다
‘/usr/local/none/etc/php-fpm globalize 할 수 없습니다.디/*.conf ‘(ret = 2)에서/usr/local/etc/php-fpm.143 행에서 conf.
이 오류를 해결하려면 다음을 수행하십시오
문자열 변경 “include = none/etc/php-fpm.디/*.conf “to”include = etc/php-fpm.디/*.conf “파일에서”/usr/local/etc/php-fpm.conf “텍스트 편집기와 함께.
그런 다음 PHP-FPM을 다시 시작하고 다시 오류 정보를 얻으려고합니다
포함 된 패턴 ‘/usr/local/etc/php-fpm과 일치하는 것은 없습니다.디/*./usr/local/etc/php-fpm에서 conf ‘.143 행에서 conf.
이 오류를 해결하려면 다음을 수행하십시오
CP/USR/로컬/etc/php-fpm.d/www.콘크리트.기본/USR/로컬/etc/php-fpm.d/www.콘크리트
4 년 전
CP PHP/PHP.INI 개발 PHP/LIB/PHP.이니
CP PHP/etc/php-fpm.콘크리트.기본 PHP/etc/php-fpm.콘크리트
CP PHP/etc/php-fpm.d/www.콘크리트.기본 PHP/etc/php-fpm.d/www.콘크리트
3 년 전
Linux 시스템에서 시스템 서비스에 PHP-FPM 서비스를 추가하려는 경우; PHP가 관련 쉘 스크립트를 제공하기 때문에 그렇게하기 쉽습니다
제작 및 설치 후; 소스 코드 패키지를 입력하십시오 SAPI/FPM/EINT.디.PHP-FPM; Linux 시스템에 코드를 입력하십시오.
CP SAPI/FPM/Init.디.php-fpm /etc /init.D/PHP-FPM
그런 다음 “PHP-FPM을 사용할 수 있습니다
7 년 전
“파일 찾기”오류가 발생하면 PHP 위치 블록에 “root root_dir_location”지침을 추가하십시오.이자형. “위치 ~* \.php $ < >“, root_dir_location은”/usr/share/nginx/html “과 같은 루트 디렉토리 인 곳 .
7 년 전
3 단계에서 “Sudo가 설치”명령 후
배에 문제가있는 경우.PHP.NET (HTTPS). makefile 에서이 줄 (HTTPS에서 HTTP로)을 변경해야합니다
pear_installer_url = http : // pear.PHP.NET/설치-퓨어-노즈 리브.파르
11 개월 전
이 튜토리얼에 대한 큰 노력, 감사합니다. 여기에 내 메모가 있습니다
참고 : Laravel Framework에 작곡가가 추가되었습니다.
이들은 그대로 복사 및 붙여 넣지 말아야하며 일부 명령 외에 주석이 있으므로 선택적으로해야합니다,
또한 현재 환경에 불일치하여 원래 편집기가 작성한 일부 기본값을 # 댓글을 달았습니다.
SHA256SUM PHP-X.엑스.엑스.타르.gz => e847745fd66fc8c57fac993a609fefcded93fddccd225f0620a26bb5ae5753c3
타르 ZXF PHP-X.엑스.엑스
Sudo apt 설치 빌드 필수
sudo apt install -y composer nginx pkgconf libxml2-dev libsqlite3-dev zlib1g-dev
CD PHP-X.엑스.엑스
./구성 –enable-fpm-with-mysqli sudo를 테스트 sudo를 설치로 만들 수 있습니다 cp php를 설치하십시오.INI 개발/USR/LOCAL/LIB/PHP.이니
sudo cp/usr/local/etc/php-fpm.d/www.콘크리트.기본/USR/로컬/etc/php-fpm.d/www.콘크리트
Sudo CP SAPI/FPM/PHP-FPM/USR/LOCAL/BIN
sudo vim/usr/local/php/php.INI SUDO VIM/USR/LOCAL/ETC/PHP-FPM.d/www.cond sudo vim sapi/fpm/php-fpm.con sudo cp sapi/fpm/php-fpm.conf/usr/local/etc
/usr/local/bin/php -v sudo/usr/local/bin/php-fpm sudo vim/etc/nginx/sites-available/default
위치 / #ROOT HTML;
#index 색인.PHP 지수.HTML 인덱스.HTM;
>
위치 ~* \.php $ #fastcgi_index 인덱스 인덱스.php;
FASTCGI_PASS 127.0.0.1 : 9000;
fastcgi_params 포함;
FASTCGI_PARAM SCRIPT_FILENAME $ DOCUTED_ROOT $ FASTCGI_SCRIPT_NAME;
FASTCGI_PARAM SCRIPT_NAME $ FASTCGI_SCRIPT_NAME;
>
*nginx를 다시 시작합니다 (루트/var/www/html) 루트 경로가 존재하지 않으면 기본값은 :/usr/share/nginx/html입니다
sudo nginx -t sudo 서비스 nginx 다시로드
Sudo Service Nginx 중지
Sudo Service Nginx 시작
PHP -FPM은 서비스 중이거나 프로세스를 수동으로 킬 PS -AUX | GREP PHP-FPM; 죽이다
nginx에는 php가 있습니까?
- 4 엔터프라이즈 아키텍트 기술 엔터프라이즈 아키텍트가되는 것이 많지만 절대적인 기술은 무엇을 해야하는지 확실히해야합니다.
- 팔코 vs. GraphQL : 모두 중요한 차이점은 본질적으로 비슷한 엔드 목표에 대한 두 가지 접근 방식을 나타내는 경우, GraphQL과 Falcor 사이에는 몇 가지 주요 차이점이 있습니다 .
- 탄소 프로그래밍 언어 탄소를 간단히 살펴보면 C ++의 어깨에 서도록 제작 된 실험적 프로그래밍 언어입니다.하지만 메모리 안전에 대한 새로운 전망.
- Google은 자체 클라우드 내에서 생성 AI 확장을 괴롭 힙니다. 코딩 어시스턴트를 포함한 Google의 새로운 생성 AI 기능은 이번 주 미리보기 데모에서 GCP와 밀접하게 연결되어 있으며 .
- 저 코드 플랫폼보다 코딩에 ChatGpt가 더 좋습니다? Chatgpt는 코드를 쓸 수 있지만 코드를 통합하거나 디자인 아이디어를 생성 할 수는 없습니다. 또한 보안 및 라이센스 위험을 제기합니다. 지금은.
- 소프트웨어 테스트 중복성을 줄이기위한 몇 가지 간단한 전략은 포괄적 인 테스트 범위가 필수입니다. 소프트웨어 팀은 스위트가되기 위해 의식적인 노력을 기울여야합니다 .
- Google은 Google 검색, 사진,지도 및 Google 검색, 사진,지도 및 AI 향상에 대한 Enterprise Strategy Group의 Paul Nashawaty 의견에서 Google I/O 2023의 생성 AI를 두 배로 늘립니다 .
- 보안 전문가는 클라우드 감사 모범 사례 공유 클라우드 감사를 통해 조직이 클라우드 공급 업체 성능을 평가할 수 있습니다. 감사 전문가 Shinesa Cambric과 Michael Ratemo Talk .
- Google Cloud Run을 사용하여 Terraform을 사용하여 Google Cloud Run에 앱을 배포하여 Google Cloud Run에 응용 프로그램을 배포하여 확장 가능한 배포 프로세스를 가능하게하고 구성을 줄일 수 있습니다 .
- CrowdStrike는 VMware ESXI Hypervisor 공격의 증가에 대한 경고 가상화 기술의 엔터프라이즈 채택으로 인해 CrowdStrike가 서버에 대한 랜섬웨어 공격의 증가를 관찰했습니다 .
- BL00DY 랜섬웨어 갱 종이 컷 결함을 통해 학교를 대상으로 BL00DY Ransomware Gang은 방치되지 않은 인스턴스에 존재하는 중요한 원격 코드 실행 결함을 통해 학교를 대상으로합니다 .
- 전문가들은 San Bernardino의 $ 1에 의문을 제기합니다.1M 랜섬 지불 샌 버나 디노 카운티의 보안관 부서 인 .
- AWS Control Tower는 멀티 계정 관리를 단순화하는 것을 목표로합니다. 많은 조직이 방대한 AWS 계정을 관리하기 위해 어려움을 겪지 만 Control Tower는 도움이 될 수 있습니다. 서비스가 자동화됩니다 .
- Amazon EKS 가격 책정 모델 Amazon EKS 가격 책정 모델에는 몇 가지 중요한 변수가 있습니다. 서비스를 배포 할 수 있도록 숫자를 파헤칩니다 .
- EK와 비교하십시오. AWS AWS 사용자의 자체 관리 kubernetes는 Kubernetes를 배포 할 때 선택에 직면 해 있습니다. 보다 .
Ubuntu 16에서 Linux, Nginx, MySQL, Php (Lemp Stack)를 설치하는 방법.04
LEMP 소프트웨어 스택은 동적 웹 페이지 및 웹 애플리케이션을 제공하는 데 사용할 수있는 소프트웨어 그룹입니다. 이것은 Nginx 웹 서버가있는 Linux 운영 체제를 설명하는 약어입니다. 백엔드 데이터는 MySQL 데이터베이스에 저장되며 동적 처리는 PHP에 의해 처리됩니다.
이 안내서에서는 Ubuntu 16에 Lemp Stack을 설치하는 방법을 보여줍니다.04 서버. 우분투 운영 체제는 첫 번째 요구 사항을 처리합니다. 우리는 나머지 구성 요소를 작동시키고 실행하는 방법을 설명합니다.
전제 조건
이 튜토리얼을 완료하기 전에 Sudo 권한이있는 서버에 정기적 인 뿌리가 아닌 사용자 계정이 있어야합니다. Ubuntu 16을 완료하여 이러한 유형의 계정을 설정하는 방법을 배울 수 있습니다.04 초기 서버 설정.
사용자가 사용할 수 있으면 해당 사용자 이름으로 서버에 로그인하십시오. 이제이 안내서에 요약 된 단계를 시작할 준비가되었습니다.
1 단계 : Nginx 웹 서버를 설치하십시오
사이트 방문자에게 웹 페이지를 표시하기 위해 현대적이고 효율적인 웹 서버 인 Nginx를 사용할 것입니다.
이 절차에 사용할 모든 소프트웨어는 우분투에서 직접 제공됩니다’s 기본 패키지 저장소. 즉, APT 패키지 관리 제품군을 사용하여 설치를 완료 할 수 있습니다.
이 세션에 APT를 사용한 것은 이번이 처음이므로 로컬 패키지 인덱스를 업데이트하여 시작해야합니다. 그런 다음 서버를 설치할 수 있습니다
우분투에서 16.04, nginx는 설치시 실행되도록 구성되었습니다.
UFW 방화벽이 실행중인 경우 초기 설정 가이드에 요약 된대로 Nginx에 연결을 허용해야합니다. Nginx는 설치시 UFW에 자체적으로 등록하므로 절차는 다소 간단합니다.
원하는 트래픽을 허용하는 가장 제한적인 프로필을 활성화하는 것이 좋습니다. 우리가 아니다’T는 서버를 위해 SSL을 구성했지만이 안내서에서는 포트 80에서 트래픽 만 허용하면됩니다.
입력하여이를 활성화 할 수 있습니다
입력하여 변경 사항을 확인할 수 있습니다
표시된 출력에서 HTTP 트래픽이 허용되는 것을 볼 수 있습니다
산출상태 : ------- ---- OpenSsh의 Active to Action은 어디서나 허용 Nginx HTTP가 어디서나 허용합니다 (v6) 어디서나 허용 (v6) nginx http (v6) 어디서나 허용 (v6)
새 방화벽 규칙이 추가되면 서버에 액세스하여 서버가 UP가 실행 중인지 테스트 할 수 있습니다’웹 브라우저의 도메인 이름 또는 공개 IP 주소.
서버에 가리키는 도메인 이름이없고 서버를 모르는 경우’S 공개 IP 주소, 다음 중 하나를 터미널에 입력하여 찾을 수 있습니다
이것은 몇 가지 IP 주소를 인쇄합니다. 웹 브라우저에서 각각을 시도 할 수 있습니다.
대안으로 인터넷의 다른 위치에서 볼 수 있듯이 어떤 IP 주소에 액세스 할 수 있는지 확인할 수 있습니다
웹 브라우저에서받은 주소 중 하나를 입력하십시오. Nginx로 이동해야합니다’s 기본 방문 페이지 :
http : //server_domain_or_ip
위 페이지가 표시되면 Nginx를 성공적으로 설치했습니다.
2 단계 : MySQL을 설치하여 사이트 데이터를 관리합니다
이제 웹 서버가 있으므로 데이터베이스 관리 시스템 인 MySQL을 설치해야합니다.
입력하여 쉽게 설치할 수 있습니다
MySQL 시스템 내에서 사용하기 위해 루트 (관리자) 비밀번호를 제공하라는 요청을받습니다.
MySQL 데이터베이스 소프트웨어가 설치되었지만 구성이 아직 완료되지 않았습니다.
설치를 확보하기 위해 불안정한 기본값을 수정할 것인지 묻는 간단한 보안 스크립트를 실행할 수 있습니다. 입력하여 스크립트를 시작하십시오
MySQL 루트 계정에 대해 설정 한 비밀번호를 입력하라는 메시지가 표시됩니다. 다음으로, 유효성 검사 암호 플러그인을 구성할지 묻습니다 .
경고: 이 기능을 활성화하는 것은 판단 호출입니다. 활성화 된 경우 비밀번호가 있습니다’t 일치 지정된 기준은 MySQL에 의해 오류로 거부됩니다. Phpmyadmin 용 Ubuntu 패키지와 같은 MySQL 사용자 자격 증명을 자동으로 구성하는 소프트웨어와 함께 약한 암호를 사용하는 경우 문제가 발생합니다. 유효성 검사를 비활성화하는 것이 안전하지만 항상 데이터베이스 자격 증명에 강력하고 고유 한 암호를 사용해야합니다.
답변 와이 예, 또는 활성화하지 않고 계속할 다른 것.
비밀번호 유효성 유효성 플러그인은 비밀번호를 테스트하고 보안을 향상시키는 데 사용될 수 있습니다. 비밀번호의 강도를 확인하고 사용자가 충분히 안전한 암호 만 설정할 수 있습니다. 비밀번호 유효성 검증을 설정 하시겠습니까?? Y | y를 누르십시오. 예, 다른 키는 아니요 :
만약 너라면’VE 활성화 유효성 검사, 귀하’비밀번호 유효성 검사 레벨을 선택하라는 요청을받습니다. 입력하는 경우 명심하십시오 2, 가장 강력한 레벨의 경우 숫자, 상단 및 소문자 및 특수 문자가 포함되어 있지 않거나 일반적인 사전 단어를 기반으로하는 암호를 설정하려고 시도 할 때 오류가 발생합니다.
비밀번호 검증 정책에는 세 가지 수준의 비밀번호 검증 정책이 있습니다 : 낮은 길이> = 8 중간 길이> = 8, 숫자, 혼합 케이스 및 특수 문자 강한 길이> = 8, 숫자, 혼합 케이스, 특수 문자 및 사전 파일을 입력하십시오 0 = low, 1 = medium 및 2 = strong : 1
비밀번호 유효성 검사를 활성화 한 경우 귀하는 귀하입니다’기존 루트 비밀번호의 비밀번호 강도를 보여주고 해당 비밀번호를 변경할 것인지 물었습니다. 현재 비밀번호에 만족하면 N ~을 위한 “아니요” 프롬프트에서 :
루트에 기존 비밀번호 사용. 비밀번호의 예상 강도 : 100 루트의 비밀번호를 변경하십시오 ? ((예, 기타 키에 대한 y | y를 누르십시오) : N
나머지 질문은 와이 그리고 입력하다 각 프롬프트에서 키. 이렇게하면 일부 익명의 사용자와 테스트 데이터베이스가 제거되고 원격 루트 로그인을 비활성화 하고이 새로운 규칙을로드하여 MySQL이 우리가 만든 변경 사항을 즉시 존중합니다.
이 시점에서 데이터베이스 시스템이 설정되어 있으며 계속 진행할 수 있습니다.
3 단계 : 처리를 위해 PHP를 설치하십시오
우리는 이제 우리의 페이지를 제공하기 위해 nginx를 설치하고 데이터를 저장하고 관리하기 위해 MySQL을 설치했습니다. 그러나 우리는 여전히하지 않습니다’동적 컨텐츠를 생성 할 수있는 모든 것이 있습니다. 이를 위해 PHP를 사용할 수 있습니다.
Nginx는 다른 웹 서버와 같이 기본 PHP 처리를 포함하지 않으므로 PHP-FPM을 설치해야합니다 “FASTCGI 프로세스 관리자”. 우리는 Nginx에게 PHP 요청을이 소프트웨어에 처리하기 위해이 소프트웨어에 전달하도록 지시합니다.
이 모듈을 설치할 수 있으며 PHP가 데이터베이스 백엔드와 통신 할 수있는 추가 도우미 패키지도 가져옵니다. 설치가 필요한 PHP 코어 파일을 가져옵니다. 입력하여 다음을 수행합니다
PHP 프로세서를 구성하십시오
이제 PHP 구성 요소가 설치되었지만 설정을보다 안전하게 만들려면 약간의 구성 변경이 필요합니다.
루트 권한이있는 기본 PHP-FPM 구성 파일을 엽니 다
이 파일에서 찾고있는 것은 CGI를 설정하는 매개 변수입니다.fix_pathinfo . 이것은 세미콜론 (;)으로 주석을 달고 “1” 기본적으로.
PHP가 요청 된 PHP 파일을 찾을 수없는 경우 찾을 수있는 가장 가까운 파일을 실행하도록 지시하기 때문에 매우 불안한 설정입니다. 이것은 기본적으로 사용자가 PHP 요청을 제작하여 스크립트를 실행할 수있는 방식으로’t는 실행할 수 없습니다.
우리는 선을 막고 그것을 설정 하여이 두 조건을 모두 변경합니다 “0” 이와 같이:
/etc/php/7.0/fpm/php.이니
CGI.fix_pathinfo = 0
완료되면 파일을 저장하고 닫습니다.
이제 입력하여 PHP 프로세서를 다시 시작하면됩니다
이것은 우리가 한 변화를 구현할 것입니다.
4 단계 : PHP 프로세서를 사용하도록 nginx 구성
이제 필요한 모든 구성 요소가 설치되어 있습니다. 여전히 필요한 구성 변경은 Nginx에게 동적 콘텐츠에 PHP 프로세서를 사용하도록 지시하는 것입니다.
서버 블록 레벨 에서이 작업을 수행합니다 (서버 블록은 Apache와 유사합니다’S 가상 호스트). 입력하여 기본 Nginx 서버 블록 구성 파일을 엽니 다
현재 주석이 제거되면 Nginx 기본 서버 블록 파일은 다음과 같습니다
/etc/nginx/sites-avable/default
섬기는 사람 < listen 80 default_server; listen [::]:80 default_server; root /var/www/html; index index.html index.htm index.nginx-debian.html; server_name _; location / < try_files $uri $uri/ =404; >>
우리 사이트 의이 파일을 변경해야합니다.
- 먼저 인덱스를 추가해야합니다.PHP는 인덱스 지시문의 첫 번째 값으로 인덱스라는 파일.PHP는 사용 가능한 경우 디렉토리가 요청 될 때 제공됩니다.
- 서버를 가리키기 위해 Server_name 지시문을 수정할 수 있습니다’S 도메인 이름 또는 공개 IP 주소.
- 실제 PHP 처리를 위해서는 각 줄 앞에서 파운드 기호 (#)를 제거하여 PHP 요청을 처리하는 파일의 세그먼트를 막아야합니다. 이것은 위치가 될 것입니다 ~ \.PHP $ 위치 블록, 포함 된 FastCGI-PHP.Conf 스 니펫 및 PHP-FPM과 관련된 소켓 .
- 우리는 또한 위치 블록을 다루는 것을 막을 것입니다 .동일한 방법을 사용하여 파일을 htaccess. nginx’이 파일을 처리합니다. 이 파일 중 하나라도 문서 루트로가는 길을 찾으면 방문자에게 제공되지 않아야합니다.
아래 텍스트에서 변경해야 할 변경 사항은 다음과 같습니다
/etc/nginx/sites-avable/default
섬기는 사람 < listen 80 default_server; listen [::]:80 default_server; root /var/www/html; index 색인.PHP 색인.HTML 인덱스.HTM 인덱스.nginx-debian.HTML; 서버 이름 server_domain_or_ip; 위치 / < try_files $uri $uri/ =404; >위치 ~ \.php $ 스 니펫/Fastcgi-php 포함.콘크리트; fastcgi_pass unix :/run/php/php7.0-fpm.양말; > 위치 ~ /\.ht 모든 것을 거부합니다 > >
때를’위의 변경 사항을 변경하면 파일을 저장하고 닫을 수 있습니다.
입력하여 구문 오류에 대한 구성 파일을 테스트하십시오
오류 가보고 된 경우 계속되기 전에 돌아가서 파일을 다시 확인하십시오.
준비가되면 Nginx를 다시로드하여 필요한 변경을 수행하십시오
5 단계 : 구성 테스트 할 PHP 파일 생성
이제 Lemp 스택을 완전히 설정해야합니다. Nginx가 올바르게 손에 넣을 수 있는지 확인하기 위해 테스트 할 수 있습니다 .PHP는 PHP 프로세서에 파일을 파일합니다.
문서 루트에서 테스트 PHP 파일을 만들어이 작업을 수행 할 수 있습니다. Info라는 새 파일을 엽니 다.텍스트 편집기의 문서 루트 내의 PHP :
다음 줄을 새 파일에 입력하거나 붙여 넣습니다. 이것은 당사 서버에 대한 정보를 반환 할 유효한 PHP 코드입니다
/var/www/html/info.PHP
완료되면 파일을 저장하고 닫습니다.
이제 서버를 방문하여 웹 브라우저 에서이 페이지를 방문 할 수 있습니다’S 도메인 이름 또는 공개 IP 주소 다음 /정보.PHP :
http : //server_domain_or_ip/정보.PHP
PHP가 서버에 대한 정보와 함께 생성 된 웹 페이지가 표시됩니다
이렇게 보이는 페이지가 보이면’VE NGINX로 PHP 처리를 성공적으로 설정했습니다.
nginx가 페이지를 올바르게 렌더링하는지 확인한 후’실제로 무단 사용자를 제공 할 수 있으므로 생성 된 파일을 제거하는 것이 가장 좋습니다. 나중에 필요한 경우 항상이 파일을 재생할 수 있습니다.
지금은 입력하여 파일을 제거하십시오
결론
이제 Ubuntu 16에서 Lemp 스택을 구성해야합니다.04 서버. 이것은 방문자에게 웹 컨텐츠를 제공하기위한 매우 유연한 기반을 제공합니다.
Digitalocean 커뮤니티와 함께 배우아 주셔서 감사합니다. Compute, Storage, Networking 및 Managed Database의 오퍼링을 확인하십시오.