찾다
PHP 프레임워크ThinkPHPTP 프로젝트를 운영하는 Laradocke 소개

프레임워크 튜토리얼 칼럼에서 소개한 내용입니다. 필요한 친구들에게 도움이 되었으면 좋겠습니다!

TP 프로젝트를 운영하는 Laradocke 소개

1. laradock이 처음 실행되었을 때 빌드 과정이 매우 느렸습니다

풀링된 컨테이너의 이미지는 기본적으로 해외이므로 docker-compose 컨테이너를 구성하기 전에 다음 텍스트를 찾아보세요. .env 파일에서 CHANGE_SOURCE=``false

그런 다음 false를 true로 변경하고 다음 텍스트를 찾으세요

#UBUNTU_SOURCE=aliyunCHANGE_SOURCE=``false

然后将false改为true,并查找以下文字

#UBUNTU_SOURCE=aliyun

把前面的 # 去掉,即去掉注释,把默认在国外的镜像源改为国内速度快的aliyun的镜像源

然后把workspace的时区,改为中国时区,查找以下文字

WORKSPACE_TIMEZONE=UTC

把UTC改为PRC

然后执行命令

docker-compose up -d nginx mariadb

自己选择需要启动的容器

亲自对比过build的时间,在20M带宽下,不更改镜像源的话快则一小时,慢则一天,更改过后,仅需10min

二、laradock在启动容器 build workspace 的过程中报错

若出现相关文字 “raw.githubusercontent.com”,则在本地hosts绑定域名到ip

以linux为例

vim ``/etc/hosts

在文件中输入 “199.232.28.133 raw.githubusercontent.com” 即可

三、composer install 速度慢

安装完laradock在worksapce容器中从第三方托管仓库用git拉取tp5框架下来,然后安装框架依赖,这个时候composer install很慢,需要更换国内源,执行下面命令

composer config -g repo.packagist composer https:``//packagist``.phpcomposer.com

四、composer忽略版本号安装

composer install 过程中遇到 Your requirements could not be resolved to an installable set of packages. 错误提示,则可以忽略版本号安装,执行下面命令

composer ``install --ignore-platform-reqs

五、composer安装tp5的数据库迁移工具

tp5.0的迁移工具是 1.,tp5.1是 2.,若不指定版本号,则默认安装最新的迁移工具,执行下面命令

composer require topthink``/think-migration``=1.*

六、laradock中tp5配置数据库连接时,host填写容器名字

我用的mariadb这个容器,所以如下配置

'host'=>'mariadb'

七、tp5给runtime全部权限

hmod -r runtime 777

八、tp5捕获mysql的抛出的异常

在catch的参数Exception前面加个反斜线,表示从最底层的Exception开始捕获

catch``(Exception)

九、做图片上传接口时,mkdir报错 no permission

为了引用图片方便,我把图片存储目录指定为 public/uploads ,但是报错了,可以通过给public全部权限解决

chmod -r public 777

十、后端接口的时候权限验证

oauth2时一个非常好的授权机制,php有一个很好的库 https://github.com/thephpleague/oauth2-server, 但是很无奈,不像laravel有passport,也支持Drupal,cakephp等框架

使用Json-web-token也蛮好的 https://github.com/lcobucci/jwt

十一、跨域处理

在application目录下的tags.php中的添加应用初始化时执行的文件,例如我把跨域放在 applicationapi/behavior/CORS.php 文件中,在应用初始化过程中就发出header

// 应用初始化``'app_init'     => [``'app\api\behavior\CORS'``],

#을 제거하세요. 앞에, 즉 제거하세요 참고, 기본 해외 미러 소스를 국내 빠른 aliyun 미러 소스로 변경하세요

