프레임워크 튜토리얼 칼럼에서 소개한 내용입니다. 필요한 친구들에게 도움이 되었으면 좋겠습니다!
1. laradock이 처음 실행되었을 때 빌드 과정이 매우 느렸습니다풀링된 컨테이너의 이미지는 기본적으로 해외이므로 docker-compose 컨테이너를 구성하기 전에 다음 텍스트를 찾아보세요. .env 파일에서 CHANGE_SOURCE=``false
그런 다음 false를 true로 변경하고 다음 텍스트를 찾으세요
#UBUNTU_SOURCE=aliyun
CHANGE_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'``],
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' ``],
🎜🎜교차 도메인 파일🎜8e5f4823a1a069d93bb8997d8962fea6isOptions()) { 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('Access-Control-Allow-Origin: *'); 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 <<-'EOF'
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
sudo tee /etc/docker/daemon.json <<-'EOF'🎜 🎜vim /etc/docker/daemon.json
🎜🎜🎜🎜🎜다음 내용을 입력하세요. 주소는 직접 선택할 수 있습니다🎜🎜rrreee🎜#그런 다음 다음 명령을 실행하세요🎜🎜 systemctl daemon-reload
systemctl restart docker
🎜🎜🎜🎜🎜Remarks🎜🎜🎜우리 모두 알고 있듯이 github에서 복제하는 것은 항상 느립니다. Code Cloud를 사용하여 자주 사용하는 Warehouse를 미리 자신에게 가져오고, 필요할 때 Code Cloud를 통해 복제할 수 있습니다.
위 내용은 TP 프로젝트를 운영하는 Laradocke 소개의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!