>  기사  >  백엔드 개발  >  서버 배포 중 thinkphp5에서 발생하는 문제 요약

서버 배포 중 thinkphp5에서 발생하는 문제 요약

不言
不言원래의
2018-08-15 09:48:416279검색

이 글은 thinkphp5가 서버를 배포하는 과정에서 겪게 되는 문제를 요약한 것입니다. 도움이 필요한 친구들이 참고할 수 있기를 바랍니다.

최근 TP5 배포에서는 다양한 환경에서 몇 가지 문제가 발생합니다. 다음은 제가 함정을 기록한 방법입니다.

먼저 1.5를 사용하고 있는 가장 간단한 lnmp 원클릭 설치 패키지에 대해 이야기해 보겠습니다. 안정 버전

설치 명령:wget http://soft.vpser.net/lnmp/lnmp1.5.tar.gz -cO lnmp1.5.tar.gz && tar zxf lnmp1.5.tar.gz && cd lnmp1.5 && ./install.sh lnmp(원클릭 설치 + 컴파일)

LNMPA 또는 LAMP를 설치해야 하는 경우 ./install.sh 뒤의 lnmp 매개변수를 lnmpa 또는 lamp로 바꾸면 됩니다. 웹사이트 및 데이터베이스 디렉터리를 변경하고, Nginx 매개변수, PHP 매개변수 모듈을 사용자 정의하고, lua를 열어야 하는 경우 ./install.sh 명령을 실행하기 전에 설치 패키지 디렉터리에서 lnmp.conf 파일을 수정해야 합니다. 자세한 내용은 lnmp.conf 파일 매개변수 설명을 볼 수 있습니다.

첫 번째 팁: 데이터베이스를 제공하고(저는 3개를 사용합니다) 숫자를 입력하고 Enter를 누르세요

두 번째 팁: 데이터베이스 비밀번호를 입력하세요

세 번째 팁: Innodb를 활성화하려면 Enter를 누르거나 y를 누르세요

네 번째 팁: PHP 버전을 선택하세요(기본값 5.6) 내 것이 기본 버전입니다

다섯 번째 팁: 나는 하지 않기로 선택했습니다 기본적으로 설치하려면(내 것이 기본값)

여섯 번째 팁: Apache 버전을 선택하세요(기본값을 선택했습니다)

일곱 번째 팁: Nginx가 표시되는 경우 : OK, MySQL: OK, PHP: OK

및 Nginx, MySQL 및 PHP가 모두 실행 중이고 포트 80 및 3306이 존재하며 설치 시간 및 lnmp V1 설치가 완료되었습니다! 즐기세요라고 표시되면 설치가 성공한 것입니다.
일부 시스템은 lnmp V1.5 설치 완료 시 작동이 중단될 수 있습니다. 자동으로 종료되지 않으면 Ctrl+c를 눌러 종료하세요.

설치가 완료되면 가상 호스트 추가 튜토리얼을 클릭하여 사용할 수 있습니다. 가상 호스트를 추가한 후 SFTP 또는 FTP 서버를 사용하여 웹사이트 코드를 업로드하고 도메인 이름을 IP로 확인할 수 있습니다. VPS 또는 서버를 선택하면 해상도가 적용되어 사용할 수 있습니다.

여덟 번째 프롬프트: 설치 실패

위 그림과 유사한 프롬프트가 나타나면 하나 또는 여러 개가 성공적으로 설치에 실패한 것입니다. 이는 설치가 실패했음을 나타냅니다! ! Winscp 또는 기타 유사한 도구를 사용하여 /root 디렉토리 아래에 lnmp-install.log를 다운로드하고 LNMP 지원 포럼에 게시하고 시스템 배포 이름과 버전 번호(32비트 또는 64비트 등)를 표시해야 합니다. lnmp 변경 - install.log는 압축되어 포럼에 첨부 파일로 업로드됩니다. 로그를 통해 오류를 찾아 해당 솔루션을 제공합니다. 기본적으로 LNMP는 FTP 서버가 필요한 경우 https: //lnmp.org/faq /ftpserver.html

가상 호스트 추가: lnmp 패키지는 매우 편리합니다

lnmp vhost add //가상 호스트 추가