그런 다음 작업 공간의 시간대를 중국 시간대로 변경하고 다음 텍스트를 찾으세요 🎜🎜WORKSPACE_TIMEZONE =UTC🎜🎜 UTC를 PRC로 변경🎜🎜그런 다음🎜🎜docker-compose up -d nginx mariadb🎜🎜시작에 필요한 컨테이너를 선택하세요🎜🎜개인적으로 비교했습니다 빌드 시간은 20M 대역폭 미만에서는 변경되지 않습니다. 미러 소스는 최대 1시간까지 빠르거나 최대 1일까지 느려질 수 있습니다. 변경 후 10분만 소요됩니다🎜🎜🎜🎜🎜 2. laradock에서 오류를 보고합니다. 컨테이너 빌드 작업 공간을 시작하는 과정🎜🎜🎜해당 텍스트 "raw.githubusercontent.com"이 나타나면 로컬 호스트의 IP에 도메인 이름을 바인딩합니다🎜🎜Linux를 예로 들어🎜🎜vim``/ etc/hosts🎜🎜파일에 "199.232.28.133 raw.githubusercontent.com"을 입력하세요🎜 🎜🎜🎜🎜3. Composer 설치가 느립니다🎜🎜🎜laradock을 설치한 후 git을 사용하여 tp5 프레임워크를 작업공간 컨테이너에 타사 호스팅 웨어하우스를 설치한 후 프레임워크 종속성을 설치합니다. 이때 작곡가 설치가 매우 느리므로 다음 명령을 실행해야 합니다.🎜🎜composer config -g repo. packagist Composer https:``//packagist``.phpcomposer.com🎜🎜🎜🎜🎜4. Composer는 버전 번호 설치를 무시합니다🎜🎜🎜composer install 요구 사항을 설치 가능한 세트로 해결할 수 없습니다. 오류 메시지가 나타나면 설치 버전 번호를 무시하고 🎜🎜composer ``install --ignore- platform-reqs🎜🎜 명령을 실행하면 됩니다. 🎜🎜🎜5. Composer는 tp5 데이터베이스 마이그레이션 도구를 설치합니다🎜🎜🎜 tp5.0의 마이그레이션 도구는 1.이고 tp5.1의 경우 2.🎜입니다. 버전 번호가 지정되지 않은 경우 최신 마이그레이션입니다. 도구는 기본적으로 설치되어 있으므로 다음 명령을 실행하십시오. 🎜🎜composer require topthink``/think-migration``=1.*🎜🎜🎜🎜🎜 6. laradock의 tp5에서 데이터베이스 연결을 구성하는 경우 , 호스트는 컨테이너 이름을 입력합니다🎜🎜🎜저는 mariadb 컨테이너를 사용하므로 다음과 같이 구성합니다🎜🎜'host'=>'mariadb'🎜🎜🎜🎜🎜 7. tp5는 모든 권한을 부여합니다 🎜🎜 🎜hmod -r Runtime 777🎜🎜🎜🎜🎜8. TP5는 mysql에서 발생한 예외를 캡처합니다🎜🎜🎜 catch 매개변수 앞에 백슬래시를 추가합니다. 가장 낮은 것부터 시작함을 나타내는 예외 예외 캡처🎜🎜catch``(예외)🎜🎜🎜🎜🎜9. 이미지 업로드 인터페이스를 수행할 때 mkdir에서 권한 없음 오류를 보고했습니다.🎜🎜🎜이미지 참조를 용이하게 하기 위해 이미지 저장 디렉터리를 public/uploads로 지정했지만 오류가 보고되면 공개 전체 권한을 부여하여 해결할 수 있습니다🎜🎜chmod -r public 777🎜🎜🎜🎜🎜10. 백엔드 인터페이스 중 권한 확인🎜🎜🎜 oauth2는 매우 좋은 인증 메커니즘입니다. PHP는 좋은 라이브러리(https://github.com/thephpleague/oauth2-server)를 가지고 있지만 Passport가 있는 laravel과 달리 Drupal도 지원합니다. , cakephp 및 기타 프레임워크🎜🎜Json-web-token https://github.com/lcobucci/jwt🎜🎜🎜🎜🎜을 사용하는 것도 좋습니다. 11. 크로스 도메인 처리🎜🎜🎜응용 프로그램의 Tags.php에서 디렉터리에 애플리케이션이 초기화될 때 실행되는 파일을 추가합니다. 예를 들어 저는 applicationapi/behavior/에 크로스 도메인을 넣었습니다. CORS.php 파일에는 헤더🎜🎜// 애플리케이션 초기화``'app_init ' => [``'app\api\behavior\CORS' ``], 🎜🎜교차 도메인 파일🎜
<?php namespace app\api\behavior; use think\Response; class CORS{ public function appInit(&$params)
    { header(&#39;Access-Control-Allow-Origin: *&#39;);
    header("Access-Control-Allow-Headers: token,Origin, X-Requested-With, Content-Type, Accept");
    header("Access-Control-Allow-Methods:GET, POST"); 
        if (request()->isOptions()) {
            exit();
        }
    }}

12.git push/pull에는 신원 확인이 필요합니다. 사용자 이름과 비밀번호를 여러 번 입력하세요

Linux 환경에서는 웨어하우스 디렉터리에서 실행하세요

git config --global credential.helper store<code>git config --global credential.helper store

十三、git push 卡住

设置发包无边界,http的请求换缓冲区设置得大一些

git config --global sendpack.sideband false git config --global http.postBuffer 524288000

十四、nginx不支持tp5的pathinfo

更改项目对应的 .conf 文件配置

<?php
namespace app\api\behavior; use think\Response; class CORS
{ public function appInit(&$params)
    { header(&#39;Access-Control-Allow-Origin: *&#39;);
    header("Access-Control-Allow-Headers: token,Origin, X-Requested-With, Content-Type, Accept");
    header("Access-Control-Allow-Methods:GET, POST"); 
        if (request()->isOptions()) {
            exit();
        }
    }
}

更改前 location ~ .php$ {

 location ~ \.php { 
    try_files $uri /index.php =404;
    fastcgi_pass php-upstream;
    fastcgi_index index.php;
    fastcgi_buffers 16 16k;
    fastcgi_buffer_size 32k;
    # 添加部分↓↓↓↓
    # Set var PATH_INFO
    fastcgi_split_path_info ^(.+\.php)(.*)$;
    fastcgi_param PATH_INFO $fastcgi_path_info;
    #  添加部分↑↑↑↑
    fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;   
    #fixes timeouts
    fastcgi_read_timeout 600;
    include fastcgi_params;}

具体选项待我找时间学习一下

十四、Docker配置国内源

sudo tee /etc/docker/daemon.json

vim /etc/docker/daemon.json

输入以下内容,地址可以自己额外选择

{
  "registry-mirrors": ["https://uxk0ognt.mirror.aliyuncs.com"]
  }

#然后执行下面的指令

systemctl daemon-reload
systemctl restart docker

13. git push 멈춤

전송 패키지를 경계선 없이 설정하고, HTTP 요청 버퍼를 더 크게 설정합니다.

git config --global sendpack.sideband false git config - -global http.postBuffer 524288000

🎜🎜🎜14. nginx는 tp5 pathinfo를 지원하지 않습니다.🎜🎜🎜프로젝트에 해당하는 .conf 파일 구성을 변경하세요🎜rrreee🎜🎜이전 위치를 변경하세요 ~ .php$ {🎜🎜rrreee 🎜구체적인 옵션에 대해 알아보는 시간을 갖도록 하겠습니다🎜🎜🎜🎜🎜14.Docker 구성 국내 소스🎜🎜🎜sudo tee /etc/docker/daemon.json 🎜 🎜<code>vim /etc/docker/daemon.json🎜🎜🎜🎜🎜다음 내용을 입력하세요. 주소는 직접 선택할 수 있습니다🎜🎜rrreee🎜#그런 다음 다음 명령을 실행하세요🎜🎜 systemctl daemon-reload
systemctl restart docker🎜🎜🎜🎜🎜Remarks🎜🎜🎜우리 모두 알고 있듯이 github에서 복제하는 것은 항상 느립니다. Code Cloud를 사용하여 자주 사용하는 Warehouse를 미리 자신에게 가져오고, 필요할 때 Code Cloud를 통해 복제할 수 있습니다.

위 내용은 TP 프로젝트를 운영하는 Laradocke 소개의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

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

핫 AI 도구

Undresser.AI Undress

Undresser.AI Undress

사실적인 누드 사진을 만들기 위한 AI 기반 앱

AI Clothes Remover

AI Clothes Remover

사진에서 옷을 제거하는 온라인 AI 도구입니다.

Undress AI Tool

Undress AI Tool

무료로 이미지를 벗다

Clothoff.io

Clothoff.io

AI 옷 제거제

Video Face Swap

Video Face Swap

완전히 무료인 AI 얼굴 교환 도구를 사용하여 모든 비디오의 얼굴을 쉽게 바꾸세요!

뜨거운 도구

스튜디오 13.0.1 보내기

스튜디오 13.0.1 보내기

강력한 PHP 통합 개발 환경

드림위버 CS6

드림위버 CS6

시각적 웹 개발 도구

에디트플러스 중국어 크랙 버전

에디트플러스 중국어 크랙 버전

작은 크기, 구문 강조, 코드 프롬프트 기능을 지원하지 않음

SublimeText3 영어 버전

SublimeText3 영어 버전

권장 사항: Win 버전, 코드 프롬프트 지원!

MinGW - Windows용 미니멀리스트 GNU

MinGW - Windows용 미니멀리스트 GNU

이 프로젝트는 osdn.net/projects/mingw로 마이그레이션되는 중입니다. 계속해서 그곳에서 우리를 팔로우할 수 있습니다. MinGW: GCC(GNU Compiler Collection)의 기본 Windows 포트로, 기본 Windows 애플리케이션을 구축하기 위한 무료 배포 가능 가져오기 라이브러리 및 헤더 파일로 C99 기능을 지원하는 MSVC 런타임에 대한 확장이 포함되어 있습니다. 모든 MinGW 소프트웨어는 64비트 Windows 플랫폼에서 실행될 수 있습니다.