Install git
winget install -e --id Git.Git
Install composer
Install XAMPP
winget install -e --id ApacheFriends.Xampp.8.2
Install 7zip
winget install -e ---id 7zip.7zip
Install Laravel
composer global require laravel/installer
# Install MySQL Redis Git Unzip Apache
sudo apt install git unzip mysql-server redis apache2 -y
# Start Services
sudo service mysql start && sudo systemctl enable mysql
sudo service apache2 start && sudo systemctl enable apache2
sudo systemctl enable redis-server && sudo systemctl start redis-server
# Install PHPMyAdmin
sudo apt install phpmyadmin -y
# Link PHPMyAdmin to Apache2
sudo ln -s /usr/share/phpmyadmin /var/www/html/phpmyadmin
# Restart Apache
sudo systemctl restart apache2
/bin/bash -c "$(curl -fsSL <https://php.new/install/linux>)"
FROM node:latest
ENV DEBIAN_FRONTEND=noninteractive
ENV TZ=Asia/Tehran
RUN apt update && apt-get upgrade -y
RUN apt install -y vim git curl unzip bash
RUN TERM=xterm /bin/bash -c "$(curl -fsSL <https://php.new/install/linux>)"
EXPOSE 3000 8000 5173 4173
services:
dev:
build: .
container_name: dev-machine
network_mode: host
volumes:
- ./projects:/root/projects
depends_on:
- db
entrypoint: ["bash"]
stdin_open: true
tty: true
db:
image: mysql
container_name: mysql-db
environment:
MYSQL_ROOT_PASSWORD: "1234"
MYSQL_USER: "user"
MYSQL_PASSWORD: "1234"
ports:
- "3306:3306"
volumes:
- db_data:/var/lib/mysql
phpmyadmin:
image: phpmyadmin
ports:
- "8060:80"
environment:
PMA_HOST: mysql-db
redis:
image: redis
container_name: redis
ports:
- "6379:6379"
volumes:
db_data:
{
"name": "Laravel Dev Environment",
"dockerComposeFile": "./docker-compose.yaml",
"service": "dev",
"workspaceFolder": "/root/projects",
"customizations": {
"vscode": {
"extensions": [
"bmewburn.vscode-intelephense-client",
"github.vscode-github-actions",
"kokororin.vscode-phpfmt",
"mtxr.sqltools-driver-mysql",
"rifi2k.format-html-in-php",
"xdebug.php-debug"
],
"settings": {
"[php]": {
"editor.defaultFormatter": "kokororin.vscode-phpfmt"
},
"editor.formatOnPaste": true,
"editor.formatOnSave": true,
"editor.formatOnType": true,
"terminal.integrated.defaultProfile.linux": "zsh",
"terminal.integrated.profiles.linux": {
"bash": {
"path": "bash"
}
}
}
}
}
}
laravel new example-app
<aside> 💡
Dependencies are stored in vendor
directory
</aside>
# to install dependencies:
composer install
composer.json
holds all dependencies for your project