Über Laradocke, der das TP-Projekt betreibt
-Frameworks zum Ausführen des TP-Projekts über Laradocke vorgestellt. Ich hoffe, es wird für Freunde hilfreich sein, die es benötigen! 1. Als Laradock zum ersten Mal gestartet wurde, war der Build-Prozess sehr langsam in der .env-Datei CHANGE_SOURCE=``false
Dann ändern Sie false in true und suchen Sie nach dem folgenden Text
#UBUNTU_SOURCE=aliyun
Ändern Sie dann die Zeitzone des Arbeitsbereichs in die chinesische Zeitzone und suchen Sie nach dem folgenden Text WORKSPACE_TIMEZONE =UTC
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'``],
docker-compose up -d nginx mariadb
Wählen Sie den Container aus, den Sie starten müssen
🎜Ich habe das persönlich verglichen Build-Zeit, unter 20 MB Bandbreite ändert sich nicht. Die Spiegelquelle kann bis zu einer Stunde oder bis zu einem Tag langsam sein. Nach der Änderung dauert es nur 10 Minuten. 2. Laradock meldet einen Fehler während Prozess zum Starten des Container-Build-Arbeitsbereichs🎜🎜🎜Wenn der relevante Text „raw.githubusercontent.com“ angezeigt wird, dann binden Sie den Domänennamen an die IP in lokalen Hosts🎜🎜Nehmen Sie Linux als Beispiel🎜🎜vim ``/ etc/hosts
🎜🎜Geben Sie „199.232.28.133 raw.githubusercontent.com“ in die Datei ein Hosting-Warehouse eines Drittanbieters im Workspace-Container und installieren Sie dann die Framework-Abhängigkeiten. Zu diesem Zeitpunkt ist die Composer-Installation sehr langsam und inländische Quellen müssen ersetzt werden. Führen Sie den folgenden Befehl aus: composer config -g repo. packagist Composer https:``//packagist``.phpcomposer.com
🎜🎜🎜🎜🎜4 Wenn Sie während des Vorgangs eine Fehlermeldung zu den Paketen erhalten, können Sie die Versionsnummer für die Installation ignorieren und den folgenden Befehl ausführen: 🎜🎜composer ``install
--ignore- platform-reqs
🎜🎜 🎜🎜🎜5. Composer installiert das tp5-Datenbankmigrationstool🎜🎜🎜Das Migrationstool für tp5.0 ist 1. und für tp5.1 ist 2.🎜, wenn die Versionsnummer nicht angegeben ist, die neueste Migration Das Tool ist standardmäßig installiert. Führen Sie den folgenden Befehl aus: 🎜🎜composer require topthink``/think-migration``=1.*
🎜🎜🎜🎜🎜 6. Beim Konfigurieren der Datenbankverbindung in TP5 in Laradock , Host trägt den Containernamen ein🎜🎜🎜Ich verwende den Mariadb-Container, also konfiguriere ihn wie folgt🎜🎜'host'=>'mariadb'
🎜🎜🎜🎜🎜 7. tp5 gewährt volle Berechtigungen zur Laufzeit🎜🎜 🎜hmod -r runtime 777
🎜🎜🎜🎜🎜8. TP5 erfasst von MySQL ausgelöste Ausnahmen🎜🎜🎜Fügen Sie einen Backslash vor dem Catch-Parameter Exception hinzu, um anzuzeigen, dass mit dem niedrigsten Wert begonnen wird Ausnahmeerfassung🎜🎜catch``(Ausnahme)
🎜🎜🎜🎜🎜9 Beim Ausführen der Bild-Upload-Schnittstelle hat mkdir einen Fehler ohne Berechtigung gemeldet🎜🎜🎜Um die Referenzierung von Bildern zu erleichtern, Ich habe das Bildspeicherverzeichnis als „public/uploads“ angegeben, es wird jedoch ein Fehler gemeldet. Dieser kann behoben werden, indem während der Backend-Schnittstelle „public“ vollständige Berechtigungen erteilt werden ist ein sehr guter Autorisierungsmechanismus, PHP verfügt über einen sehr guten Autorisierungsmechanismus. Eine gute Bibliothek https://github.com/thephpleague/oauth2-server, aber im Gegensatz zu Laravel, das über Passport verfügt, unterstützt es auch Drupal und Cakephp und andere Frameworks🎜🎜Es ist auch gut, Json-web-token https://github.com/lcobucci/jwt zu verwenden🎜🎜🎜🎜🎜 11. Domänenübergreifende Verarbeitung🎜🎜🎜In tags.php im Anwendungsverzeichnis, Fügen Sie die Datei hinzu, die ausgeführt wird, wenn die Anwendung initialisiert wird. Zum Beispiel habe ich die domänenübergreifende Datei in applicationapi/behavior/ eingefügt. In der CORS.php-Datei ist der Header🎜🎜// Anwendungsinitialisierung``'app_init' <code>=> [``'app\api\behavior\CORS' ``],
🎜🎜Domainübergreifende Dateien🎜<?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(); } }}
12. Git Push/Pull erfordert Identitätsüberprüfung, geben Sie den Benutzernamen und das Passwort mehrmals ein
In der Linux-Umgebung im Warehouse-Verzeichnis ausführen
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 steckt fest
Stellen Sie das Sendepaket auf randlos ein und stellen Sie den HTTP-Anforderungspuffer auf einen größeren Wert eingit config --global sendpack.sideband false git config - -global http.postBuffer 524288000
sudo tee /etc/docker/daemon.json <<-'EOF'🎜 🎜<code>vim /etc/docker/daemon.json
🎜🎜🎜🎜🎜Geben Sie den folgenden Inhalt ein, die Adresse kann selbst ausgewählt werden🎜🎜rrreee🎜#Führen Sie dann den folgenden Befehl aus🎜🎜 systemctl daemon-reload
systemctl restart docker
🎜🎜🎜🎜🎜Bemerkungen🎜🎜🎜Wie wir alle wissen, ist das Klonen von Github immer langsam. Sie können es wählen Verwenden Sie Code Cloud, um häufig verwendete Warehouses im Voraus in Ihren Code Cloud-Arbeitsbereich zu importieren. Sie können ihn bei Bedarf über die Code Cloud klonenDas obige ist der detaillierte Inhalt vonÜber Laradocke, der das TP-Projekt betreibt. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Heiße KI -Werkzeuge

