установка ларавела paravel


Установка через докер композ

 

docker run -it --mount type=bind,source="$(pwd)"/,target=/app --rm  bitnami/laravel:5.8.35-r5 composer create-project laravel/laravel=5.8 ./
# latest
docker run -it --mount type=bind,source="$(pwd)"/,target=/app --rm  bitnami/laravel composer create-project laravel/laravel ./
# docker-compose.yml
echo -e "version: '2'\nservices:\n  mariadb:\n    image: docker.io/bitnami/mariadb:11.2\n    ports:\n      - '3308:3306'\n    environment:\n      - ALLOW_EMPTY_PASSWORD=yes\n      - MARIADB_USER=bn_myapp\n      - MARIADB_DATABASE=bitnami_myapp\n  myapp:\n    image: docker.io/bitnami/laravel\n    ports:\n      - '8000:8000'\n    environment:\n      - DB_HOST=mariadb\n      - DB_PORT=3306\n      - DB_USERNAME=bn_myapp\n      - DB_DATABASE=bitnami_myapp\n    volumes:\n      - './:/app'\n    depends_on:\n      - mariadb\n" >> docker-compose.yml
# Makefile
echo -e "default: start\n\tdocker-compose exec myapp composer require laravel/breeze\n\tdocker-compose exec myapp php artisan breeze:install blade\n\tdocker-compose exec myapp php artisan migrate\n\tdocker-compose exec myapp php artisan storage:link\n\tdocker-compose exec myapp chmod 777 -R /app\nstart:\n\tdocker-compose up -d\nstop:\n\tdocker-compose stop\nssh:\n\tdocker-compose exec myapp bash\ncrud:\n\tdocker-compose exec myapp php artisan backpack:crud\nmig:\n\tdocker-compose exec myapp php artisan make:migration\n\tdocker-compose exec myapp chmod 777 -R /app\nmigg:\n\tdocker-compose exec myapp php artisan migrate\n" >> Makefile
# Makefile with gd
echo -e "default: start\n\tdocker-compose exec myapp composer require intervention/image\n\tdocker-compose exec myapp composer require laravel/breeze\n\tdocker-compose exec myapp php artisan breeze:install blade\n\tdocker-compose exec myapp php artisan migrate\n\tdocker-compose exec myapp php artisan storage:link\n\tdocker-compose exec myapp chmod 777 -R /app\nstart:\n\tdocker-compose up -d\nstop:\n\tdocker-compose stop\nssh:\n\tdocker-compose exec myapp bash\nmig:\n\tdocker-compose exec myapp php artisan make:migration\n\tdocker-compose exec myapp chmod 777 -R /app\nmigg:\n\tdocker-compose exec myapp php artisan migrate\n\n" >> Makefile

Делать в bash .  В винде надо поставитиь sh/ создать папку  запусть из нее sh

docker run -it --mount type=bind,source="$(pwd)"/,target=/app --rm  bitnami/laravel bash
composer create-project laravel/laravel ./
chmod 777 -R .
php artisan sail:install --devcontainer

##
docker run -p 8000:80  -it --mount type=bind,source="$(pwd)"/,target=/app --rm php:8.4.1-zts-bookworm php -S 0.0.0.0:80
docker run --name php84 -p 8000:80  -it --mount type=bind,source="$(pwd)"/,target=/app php:8.4.1-zts-bookworm bash

Выйти из bash и сделать:

# выходим из контейнера ctrl+d
echo -e "default:\n\tdocker-compose up -d\n" >> Makefile
echo -e "ssh:\n\tdocker-compose -p "" exec laravel.test bash\n" >> Makefile
echo -e "stop:\n\tdocker-compose stop\n" >> Makefile
echo -e "front:\n\tdocker-compose exec laravel.test composer require laravel/breeze \n\tdocker-compose exec laravel.test php artisan breeze:install blade\n\tdocker-compose exec laravel.test php artisan migrate\n" >> Makefile
make
make front

CRUD генератор

composer require backpack/crud
php artisan backpack:install
# use the model name, in singular
php artisan backpack:crud model
#Alternatively, you can generate CRUDs for all Eloquent models, by running:
php artisan backpack:build
# если образ ларавел sail не собирается то можно так сделать
docker run -p 8000:8000 -it --mount type=bind,source="$(pwd)"/,target=/app --rm  bitnami/laravel bash
# 
composer create-project laravel/laravel=10.2 ./
chmod 777 -R .
touch database/database.sqlite
composer require laravel/breeze 
php artisan breeze:install blade
# в .env изменить на sqlite
php artisan migrate

 

Старые версии ларавела

5.8.35-r5

# laravel 7
docker run -it --mount type=bind,source="$(pwd)"/,target=/app --rm  bitnami/laravel:7.30.1-debian-10-r125 bash
# mem limit https://getcomposer.org/doc/articles/troubleshooting.md#memory-limit-errors
php -r "echo ini_get('memory_limit').PHP_EOL;"
sudo sed -i 's/memory_limit.*=.*/memory_limit = 4g/' /opt/bitnami/php/etc/php.ini
php -r "echo ini_get('memory_limit').PHP_EOL;"
composer i

 

 

