Development Workflow (PHP) with Git, Gitlab & Application Deployment
This 3-day hands-on training is designed to equip developers with the practical skills needed to manage code with Git, collaborate effectively using GitLab, and deploy Laravel / Codeigniter applications to production servers. The course combines real-world workflows, guided instruction, and team-based activities to simulate how modern development teams work in professional environments.
Learning Outcomes
Training Objectives:
- Understand and apply Git for version control in local Laravel / Codeigniter projects
- Use GitLab to manage repositories, branches, merge requests, and issue tracking
- Collaborate in a team-based GitLab environment with real-world workflows
- Configure and automate deployment to a LAMP server using Git, Webhooks, or CI/CD pipelines
By the end of this training, participants will have gone through a complete development lifecycle—from local development to team collaboration and all the way to production deployment—using modern tools and best practices.
Prerequisites
Participants are expected to have basic knowledge of HTML, CSS and PHP
Course Outline
Day 1
Git & Gitlab Basics Time Activities
- Course intro & ice breaking
- Quick tour: Git, Laravel / Codeigniter, GitLab
- Confirm dev environment :
- Laravel / Codeigniter installed
- Git installed
- Terminal and code editor (VS Code, etc.)
- Distribute or clone a base Laravel / Codeigniter project (optional starter repo or laravel new myApp)
- git init, git status, git add and git commit
- gitignore (Laravel-specific)
- git branch, git checkout -b and git merge
- Inspect changes with git log and git diff
- Intro to merge conflicts and resolution
- Creating a GitLab account
- SSH key generation
- Adding SSH key to GitLab
- Intro to remote repositories
- git remote add, git push -u origin main
- Gitlab repo structure overview
- Cloning an existing repo via SSH
Day 2
Development Workflow & Collaboration
- GitLab group/project setup (trainer preps a shared repo)
- Everyone is added as a developer/member
- Cloning shared GitLab project
- Branching from main (or production)
- Naming conventions: feature. bugfix or hotfix
- Creating and assigning Issues
- Using Issues to track tasks and bugs
- Creating a Merge Request (MR) from a branch
- Referencing Issues in MR (Closes #issue_number)
- Reviewing and merging MRs in GitLab
- Keeping branches updated with the latest main using pull or rebase
- Handling fast-forward vs non-fast-forward
- Resolving merge conflicts when others have changed the same file
Day 3
LAMP Server & Application Deployment Time Activities
- SSH access to VPS
- Navigating Virtualmin
- Creating virtual servers and domains
- Setting up Apache, PHP, MySQL
- Uploading and configuring a basic WordPress site
- SSH basics
- Installing server tools (Git, Composer, Node.js)
- Directory navigation and permissions
- Laravel / Codeigniter deployment requirements
- Set up a new virtual server for Laravel/ Codeigniter
- Creating a new DB
- Adding SSH deploy key to GitLab
- Cloning Laravel / Codeigniter project and configuring .env
- Intro to Webhooks
- Writing a webhook.php receiver
- Creating and testing deploy.sh
About This Course
This 3-day hands-on training is designed to equip developers with the practical skills needed to manage code with Git, collaborate effectively using GitLab, and deploy Laravel / Codeigniter applications to production servers. The course combines real-world workflows, guided instruction, and team-based activities to simulate how modern development teams work in professional environments.
Learning Outcomes
Training Objectives:
- Understand and apply Git for version control in local Laravel / Codeigniter projects
- Use GitLab to manage repositories, branches, merge requests, and issue tracking
- Collaborate in a team-based GitLab environment with real-world workflows
- Configure and automate deployment to a LAMP server using Git, Webhooks, or CI/CD pipelines
By the end of this training, participants will have gone through a complete development lifecycle—from local development to team collaboration and all the way to production deployment—using modern tools and best practices.
Prerequisites
Participants are expected to have basic knowledge of HTML, CSS and PHP
Course Outline
Day 1
Git & Gitlab Basics Time Activities
- Course intro & ice breaking
- Quick tour: Git, Laravel / Codeigniter, GitLab
- Confirm dev environment :
- Laravel / Codeigniter installed
- Git installed
- Terminal and code editor (VS Code, etc.)
- Distribute or clone a base Laravel / Codeigniter project (optional starter repo or laravel new myApp)
- git init, git status, git add and git commit
- gitignore (Laravel-specific)
- git branch, git checkout -b and git merge
- Inspect changes with git log and git diff
- Intro to merge conflicts and resolution
- Creating a GitLab account
- SSH key generation
- Adding SSH key to GitLab
- Intro to remote repositories
- git remote add, git push -u origin main
- Gitlab repo structure overview
- Cloning an existing repo via SSH
Day 2
Development Workflow & Collaboration
- GitLab group/project setup (trainer preps a shared repo)
- Everyone is added as a developer/member
- Cloning shared GitLab project
- Branching from main (or production)
- Naming conventions: feature. bugfix or hotfix
- Creating and assigning Issues
- Using Issues to track tasks and bugs
- Creating a Merge Request (MR) from a branch
- Referencing Issues in MR (Closes #issue_number)
- Reviewing and merging MRs in GitLab
- Keeping branches updated with the latest main using pull or rebase
- Handling fast-forward vs non-fast-forward
- Resolving merge conflicts when others have changed the same file
Day 3
LAMP Server & Application Deployment Time Activities
- SSH access to VPS
- Navigating Virtualmin
- Creating virtual servers and domains
- Setting up Apache, PHP, MySQL
- Uploading and configuring a basic WordPress site
- SSH basics
- Installing server tools (Git, Composer, Node.js)
- Directory navigation and permissions
- Laravel / Codeigniter deployment requirements
- Set up a new virtual server for Laravel/ Codeigniter
- Creating a new DB
- Adding SSH deploy key to GitLab
- Cloning Laravel / Codeigniter project and configuring .env
- Intro to Webhooks
- Writing a webhook.php receiver
- Creating and testing deploy.sh
Upcoming Sessions
Your Instructor
Graduated from Universiti Teknologi Malaysia with a bachelor’s degree in computer science in 2001, Kharil Iszuddin Is...
Upcoming Sessions
Course Information
Your Instructor
Khairil-Iszuddin bin Ismail
Professional Experience
Graduated from Universiti Teknologi Malaysia with a bachelor’s degree in computer science in 2001, Kharil Iszuddin Is...
View Profile