No Description

ouidade 908cc7c474 readme.md corrections 1 year ago
Docker 99fa271ece add drupal submodule 1 year ago
ressources 59cde3d404 first commit 1 year ago
src @ 072c2abbb8 9adeb4de76 readme 1 year ago
.env 99fa271ece add drupal submodule 1 year ago
.gitignore 59cde3d404 first commit 1 year ago
.gitmodules 99fa271ece add drupal submodule 1 year ago
Makefile 59cde3d404 first commit 1 year ago
README.md 908cc7c474 readme.md corrections 1 year ago
docker-compose.yml 59cde3d404 first commit 1 year ago

README.md

instal docker and drupal

Clone this repos

clone a older docker of a similar project

git clone -o gogs gogs@figureslibres.io:bachir/docker-popsu.git

or download docker folder from gogs

Change name and old project occurences

open folder in Vscodium and :

change folder name

change occurence in Readme (ctrl + D pour sélectionner tout en même temps)

dossier Docker: php mettre bonne version

Docker-compose.yml

Makefile

.env (project name donne le nom aux containers)

docker > nginx > default.conf

xdebug

copy ressources/xdebug.ini.exemple to ressources/xdebug.ini

git

remove old folder git

rm -rf .git
rm .gitmodules

create new git repositorie

git init
git add .
git commit -m 'first commit'
git remote add origin https://figureslibres.io/gogs/ouidade/docker-training.git
git push -u origin master

Hosts and reverse proxy

add to your /etc/hosts :

127.0.0.1	dev.training.fr
127.0.0.1	dev.phpmyadmin.training.fr

configure your vhosts to add a reverse proxy that will redirect the dev.training.fr to our container

create new file, dev.training.fr.conf, in /etc/nginx/sites-available

server {
     listen 80;
     server_name dev.training.fr;

     access_log off;
     error_log  /var/log/nginx/training/error.log error;

     client_max_body_size 100m;

     location / {
         proxy_pass http://127.0.0.1:8980;
         proxy_set_header Host $host;
         proxy_set_header X-Real-IP $remote_addr;
         proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
         proxy_set_header X-Forwarded-Proto $scheme;
         proxy_buffer_size          128k;
         proxy_buffers              4 256k;
         proxy_busy_buffers_size    256k;
     }
 }
 server {
     listen 80;
     server_name dev.phpmyadmin.training.fr;

     location / {
         proxy_pass http://127.0.0.1:8981;
         proxy_set_header Host $host;
         proxy_set_header X-Real-IP $remote_addr;
         proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
         proxy_set_header X-Forwarded-Proto $scheme;
         proxy_buffer_size          128k;
         proxy_buffers              4 256k;
         proxy_busy_buffers_size    256k;
     }
 }
sudo ln -s /etc/nginx/sites-available/dev.training.fr.conf /etc/nginx/sites-enabled

sudo systemctl restart nginx


## build docker

make build make up make ps


## instal drupal with composer

cd public_html composer create-project drupal/recommended-project:^9.5 .


### clone this profile into profiles folder

cd profiles git clone -o figli https://figureslibres.io/gogs/bachir/drupal-starterkit-profile.git


### include the profile's composer file to the main drupal's composer file

install composer-merge-plugin

composer require wikimedia/composer-merge-plugin

then in main drupal's composer.js file add this in extra

"extra": { ... "merge-plugin": {

  "include": [
      "web/profiles/d8-starterkit-profile/composer.json"
  ],
  "recurse": true,
  "replace": false,
  "merge-extra": true

} ... }


### install the profile's merged dependencies with composer

cd ../ composer update



## sites/default setup

mkdir -p web/sites/default/files cp web/sites/default/default.settings.php web/sites/default/settings.php

in docker exit container php and re-log as root in php container

docker exec -u 0 -it training-php-1 bash

then aply changes

chgrp -R www-data web/sites/default/files chgrp -R www-data web/sites/default/settings.php chmod g+r web/sites/default/files chmod g+r web/sites/default/settings.php

exit container php as root ```ctrl + D```

## install database with install drupal on navigator

choose profile figli starter kit

for set up database use info in .env file (for work localserver only passwords very basic, be carefull if on line)

advanced options :
hosts : mysql

in dump databse there will be files but also modules config


## git the drupal (src folder)

git init

create a .gitignore file 

Ignore directories generated by Composer

/drush/contrib/ /vendor/ /web/core/ /web/modules/contrib/ /web/themes/contrib/ /web/profiles/contrib/ /web/libraries/ composer.lock

Ignore sensitive information

/web/sites//settings.php /web/sites//settings.local.php /web/sites//services.yml

Ignore Drupal's file directory

/web/sites/*/files/

Ignore SimpleTest multi-site environment.

/web/sites/simpletest

Ignore files generated by PhpStorm

/.idea/

Ignore .env files as they are personal

/.env

npm

node_modules/

*.patch /.csslintrc /.eslintrc.json /.ht.router.php /.htaccess /INSTALL.txt /README.txt /autoload.php /example.gitignore /index.php /robots.txt /update.php /web.config

/web/.vscode/*

git status git add .

if necessary, if already here, remove file D8-starterit-profile from the git index in order to add it as a submodule.

```git reset web/profiles/d8-starterkit-profile```


add submodule

git submodule add https://figureslibres.io/gogs/bachir/d8-starterkit-profile.git web/profiles/d8-starterkit-profile

git commit -m "first drupal instal working"

### Create new repository on gogs, for durpal

### then

git remote add origin https://figureslibres.io/gogs/ouidade/drupal-training.git

git push origin master


in docker, add in src folder the submodule drupal you just created

git submodule add https://figureslibres.io/gogs/ouidade/drupal-training.git src

then 

git add . git commit -m "added drupal submodule" git push origin master


## check drush

drush st drush cr


## check settings files

create file services.yml in src/web/sites/default  (can copy from previous site)


in settings.php 

if (file_exists($app_root . '/' . $site_path . '/settings.local.php')) { include $app_root . '/' . $site_path . '/settings.local.php'; } $databases['default']['default'] = array ( .... ); $settings['config_sync_directory'] = '../config/sync';


so the config databse is stored in a folder config/sync not in web, and so not shared online.


create folder config/sync at the root of your site (src)

## export config

```drush cst``` to see config status
```drush cex -y``` to export all that's in database in config/sync
 
git config 

git add . git commit git push ```

to add enable new module already in drupal core drush en module_name

and then don't forget to export config drush cex and to git