Readme bitnami

docker run -it --mount type=bind,source="$(pwd)"/,target=/app --rm  bitnami/laravel:10 composer create-project laravel/laravel ./
#
cat << EOT > docker-compose.yml
version: '2'
services:
  mariadb:
    image: docker.io/bitnami/mariadb:11.2
    ports:
      - '3308:3306'
    environment:
      - ALLOW_EMPTY_PASSWORD=yes
      - MARIADB_USER=bn_myapp
      - MARIADB_DATABASE=bitnami_myapp
  myapp:
    image: docker.io/bitnami/laravel:10
    ports:
      - '8000:8000'
    environment:
      - DB_HOST=mariadb
      - DB_PORT=3306
      - DB_USERNAME=bn_myapp
      - DB_DATABASE=bitnami_myapp
    volumes:
      - './:/app'
    depends_on:
      - mariadb
EOT
#
echo "start:" >> Makefile
echo "	docker-compose up -d" >> Makefile
echo "stop:" >> Makefile
echo "	docker-compose stop" >> Makefile
echo "i: start" >> Makefile
echo "	docker-compose exec myapp composer require laravel/breeze" >> Makefile
echo "	docker-compose exec myapp php artisan breeze:install blade" >> Makefile
echo "	docker-compose exec myapp php artisan migrate" >> Makefile
echo "backpack:" >> Makefile
echo "	docker-compose exec myapp composer require backpack/crud" >> Makefile
echo "	docker-compose exec myapp php artisan storage:link" >> Makefile
echo "	docker-compose exec myapp php artisan backpack:install" >> Makefile
echo "	echo http://localhost:8000" >> Makefile
echo "ssh:" >> Makefile
echo "	docker-compose exec myapp bash" >> Makefile
echo "crud:" >> Makefile
echo "	docker-compose exec myapp php artisan backpack:crud" >> Makefile
echo "mig:" >> Makefile
echo "	docker-compose exec myapp php artisan make:migration" >> Makefile
echo "	docker-compose exec myapp chmod 777 -R /app" >> Makefile
echo "migg:" >> Makefile
echo "	docker-compose exec myapp php artisan migrate" >> Makefile
#
echo "DB_CONNECTION=mariadb" >> .env
echo "DB_HOST=mariadb" >> .env
echo "DB_PORT=3306" >> .env
echo "DB_USERNAME=bn_myapp" >> .env
echo "DB_DATABASE=bitnami_myapp" >> .env

 

 

Генерация миграций по БД

composer require --dev kitloong/laravel-migrations-generator
# удалить старые
rm -rf database/migrations/*.php
# создать новые
php artisan migrate:generate
# похоже на баг ларавела. эта таблица создается без миграции
rm database/migrations/*personal_access_tokens*.php

Генерация моделей по БД

composer require reliese/laravel --dev
php artisan vendor:publish --tag=reliese-models
# Let's refresh our config cache just in case
php artisan config:clear
#
php artisan code:models --table=posts

Папка приложения

NAME_PJ=test2

Установка и настройка бд sqlite

curl https://getcomposer.org/composer.phar -o composer
chmod +x composer
./composer  create-project --prefer-dist laravel/laravel $NAME_PJ
cd $NAME_PJ
mv ../composer ./
./composer require barryvdh/laravel-debugbar --dev
./composer require laravel/ui 
# DB
touch database/database.sqlite
sed -i "s/DB_CONNECTION.*=.*/DB_CONNECTION=sqlite /" .env
sed -i "s/DB_DATABASE.*=.*/#DB_DATABASE=root/" .env
php artisan config:cache && php artisan migrate && php artisan ui bootstrap --auth
echo composer >> .gitignore

Сброка фронта

# со старой нодой не собирает надо ставить новую :
wget -qO- https://raw.githubusercontent.com/nvm-sh/nvm/v0.38.0/install.sh | bash
# перезайти в баш надо ато nvm не будет виден 
nvm install --lts

# front
npm install && npm run dev
npm run dev
# serve
php artisan serve --port=8000
# to network
php artisan serve  --port=8000 --host 192.168.1.2 

FAQ

# Установка npm & nodejs 
curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.37.2/install.sh | bash
nvm install v14.15.5

 

По умолчанию подтверждения емайла отключено. Чтобы включить надо 

1

\routes\web.php:20

Auth::routes(['verify' => true]);

2

\app\Models\User.php

class User extends Authenticatable implements MustVerifyEmail

3 Настроить использование

Route::get('profile', function () {
    // Only verified users may enter...
})->middleware('verified');

4 Если ошибки при регистарции то надо почистить кеш  и  проверить настройку отправки писем

#
php artisan cache:clear
php artisan config:clear

5 STEP 3— Customizing our template

php artisan vendor:publish --tag=laravel-notifications
php artisan vendor:publish --tag=laravel-mail

Очистка кеша

rm bootstrap/cache/config.php
php artisan config:cache
php artisan config:clear
php artisan cache:clear

 

Force https

URL::forceScheme('https');