입력하세요 가상도메인 이름은 광산 www.tp5api.cn

도메인 이름을 더 추가할지 묻는데, 바인딩할 도메인 이름을 직접 입력하고 엔터만 누르고 건너뛰면 됩니다

웹사이트 디렉토리가 존재하지 않으면 디렉토리가 생성됩니다. 기존 디렉터리나 설정할 디렉터리를 입력할 수도 있습니다(

입력하려면 전체 경로, 즉 /!!!

로 시작하는 전체 경로여야 합니다). 입력하지 않고 Enter를 누르면 기본 디렉터리인 /home/wwwroot/domain name

SEO 최적화에 도움이 되는 의사 정적 활성화

를 사용합니다.

기본적으로 discuz, discuzx, discuzx2(Discuz X 보조 디렉터리), wordpress, wp2(WordPress 보조 디렉터리), typecho, typecho2(Typecho 보조 디렉터리), sablog, emlog, dabr, phpwind,, 일반적으로 사용되는 Nginx pseudo -dedecms, drupal, ecshop, shopex 등의 정적 구성 파일은 이름을 직접 입력하여 사용할 수 있습니다. 보조 디렉터리인 경우 구성 파일의 보조 디렉터리 이름과 일치해야 합니다.

오류 로그를 켤지 여부

활성화하면, 필요한 정보를 다시 입력하십시오. 설정된 로그 이름은 /home/wwwlogs/입니다. 기본 파일 이름은 domain name.log입니다. Enter를 눌러 확인하면 데이터베이스를 추가할지 묻는 메시지가 표시됩니다. 그리고 데이터베이스 사용자.

추가하려면 먼저 MySQL 루트 비밀번호를 확인해야 합니다. (참고: 비밀번호를 입력하면 표시되지 않습니다.)
프롬프트 데이터베이스 이름 입력: 생성할 데이터베이스의 이름을 입력한 후 Enter를 눌러 확인합니다.
Prompt mysql 사용자의 비밀번호를 입력하세요. 데이터베이스 이름: 설정할 비밀번호를 입력하고 Enter를 눌러 확인하세요.

FTP 서버가 설치되어 있으면 에서 FTP 계정을 추가할지 묻는 메시지가 표시됩니다.

#🎜 🎜#추가해야 할 경우 y를 입력하고 n을 추가하지 말고 Enter를 누르세요.

프롬프트에서 FTP 계정 이름 입력:을 입력한 다음 생성할 FTP 계정의 이름을 입력하고 Enter를 눌러 확인합니다.

프롬프트 FTP 계정 비밀번호 입력 FTP 계정: 설정할 비밀번호를 입력하고 Enter를 눌러 확인합니다.

다음 단계는 1.4에 추가된 새로운 SSL 기능입니다

입력 y를 추가해야 하는 경우 입력 n을 추가하지 말고 누르세요. 입력하다.

SSL을 추가하도록 선택하면

이라는 메시지가 표시됩니다. 옵션 1은 준비한 SSL 인증서와 키를 사용하는 것입니다.

> > 메시지가 표시되면 SSL 인증서 파일의 전체 경로를 입력하고 원하는 SSL 인증서의 전체 경로와 파일 이름을 입력한 후 Enter를 눌러 확인하세요.
> > 프롬프트 SSL 인증서 키 파일의 전체 경로를 입력하세요. 그런 다음 키 파일의 전체 경로와 파일 이름을 입력하고 Enter를 눌러 확인하세요.

2 옵션은 무료 SSL 인증서 제공업체 Letsencrypt의 인증서를 사용하여 SSL 인증서 및 기타 정보를 자동으로 생성하는 것입니다.

이메일 주소를 입력하고 Enter를 눌러 확인해야 합니다.

Tip 가상 호스트 생성을 시작하려면 아무 키나 누르세요... Enter를 눌러 확인하면 가상 호스트 생성이 시작됩니다.

추가에 성공하면 아래와 같이 추가된 도메인 이름, 디렉터리, 의사 정적, 로그, 데이터베이스, FTP 및 기타 관련 정보가 표시됩니다.

# 🎜🎜## 🎜🎜###의사 정적 관리##

