1 Lorsque Laradock a été lancé pour la première fois, le processus de construction était très lent
En raison du pull containers L'image est à l'étranger par défaut, donc avant de composer le conteneur par docker, recherchez le texte suivant dans le fichier .envCHANGE_SOURCE=``false
#UBUNTU_SOURCE=aliyun
WORKSPACE_TIMEZONE=UTC
docker-compose up -d nginx mariadb
2. Si le texte pertinent "raw.githubusercontent.com" apparaît, alors dans les hôtes locaux, liez le nom de domaine à ip
Prenons Linux comme exemple
vim ``/etc/hosts
Entrez "199.232.28.133 raw.githubusercontent.com" dans le fichier
3. L'installation du compositeur est lente Après avoir installé laradock, utilisez git pour extraire le framework tp5 de l'entrepôt d'hébergement tiers dans le conteneur worksapce, puis installez les dépendances du framework, à ce stade, l'installation de composer est très lente, vous devez remplacer la source domestique, exécutez ce qui suit commande
composer config -g repo.packagist composer https:``//packagist``.phpcomposer.com
4. Composer ignore l'installation du numéro de version Processus d'installation de Composer rencontré Vos exigences n'ont pas pu être résolu en un ensemble de packages installables message d'erreur, vous pouvez ignorer l'installation du numéro de version, exécuter la commande suivante
composer ``install
--ignore-platform-reqs
5. Composer installe l'outil de migration de base de données pour tp5 L'outil de migration pour tp5.0 est 1.
, tp5.1 est 2., si le numéro de version n'est pas précisé , le dernier outil de migration sera installé par défaut. Exécutez la commande suivante
composer require topthink``/think-migration``=1.*
6. laradock Lors de la configuration de la connexion à la base de données dans tp5, l'hôte remplit le nom du conteneur J'utilise le conteneur mariadb, donc la configuration suivante est
'host'=>'mariadb'
<.>7. tp5 donne toutes les autorisations au runtime
hmod -r runtime 777
8. tp5 capture les exceptions levées par MySQLAjoutez une barre oblique inverse devant le paramètre catch Exception pour indiquer que la capture est démarrée à partir du niveau d'exception le plus bas
catch``(Exception)
9. Lors de la création de l'interface de téléchargement d'images, mkdir a signalé une erreur d'absence d'autorisationAfin de faciliter la référence des images, j'ai désigné le répertoire de stockage des images comme public/uploads, mais une erreur a été signalée , qui peut être résolu en accordant des autorisations complètes au public
chmod -r public 777Vérification des autorisations lors de l'interface backendoauth2 est un très bon mécanisme d'autorisation, PHP a une bonne bibliothèque https://github.com/thephpleague/oauth2-server, mais il est très impuissant Contrairement à Laravel, qui a un passeport, il prend également en charge Drupal, cakephp et autres. frameworks
Utiliser Json-web -Token est également très bon https://github.com/lcobucci/jwt11. Traitement inter-domaines dans le répertoire de l'application Ajouter les fichiers à exécuter lors de l'initialisation de l'application dans tags.php sous Par exemple, je mets le cross-domain dans le fichier applicationapi/behavior/CORS.php, et l'en-tête <.>
est émis lors du processus d'initialisation de l'application
Fichiers inter-domaines// 应用初始化``'app_init'
.
<?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 nécessite une vérification d'identité Entrez le nom d'utilisateur et le mot de passe plusieurs fois
Dans l'environnement Linux, dans le répertoire d'entrepôt Exécuter
git config --global credential.helper store
13. git push coincé
Définissez le colis d'envoi pour qu'il soit sans bordure, et la requête http est modifiée Réglez le tampon plus grand
git config --global sendpack.sideband false git config --global http.postBuffer 524288000
14. nginx ne prend pas en charge le pathinfo de tp5
Changer de projet Configuration du fichier .conf correspondant
<?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(); } } }
emplacement avant changement ~ .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;}
Je trouverai le temps d'apprendre les options spécifiques
14. Configuration Docker source domestique
sudo tee /etc/docker/daemon.json <<-'EOF'
vim /etc/docker/daemon.json
Entrez le contenu suivant, l'adresse peut être sélectionnée par vous-même
{ "registry-mirrors": ["https://uxk0ognt.mirror.aliyuncs.com"] }
# puis exécutez la commande suivante
systemctl daemon-reload
systemctl restart docker
Remarques
Comme nous le savons tous, le clonage depuis github est toujours lent. Vous pouvez choisir d'utiliser Code Cloud pour importer des entrepôts couramment utilisés dans votre propre espace de travail Code Cloud. à l'avance. Lorsque vous avez besoin de l'utiliser, vous pouvez utiliser Code Cloud .
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!