Undresser.AI Undress
KI-gestützte App zum Erstellen realistischer Aktfotos

AI Clothes Remover
Online-KI-Tool zum Entfernen von Kleidung aus Fotos.

Undress AI Tool
Ausziehbilder kostenlos

Clothoff.io
KI-Kleiderentferner

AI Hentai Generator
Erstellen Sie kostenlos Ai Hentai.

Heißer Artikel

Heiße Werkzeuge

Notepad++7.3.1
Einfach zu bedienender und kostenloser Code-Editor

SublimeText3 chinesische Version
Chinesische Version, sehr einfach zu bedienen

Senden Sie Studio 13.0.1
Leistungsstarke integrierte PHP-Entwicklungsumgebung

Dreamweaver CS6
Visuelle Webentwicklungstools

SublimeText3 Mac-Version
Codebearbeitungssoftware auf Gottesniveau (SublimeText3)

Heiße Themen



PHP 8.4 bringt mehrere neue Funktionen, Sicherheitsverbesserungen und Leistungsverbesserungen mit einer beträchtlichen Menge an veralteten und entfernten Funktionen. In dieser Anleitung wird erklärt, wie Sie PHP 8.4 installieren oder auf PHP 8.4 auf Ubuntu, Debian oder deren Derivaten aktualisieren. Obwohl es möglich ist, PHP aus dem Quellcode zu kompilieren, ist die Installation aus einem APT-Repository wie unten erläutert oft schneller und sicherer, da diese Repositorys in Zukunft die neuesten Fehlerbehebungen und Sicherheitsupdates bereitstellen.

