Maison > Article > développement back-end > Docker crée un exemple d'environnement de développement Laravel
Cet article utilise principalement laradock
pour la configuration du docker local. laradock
L'environnement dont Laravel a besoin a été intégré. Il vous suffit de modifier la configuration pour créer un environnement de développement. C'est vraiment une bonne solution pour le développement et la gestion.
Pour expliquer brièvement, dans l'environnement docker
nous devons exécuter le projet laravel
, qui va en fait créer plusieurs conteneurs : Lorsque l'ordinateur est encore un système de fenêtres, il est souvent nécessaire de construire un conteneur basé sur le service vm. Ce n'est qu'en mettant en place un environnement que nous pouvons mieux développer (il devrait être plus proche de l'environnement en ligne), et maintenant sous l'aura mystérieuse de docker, il est possible de construire un environnement de développement local avec un minimum de ressources
, et en même temps, il peut être mieux développé Migrer ailleurs.
espace de travail (environnement de développement)
php-fpm (support php)
nginx (service web)
mysql (base de données)
Ce sont des conteneurs générés sur la base du retraitement de laradock
. répertoire avec le nom correspondant sous le répertoire laradock
, qui contient Dockerfile
et les configurations associées. Les étudiants intéressés peuvent lire et apprendre autant que vous le souhaitez :)
Pour un contenu plus approfondi, il est recommandé. pour passer à la documentation officielle de Laradock.
Installez-le d'abord sous le système de fenêtresdocker
Attendez plusieurs redémarrages avant d'exécuter docker
Testez la commande.
Utilisez ensuite git
pour extraire le package https://github.com/laradock/laradock.git
dans le répertoire plat de votre projet.
# 平级目录 D:/www/ - /laradock - /my-project
Vous êtes maintenant prêt à passer à l'étape suivante.
L'environnement configuré ici est configuré en fonction de l'environnement commun
nginx
php -fpm 5.6
mysql 5.6
Ensuite vous devez modifier le laradock/.env
fichier
/www/laradock - .env
et vous le trouvera lorsque vous entrerez dans le répertoire laradock
Le fichier .env
n'existe pas Nous devons copier une copie de env-example
pour le modifier.
# /www/laradock $ cp env-example .env
Entrez le fichier .env
et recherchez PHP_VERSION
Modifiez la version PHP à 56 (par défaut 71, facultatif 71, 70, 56).
# /www/laradock/.env ### PHP Version PHP_VERSION=56
Entrez le fichier .env
et recherchez MYSQL
Modifiez la version de MySQL à 56 (8 par défaut, 8, 5, 5.6, 5.5 en option) .
D'autres paramètres sont renseignés en fonction des besoins personnels. Généralement, MYSQL_USER
, MYSQL_PASSWORD
, MYSQL_ROOT_PASSWORD
doivent être modifiés pour assurer le lien.
# /www/laradock/.env ### MYSQL MYSQL_VERSION=5.6 # MYSQL_DATABASE 可选,填写后会默认创建同名数据库 MYSQL_DATABASE=default # MYSQL_USER 用户,填写后会创建用户,默认为 default MYSQL_USER=packy # MYSQL_PASSWORD 密码,填写后作为新建用户的密码,默认为 secret MYSQL_PASSWORD=123456- # MYSQL_PORT 访问端口,默认是3306,建议不要修改 MYSQL_PORT=3306 # MYSQL_ROOT_PASSWORD root用户密码,建议使用严谨的密码,默认为 root MYSQL_ROOT_PASSWORD=23333- MYSQL_ENTRYPOINT_INITDB=./mysql/docker-entrypoint-initdb.d
mysql utilise l'image officielle, nous pouvons donc utiliser hub.docker.com pour interroger mysql
quelles versions contient l'image officielle. Le choix spécifique dépend de vos besoins individuels.
Généralement, il n'est pas nécessaire de modifier quoi que ce soit, utilisez simplement celle par défaut. Concernant la configuration du site internet, vous devez saisir laradock/nginx/sites
.
Si vous devez modifier le port, vous pouvez saisir le fichier.env
et trouverNGINX
pour le modifier.
# /www/laradock/.env ### NGINX NGINX_HOST_HTTP_PORT=80 NGINX_HOST_HTTPS_PORT=443 # NGINX_HOST_LOG_PATH log存放位置,默认位置在laradock/logs/nginx/ NGINX_HOST_LOG_PATH=./logs/nginx/ # NGINX_SITES_PATH 网站配置, 默认位置在laradock/nginx/sites/ NGINX_SITES_PATH=./nginx/sites/ NGINX_PHP_UPSTREAM_CONTAINER=php-fpm NGINX_PHP_UPSTREAM_PORT=9000
nginx
les fichiers de configuration sont stockés sous laradock/nginx/sites
Si vous devez créer un nouveau site Web, vous pouvez copier le .example
correspondant et le renommer. pour .conf
Apporter des modifications. Remarque : seuls les fichiers avec .conf
seront chargés sous nginx
.
Ici, je copie laravel.conf.example
à titre d'exemple et je le renomme en my-project.conf
:
# laradock/nginx/sites/my-project.conf server { listen 80; listen [::]:80; # 域名,改为你的域名 server_name my-project.com; # 项目目录,均以 /var/www/ 开头。这个约定后续会说明 root /var/www/my-project; index index.php index.html index.htm; location / { try_files $uri $uri/ /index.php$is_args$args; } location ~ \.php$ { try_files $uri /index.php =404; fastcgi_pass php-upstream; fastcgi_index index.php; fastcgi_buffers 16 16k; fastcgi_buffer_size 32k; fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; include fastcgi_params; } location ~ /\.ht { deny all; } location /.well-known/acme-challenge/ { root /var/www/letsencrypt/; log_not_found off; } error_log /var/log/nginx/laravel_error.log; access_log /var/log/nginx/laravel_access.log; }
En même temps, modifiez la machine hôte (c'est-à-dire la machine locale de la fenêtre) hosts
# C:\Windows\System32\drivers\etc\hosts 127.0.0.1 my-project.com
À ce stade, le travail de préparation est presque terminé.
Exécutez la commande suivante pour l'installer et l'utiliser. Veuillez patienter car le temps d'extraction à partir de sources étrangères est lent.
docker-compose up -d nginx mysql
Une fois terminé, entrez docker ps
pour voir l'état d'exécution du conteneur. Tout va bien ! ! !
Essayez de visiter http://my-project.com
pour voir l'effet. Actuellement, les fichiers php
sont accessibles normalement.
Je ne peux pas mentionner ici le conteneur workspace
, qui sert d'espace de travail pour fournir divers outils (dont : PHP CLI, Composer, Git, Linuxbrew, Node, V8JS, Gulp, SQLite, xDebug, Envoy, Deployer, Vim, Yarn, etc.).
Comment utiliser ces fonctions ?
workspace
容器# /www/laradock docker-compose exec workspace bash
进到容器后默认就是项目目录/var/www
,由于composer用的是国外源比较慢,这里需要切换成国内源。
composer config -g repo.packagist composer https://packagist.phpcomposer.com
这里我们需要在my-project
目录安装laravel。
*注:需要提前把my-project里的所有内容清空
composer create-project laravel/laravel my-project2 "5.2.*" && \ cd my-project && \ php artisan key:generate
安装完成后,把laradock/nginx/sites/my-project.conf
文件下的网站目录地址稍微改一下
server { listen 80; listen [::]:80; server_name my-project.com; # 加上public目录 root /var/www/my-project/public; index index.php index.html index.htm; ... }
重启nginx
容器
# /www/laradock docker-compose restart nginx
# .env DB_CONNECTION=mysql # mysql的容器网络已经解析至"mysql"域,所以这里配置"mysql"域便能访问 DB_HOST=mysql # 默认3306,一般不需要改动,如要改动端口应该与laradock/.env中的MYSQL_PORT一致 DB_PORT=3306 # 数据库 DB_DATABASE=default # 用户 DB_USERNAME=packy # 密码 DB_PASSWORD=123456-
Q:运行失败,提示ERROR: for laradock_mysql_1 Cannot create container for service mysql: Drive sharing seems blocked by a firewall
A:先暂停你本机杀毒程序的防御进程。
Q:运行失败,提示ERROR: for laradock_nginx_1 Cannot start service nginx: driver failed programming external connectivity on endpoint laradock_nginx_1 (6e4f4761d30f4cd80c44c6b0fddfbd4ef0324529099aace02bee6a6653ce453a): Error starting userland proxy: Bind for 0.0.0.0:443 failed: port is already allocated
A:建议你切换端口,我已尝试改为1443能正常运行,目前只能以这种方式处理。
# .env ### NGINX NGINX_HOST_HTTPS_PORT=1443
Q:为何网站目录必须以/var/www
开头?
A:网站访问进入的是nginx
容器,/var/www
目录就是容器内网站目录存放的位置。由于配置在创建容器时,会将本地目录挂载至/var/www
目录,所以就能访问到本地的代码。这块设置在laradock/.env
中找到APPLICATION
可自行设置。
相关推荐:
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!