ایجاد دومین پروژه لاراول

نصب لاراول از طریق Composer:
- به روز رسانی لینوکس (ubuntu 22.04)
bashsudo apt-get update && sudo apt-get upgrade -y - بررسی نسخه فعلی Composer
Ubuntu 22.04which composerفرض کنید در سیستم شما خروجی دستور بالا به صورت /home/mehdi/.config/herd-lite/bin/composer باشد در این صورت باید self-update را با یک فاصله مشابه شکل زیر در خط فرمان ابونتو وارد نمایید.
- بررسی نسخه فعلی Composer
Ubuntu 22.04composer --version
با این فرض که قرار است پروژه دوم با نام second-website باشد:
composer create-project laravel/laravel second-website
اگر از یک نام تکراری برای پروژه خود استفاده کنید با خطا روبرو خواهید شد، شکل زیر را ببینید.

باز کردن پروژه جدید با Visual Studio Code
- باز کردن VS Code
- اتصال Vs Code به WSL
- باز کردن دایرکتوری پروژه در Vs Code
برای مشاهده مراحل اتصال VS Code به WSL اینجا کلیک کنید.

اضافه کردن فایل های مورد نیاز داکر
برای انتقال پروژهای که با Composer ایجاد کردهاید به سرور محلی (Local Server)، باید مراحل زیر را به ترتیب انجام دهید
مرحله اول: باز کردن پروژه در اوبونتو 22.04
- به روز رسانی لینوکس (ubuntu 22.04)
bashsudo apt-get update && sudo apt-get upgrade -y -
باز کردن پروژه اگر بسته باشد
Ubuntu 22.04cd second-website
مرحله دوم: ایجاد فایل docker-compose.yml:
- بعد از باز کردن پروژه توسط دستور زیر فایل docker-compose.yml: را ایجاد کنید
- باز کردن پروژه توسط ویرایشگر کد، که در اینجا vs code می باشد و کپی کردن فایل زیر در docker-compose.yml
نکته: در هر بار استفاده از دستور زیر دقت کنید که نام هایی که در دستور زیر به رنگ قرمز می باشند قبلا استفاده نکرده باشید. بهتر است در هر بار استفاده از دستور زیر به این 4 مورد که با رنگ قرمز مشخص شده یک نام جدید به دلخواه خود اختصاص دهید.
شماره پورت های جدید
8000 8080 3306 9000 8082 3307 docker-compose.yml# Services Definitionservices:app:build:context: .dockerfile: Dockerfileimage: laravel-appcontainer_name: laravel-app2restart: unless-stoppedworking_dir: /var/wwwvolumes:- .:/var/wwwnetworks:- laravel-networkwebserver:image: nginx:alpinecontainer_name: webserver2restart: unless-stoppedports:- "9000:80"volumes:- .:/var/www- ./docker/nginx:/etc/nginx/conf.dnetworks:- laravel-networkdb:image: mysql:8.0container_name: db2restart: unless-stoppedenvironment:MYSQL_DATABASE: laravelMYSQL_ROOT_PASSWORD: secretMYSQL_USER: laravelMYSQL_PASSWORD: secretvolumes:- dbdata:/var/lib/mysqlports:- "3307:3306"networks:- laravel-networkphpmyadmin:image: phpmyadmin/phpmyadmincontainer_name: phpmyadmin2restart: unless-stoppedports:- "8082:80"environment:PMA_HOST: dbMYSQL_ROOT_PASSWORD: secretnetworks:- laravel-network# Volumes Configurationvolumes:dbdata:driver: local# Networks Configurationnetworks:laravel-network:driver: bridge
touch docker-compose.yml
مرحله سوم: ایجاد فایل Dockerfile
- در محیط اوبونتو توسط دستور زیر فایل Dockerfile را به پروژه اضافه کنید
Ubuntu 22.04touch Dockerfile - کپی کردن فایل زیر در Dockerfile
dockerfileFROM php:8.2-fpmWORKDIR /var/wwwRUN apt-get update && apt-get install -y \build-essential \libpng-dev \libjpeg62-turbo-dev \libfreetype6-dev \locales \zip \jpegoptim optipng pngquant gifsicle \vim \unzip \git \curl \libzip-dev \libonig-dev \libpq-dev \libxml2-devRUN docker-php-ext-install pdo_mysql mbstring zip exif pcntlRUN docker-php-ext-configure gd --with-freetype --with-jpegRUN docker-php-ext-install gdRUN curl -sS https://getcomposer.org/installer | php -- --install-dir=/usr/local/bin --filename=composerRUN groupadd -g 1000 wwwRUN useradd -u 1000 -ms /bin/bash -g www wwwCOPY --chown=www:www . /var/wwwUSER wwwEXPOSE 9000CMD ["php-fpm"]
مرحله چهارم: ایجاد پیکربندی Nginx
- توسط دستور زیر فولدری به نام nginx درون فولدر docker ایجاد کنید.
Ubuntu 22.04mkdir -p docker/nginx - توسط دستور زیر فایل app.conf را درون nginx اضافه کنید.
nginxtouch docker/nginx/app.conf - کد زیر را کپی کنید و در docker/nginx/app.conf پیست کنید
nginxserver {listen 80;index index.php index.html;error_log /var/log/nginx/error.log;access_log /var/log/nginx/access.log;root /var/www/public;location ~ \.php$ {try_files $uri =404;fastcgi_split_path_info ^(.+\.php)(/.+)$;fastcgi_pass app:9000;fastcgi_index index.php;include fastcgi_params;fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;fastcgi_param PATH_INFO $fastcgi_path_info;}location / {try_files $uri $uri/ /index.php?$query_string;gzip_static on;}}
راه اندازی محیط داکر از طریق bash یا ترمینال
مرحله اول: Run کردن داکر دسکتاپ
- تحریم شکن خود را فعال کنید
- داکر دسکتاپ خود را run کنید
زمپ (XAMPP) و داکر دسکتاپ (Docker Desktop) دو ابزار مختلف برای راهاندازی محیطهای سرور و توسعه نرمافزار هستند. همانگونه که برای استفاده از زمپ باید ابتدا آن را استارت کنید، داکر دسکتاپ را نیز باید قبل از استفاده استارت کنید. برای استارت داکر دسکتاپ اینجا کلیک کنید.
مرحله دوم: راه اندازی محیط Docker
اگر پروژه شما در محیط bash یا همان ترمینال اوبونتو 22.04 باز نیست مطابق دستور زیر آن را باز کنید.
- باز کردن پروژه در محیط ترمینال اگر بسته باشد
- با «شکن» تحریمهای اینترنتی رو بیاثر کن!
با توجه به اینکه داکر ایران را تحریم کرده از روشی که در سایت شکن گفته شده DNS سیستم محلی خود را تغییر دهید و سیستم خود را Restart کنید.
به علت تحریم ایران این مرحله الزامی می باشد و باید از یک DNS حرفه ای استفاده کنید.
- ساخت و راه اندازی کانتینر ها (داکر دسکتاپ باید ران باشد!)
- نصب وابستگیهای Composer
- تنظیم مجوزهای فایلها
- تنظیم مجوزهای فایلها (دستور اول)
- تنظیم مجوزهای فایلها (دستور دوم)
- کپی فایل env.
- تولید کلید برنامه
- پیکربندی فایل env.
- اجرای migrations
cd second-website
docker-compose up -d --build
docker-compose exec app composer install
هر دو دستور زیر را به ترتیب نصب کنید.
docker-compose exec app chmod -R 775 storage
docker-compose exec app chmod -R 775 bootstrap/cache
cp .env.example .env
docker-compose exec app php artisan key:generate
فایل env. را باز کنید و تنظیمات دیتابیس را به صورت زیر تغییر دهید:
DB_CONNECTION=mysqlDB_HOST=db2DB_PORT=3306DB_DATABASE=laravelDB_USERNAME=laravelDB_PASSWORD=secret
docker-compose exec app php artisan migrate
دسترسی به پروژه از طریق مرورگر
- پروژه Laravel:
- phpMyAdmin
- برای مدیریت دیتابیس به آدرس http://localhost:8082 بروید
در مرورگر به آدرس http://localhost:9000 بروید
http://localhost:9000
http://localhost:8082
اطلاعات ورود:
سرور | نام کاربری | رمز عبور |
---|---|---|
db2 | laravel | secret |