Visual Studio Code, auch bekannt als VS Code, ist ein kostenloser Quellcode-Editor – oder eine integrierte Entwicklungsumgebung (IDE) –, die für alle gängigen Betriebssysteme verfügbar ist. Mit einer großen Sammlung von Erweiterungen für viele Programmiersprachen kann VS Code c

Wenn Sie ein erfahrener PHP-Entwickler sind, haben Sie möglicherweise das Gefühl, dass Sie dort waren und dies bereits getan haben. Sie haben eine beträchtliche Anzahl von Anwendungen entwickelt, Millionen von Codezeilen debuggt und eine Reihe von Skripten optimiert, um op zu erreichen

Dieses Tutorial zeigt, wie XML -Dokumente mit PHP effizient verarbeitet werden. XML (Extensible Markup-Sprache) ist eine vielseitige textbasierte Markup-Sprache, die sowohl für die Lesbarkeit des Menschen als auch für die Analyse von Maschinen entwickelt wurde. Es wird üblicherweise für die Datenspeicherung ein verwendet und wird häufig verwendet

JWT ist ein offener Standard, der auf JSON basiert und zur sicheren Übertragung von Informationen zwischen Parteien verwendet wird, hauptsächlich für die Identitätsauthentifizierung und den Informationsaustausch. 1. JWT besteht aus drei Teilen: Header, Nutzlast und Signatur. 2. Das Arbeitsprinzip von JWT enthält drei Schritte: Generierung von JWT, Überprüfung von JWT und Parsingnayload. 3. Bei Verwendung von JWT zur Authentifizierung in PHP kann JWT generiert und überprüft werden, und die Funktionen und Berechtigungsinformationen der Benutzer können in die erweiterte Verwendung aufgenommen werden. 4. Häufige Fehler sind Signaturüberprüfungsfehler, Token -Ablauf und übergroße Nutzlast. Zu Debugging -Fähigkeiten gehört die Verwendung von Debugging -Tools und Protokollierung. 5. Leistungsoptimierung und Best Practices umfassen die Verwendung geeigneter Signaturalgorithmen, das Einstellen von Gültigkeitsperioden angemessen.

Eine Zeichenfolge ist eine Folge von Zeichen, einschließlich Buchstaben, Zahlen und Symbolen. In diesem Tutorial wird lernen, wie Sie die Anzahl der Vokale in einer bestimmten Zeichenfolge in PHP unter Verwendung verschiedener Methoden berechnen. Die Vokale auf Englisch sind a, e, i, o, u und sie können Großbuchstaben oder Kleinbuchstaben sein. Was ist ein Vokal? Vokale sind alphabetische Zeichen, die eine spezifische Aussprache darstellen. Es gibt fünf Vokale in Englisch, einschließlich Großbuchstaben und Kleinbuchstaben: a, e, ich, o, u Beispiel 1 Eingabe: String = "TutorialPoint" Ausgabe: 6 erklären Die Vokale in der String "TutorialPoint" sind u, o, i, a, o, ich. Insgesamt gibt es 6 Yuan

Statische Bindung (statisch: :) implementiert die späte statische Bindung (LSB) in PHP, sodass das Aufrufen von Klassen in statischen Kontexten anstatt Klassen zu definieren. 1) Der Analyseprozess wird zur Laufzeit durchgeführt.

Was sind die magischen Methoden von PHP? Zu den magischen Methoden von PHP gehören: 1. \ _ \ _ Konstrukt, verwendet, um Objekte zu initialisieren; 2. \ _ \ _ Destruct, verwendet zur Reinigung von Ressourcen; 3. \ _ \ _ Call, behandeln Sie nicht existierende Methodenaufrufe; 4. \ _ \ _ GET, Implementieren Sie den dynamischen Attributzugriff; 5. \ _ \ _ Setzen Sie dynamische Attributeinstellungen. Diese Methoden werden in bestimmten Situationen automatisch aufgerufen, wodurch die Code -Flexibilität und -Effizienz verbessert werden.
