(01)Install PHP
Linux
1sudo apt-get install -y php php-cli php-fpm php-mysql php-curl php-xml php-mbstring2sudo systemctl enable php8.3-fpmServer-side language for WordPress, Laravel, and web apps
What is this?
PHP runs WordPress, Laravel, and millions of websites — usually paired with Nginx or Apache.
Step 01
1sudo apt-get install -y php php-cli php-fpm php-mysql php-curl php-xml php-mbstring2sudo systemctl enable php8.3-fpmStep 02
1php -v2sudo nano /etc/php/8.3/fpm/php.ini3# Set memory_limit, upload_max_filesize4sudo systemctl restart php8.3-fpmStep 03
1php -v2php -m | grep -E 'curl|mysql|mbstring'Step 04
1composer --version2composer create-project laravel/laravel myapp3 YAML templates for PHP. Copy and deploy after setup.
3 ready-to-copy templates. Expand one, copy the YAML, then run the deploy commands.
Jenkinsfile
1pipeline {2 agent any3 4 environment {5 DOCKERHUB_CREDENTIALS = credentials('dockerhub')6 }7 8 stages {9 stage('Docker Login') {10 steps {11 sh 'echo $DOCKERHUB_CREDENTIALS_PSW | docker login -u $DOCKERHUB_CREDENTIALS_USR --password-stdin'12 }13 }14 stage('Build & Push Image') {15 steps {16 sh """17 cd laravel-app18 docker build -t $DOCKERHUB_CREDENTIALS_USR/laravel-app:latest .19 docker push $DOCKERHUB_CREDENTIALS_USR/laravel-app:latest20 """21 }22 }23 stage('Deploy with Compose') {24 steps {25 sh """26 cd laravel-app27 docker compose pull28 docker compose up -d29 docker compose ps30 """31 }32 }33 }34}laravel-app/docker-compose.yml
1services:2 app:3 image: youruser/laravel-app:latest4 ports:5 - "8080:80"6 depends_on:7 - db8 environment:9 DB_HOST: db10 DB_DATABASE: laravel11 DB_USERNAME: root12 DB_PASSWORD: secret13 14 db:15 image: mysql:5.716 environment:17 MYSQL_DATABASE: laravel18 MYSQL_ROOT_PASSWORD: secret19 volumes:20 - db_data:/var/lib/mysql21 22volumes:23 db_data:Step 01
1# Add Docker Hub credentials (ID: dockerhub) in Jenkins2# Install Docker + docker-compose on Jenkins agent3# Create Pipeline job pointing to Jenkinsfile