Установка через докер композ
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
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');