LNMPA 또는 LAMP는 웹 사이트 루트 디렉터리를 직접 사용하여 .htaccess를 다운로드하여 의사 정적 규칙을 설정할 수 있습니다(특정 규칙에 따라 프로그램의 공식 웹사이트로 이동하여 Google Baidu를 찾을 수 있지만 LNMP에서는 Nginx 의사 정적 규칙을 사용해야 합니다. Pseudo-static은 언제든지 추가하거나 삭제할 수 있습니다. 가상 호스트를 추가한 후 pseudo-static을 추가하지 않거나 잊어버린 경우 구성 파일을 수정하여 pseudo-static을 추가할 수 있습니다.

가상 호스트 구성 파일은/usr/local/nginx/conf/vhost/domain name.conf에 있습니다.


의사 정적 규칙 파일은 /usr/local에 있어야 합니다. /nginx/conf/.
가상 호스트 구성 파일을 편집하려면 vi, nano 또는 wincp를 사용할 수 있습니다. 후자의 두 도구는 초보자에게 더 쉽습니다.

예를 들어 앞서 추가한 가상 호스트를 열면 구성의 전반부가 다음과 같이 표시됩니다.


루트 /home/ wwwroot/www.vpser.net; 다음 줄을 추가하세요:
include wordpress.conf;위의 wordpress.conf는 의사 정적 파일이 필요한 경우 직접 만드세요. /usr/local/nginx/conf/에 업로드하고 추가, 저장 및 실행 후 pseudo-static.conf를 포함합니다.
/etc/init.d/nginx restart
다시 시작하면 적용됩니다. 오류가 보고되면 추가가 잘못되었거나 의사 정적 규칙이 잘못된 것일 수 있습니다.
1.4 이하 버전의 의사 정적 파일은 모두 /usr/local/nginx/conf/ 디렉터리에 있습니다. 1.5 이상 버전의 의사 정적 파일은 모두 /에 있습니다. usr/local/nginx/conf/
rewrite 디렉터리에 있는 의사 정적 파일 이름 뒤에 2가 붙으면 보조 디렉터리의 의사 정적 파일 이름을 원하는 대로 수정할 수 있습니다. 필요하거나 다른 이름으로 복사하여 가상 호스트 구성 파일에 포함시킵니다.

##웹사이트 프로그램 업로드##

FTP 서버를 설치한 경우 FTP 클라이언트를 직접 사용하여 FTP 정보로 로그인하고 웹사이트를 업로드하거나 SFTP 및 기타 소프트웨어를 사용하여 웹사이트를 업로드하고, 관련 권한을 부여하고 설치를 시작합니다.
웹 사이트를 업로드한 후 chown www:www -R /path/to/dir을 실행하여 웹 사이트 디렉터리에 대한 권한을 설정하고 /path/to/dir을 웹 사이트 디렉터리로 바꾸는 것이 좋습니다.
보안상의 이유로 PHP 실행이 필요하지 않은 업로드된 파일과 같은 디렉터리에서 실행 권한을 제거할 수 있습니다. 참조: http://www.vpser.net/security/lnmp-remove-nginx-php-execute.html

##기존 가상 호스트에 SSL 인증서를 추가하여 https 활성화##

기존 가상 호스트에 https 사이트를 추가하려면 다음을 실행하세요. lnmp ssl add 명령을 실행하면 SSL 인증서를 추가할 수 있습니다. 현재 두 가지 방법이 있습니다. 하나는 자체 SSL 인증서를 사용하는 것이고, 두 번째는 Let'sEncrypt의 무료 인증서를 사용하는 것입니다. 추가 프로세스는 SSL 인증서 및 키를 입력하거나 Let'sEncrypt를 직접 선택하여 인증서를 자동 생성하는 추가 단계가 있다는 점을 제외하면 이전 가상 호스트 추가 프로세스와 동일합니다.
버전 1.*에서 1.4로 업그레이드하거나 버전을 변경하는 경우 안전하지 않다는 메시지가 표시되는 경우 https://lnmp.org/faq/upgrade1-4.html의 지침을 참조해야 합니다. 또는 작은 녹색 자물쇠가 표시되지 않으면 위의 링크를 참조하세요.

##웹사이트 목록(가상 호스트)##

실행: lnmp vhost list

##웹사이트 삭제(가상 호스트)##

실행: lnmp vhost del

웹사이트를 삭제하면 먼저 기존 가상 호스트가 나열됩니다. 프롬프트에 따라 삭제할 가상 호스트의 도메인 이름을 입력하고 Enter를 눌러 확인하세요.

가상 호스트 구성 파일만 삭제하는 것입니다. 웹사이트 파일은 삭제되지 않으며 직접 삭제해야 합니다.

LNMP 1.2에서는 chattr -i /websitedirectory/.user.ini를 실행하여 웹사이트 디렉토리를 삭제해야 합니다.

웹사이트 디렉토리의 소유자, 그룹 또는 권한을 조작하기 위해 chown 또는 chmod를 실행하면 chown: `/home/wwwroot/default/.user.ini'의 소유권 변경: 작업이 허용되지 않습니다. 강박장애가 있으신 분은 주의하세요. 이전 chattr -i 작업을 참고하시면 됩니다.

##기본 웹사이트(가상 호스트)##

LNMP 기본 웹사이트 구성 파일: /usr/local/nginx/conf/nginx.conf
LNMPA 기본 웹사이트 구성 파일: /usr/local/nginx/conf/ nginx.conf 및 /usr/local/apache/conf/extra/httpd-vhosts.conf
LAMP 기본 웹사이트 구성 파일: /usr/local/apache/conf/extra/httpd-vhosts.conf

## Defense 디렉터리 간 설정##

LNMP 1.1 및 이전 버전은 php.ini를 사용합니다. Open_basedir 설정

LNMP 1.2 이상 버전은 디렉터리 간 기능을 방지하기 위해 .user.ini를 사용합니다. 이 파일은 웹사이트의 루트 디렉터리에 있습니다. .user.ini의 open_basedir 값을 사용하여 액세스를 제한하는 디렉터리를 설정하거나 삭제하여 디렉터리 간 방지 설정을 제거할 수 있습니다.

.user.ini 파일은 직접 수정할 수 없습니다. 수정하거나 삭제하려면 다음을 실행해야 합니다. chattr -i /website Directory/.user.ini
winscp 파일 관리, vim 편집기 또는 nano를 사용할 수 있습니다. 수정하려면 편집기를 사용하세요.
삭제하려면 rm -f /웹사이트 디렉토리/.user.ini만 입력하면 됩니다.
수정이 완료되면 다음을 실행하세요. chattr +i /website Directory/.user.ini
.user.ini는 다시 시작할 필요가 없으며 약 5분 안에 적용됩니다. php-fpm을 다시 시작해도 적용됩니다. 즉시 적용됩니다.
웹사이트 디렉토리를 변경하려면 위의 방법에 따라 교차 디렉토리 방지 설정을 수정해야 합니다. 그렇지 않으면 오류가 보고됩니다! !

LNMP 1.4에서 안티 크로스 디렉터리를 사용하지 않거나 .user.ini의 안티 크로스 디렉터리를 수정하지 않으려면 /에서 fastcgi_param PHP_ADMIN_VALUE "open_basedir=$document_root/"도 변경해야 합니다. usr/local/nginx/conf/fastcgi.conf :/tmp/:/proc/"; 줄 앞에 #을 추가하거나 줄을 삭제하고 변경합니다. nginx를 다시 시작해야 합니다.

LNMP 1.4에서는 lnmp1.4/tools/ 디렉터리에 있는 ./remove_open_basedir_restriction.sh를 직접 사용하여 제거할 수도 있습니다.
Thinkphp, codeigniter, Laravel 등과 같은 프레임워크에서 웹사이트 디렉토리는 일반적으로 공개되어 있지만, 공개된 프로그램은 공개 상위 디렉토리에 있는 파일을 호출하기 위해 디렉토리를 교차해야 합니다. 왜냐하면 LNMP는 다음과 같은 방법으로 디렉토리 간 액세스를 허용하지 않기 때문입니다. 기본값이므로 모두 디렉토리 간 액세스를 방지하는 설정을 제거해야 합니다. 때때로 이러한 프레임워크 프로그램에서는 이 문제로 인해 500 오류가 발생할 수도 있습니다.

LNMPA 또는 LAMP 모드 버전 1.2 이상 교차 디렉터리 설정은 해당 아파치 가상 호스트 구성 파일을 사용합니다. (lnmp 관리 도구로 추가한 경우 파일은 /usr/local/apache/conf/vhost/domain입니다. name.conf) php_admin_value open_basedir 매개변수를 설정합니다. 설정할 필요가 없다면 주석 앞에 #을 추가하거나, 디렉토리 제한 사항을 직접 수정해도 됩니다.
아파치를 다시 시작하여 적용하세요.

##pathinfo 설정##

LNMP의 각 pathinfo 버전 설정은 기본적으로 동일합니다.

lnmp v1.1에서는 해당 가상 호스트의 구성 파일(/usr/local/nginx/conf/vhost/domain name.conf)을 수정합니다.
#include pathinfo.conf 앞의 #을 제거하고 try_files $를 추가합니다. uri =404; 위의 #을 주석으로 처리하세요.

버전 1.2, 1.3, 1.4, 1.5 이상에서는 해당 가상 호스트의 구성 파일(/usr/local/nginx/conf/vhost/domain name.conf)을 수정하세요.
include 활성화-php.conf를 다음으로 바꾸세요. include 활성화-php-pathinfo.conf;

버전 1.4의 여러 PHP 버전에서 pathinfo를 활성화하는 경우 /usr/local/nginx/conf 디렉터리에 들어가서 활성화-php-pathinfo.conf 복사본을 복사하고 이름을 활성화로 지정하세요. -php7.2-pathinfo.conf.enable-php7.2.conf 파일에서 fastcgi_pass 라인을 완전히 복사하고, 활성화-php7.2-pathinfo.conf 파일에서 fastcgi_pass 라인을 교체하고 저장한 후 가상을 수정합니다. 호스트에는 이전 방법에 따라 활성화-php7이 포함되며, 다른 버전에서도 마찬가지입니다.

버전 1.5에서 여러 PHP 버전에 대해 pathinfo를 활성화하면 lnmp vhost add에서 pathinfo를 활성화하도록 선택할 수 있습니다. PHP 버전이 여러 개인 경우 가상 호스트 구성 파일을 직접 수정하라는 메시지가 표시됩니다. include 활성화-php.conf를 include 활성화-php7.2-pathinfo.conf로 교체하세요. 저장

pathinfo를 수정하려면 nginx를 다시 시작해야 합니다.

##데이터베이스 관리##

1.3 이상에서는 가상 호스트를 추가할 때 데이터베이스를 생성하도록 선택하거나 lnmp 데이터베이스 추가를 단독으로 사용하여 프롬프트에 따라 데이터베이스를 추가할 수 있습니다. 추가된 사용자 이름과 데이터베이스 이름이 동일합니다.
데이터베이스 추가 명령: lnmp 데이터베이스 add
데이터베이스 사용자 비밀번호 편집 명령: lnmp 데이터베이스 편집
데이터베이스 삭제 명령: lnmp 데이터베이스 del
모든 데이터베이스 명령 나열: lnmp 데이터베이스 목록

이 정보는 모두 https://lnmp.org/에 있습니다. faq/lnmp-vhost-add-howto.html (lnmp 공식 홈페이지에서 확인)

직접 복사한 것들이 많습니다. 제 수준에 따르면 글은 공식 홈페이지 매뉴얼보다 좋지 않을 것입니다

누가 Pagoda tp5를 사용한다면. open_base_dir 오류를 보고하려면 웹사이트 설정에 보안 보호 기능이 있으므로 끄시면 됩니다(시간이 오래 걸립니다)

관련 권장 사항:

CentOS 6 Nginx + PHP5 서버 배포

배포 thinkphp 프로젝트를 Linux 서버에 "템플릿이 존재하지 않습니다" 오류를 해결하는 방법, thinkphplinux

thinkphp가 Wanwang 클라우드 서버에 배포되고 mysql

에 연결할 수 없다고 보고합니다.

위 내용은 서버 배포 중 thinkphp5에서 발생하는 문제 요약의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.