$ cd app
$ lnmp-laravel new laravel
# Вышеуказанный командный запрос установит последнюю основную версию Laravel (10.x). Если вам требуется установить конкретную версию, вы можете указать её.
# $ lnmp-laravel new FOLDER VERSION
# $ lnmp-laravel new laravel5.5 5.5
# Также можно использовать `composer` для установки
# $ lnmp-composer create-project laravel/laravel laravel5.5 "5.5.*"
Дополнительную информацию смотрите здесь.
Правильно настройте HOST
сервисов. Ввод значения 127.0.0.1
может привести к невозможности подключения к сервису, причины этого будут подробно объяснены ниже.
DB_HOST=mysql
REDIS_HOST=redis
MEMCACHED_HOST=memcached
$ lnmp-composer require --dev barryvdh/laravel-ide-helper
$ lnmp-php artisan ide-helper:eloquent
$ lnmp-php artisan ide-helper:generate
$ lnmp-php artisan ide-helper:meta
$ lnmp-php artisan ide-helper:models
.gitignore
# .gitignore
.phpstorm.meta.php
_ide_helper.php
.php_cs.cache
В обоих случаях проектные файлы находятся на Windows, что является межмашинным соединением, поэтому возникают проблемы производительности файловой системы.В этих ситуациях директория vendor
может использовать данные в виде тома (том находится в виртуальной машине). Описание в vsCode и предлагаемое решение имеют аналогичные принципы работы.Из-за проблем производительности файловой системы рекомендуется не хранить проектные файлы на Windows.
Альтернативное решение — это расположение проектных файлов в WSL2, есть два варианта:
Проектные файлы могут быть расположены в WSL2 и использоваться с PHPStorm, см. https://github.com/khs1994-docker/php-demo
1. Включите интеграцию WSL2 в настройках Docker
Ресурсы
-> WSL INTEGRATION
-> Enable integration with additional distros:
-> Включите вашу WSL2 (например: Ubuntu)
2. Установите расширение для vsCode
$ code --install-extension ms-vscode-remote.remote-wsl
3. Измените переменные в файле .env
APP_ROOT=\\wsl$\ubuntu\app
4. Добавьте каталог lnmp/bin в PATH WSL2
# Выполните в Windows Terminal
$ cd ~/lnmp/bin
$ $env:WSLENV="LNMP_BIN_WIN_PATH/p"
$ $env:LNMP_BIN_WIN_PATH=$PWD
$ wsl -d <WSL_название> -- sh -c 'echo $LNMP_BIN_WIN_PATH'
# Добавьте результат в переменную окружения PATH WSL2
Вышеуказанные шаги следует выполнить один раз, затем продолжайте с последующими шагами
5. Запустите LNMP
$ ./lnmp-docker up
6. Установите Laravel в папку laravel
$ lnmp-docker code
При выполнении вышеуказанных команд откроется окно VS Code.
В меню VS Code выберите View
-> Terminal
, затем выполните следующие команды:```bash
$ lnmp-composer config -g repos.packagist composer https://mirrors.cloud.tencent.com/composer/
$ lnmp-laravel new laravel
$ sudo chown -R 1000:1000 /app $ sudo chmod -R 777 /app/laravel/storage/app $ sudo chmod -R 777 /app/laravel/storage/logs $ sudo chmod -R 777 /app/laravel/storage/framework
**8. Ежедневные шаги разработки**
```powershell
$ lnmp-docker code laravel
При выполнении вышеуказанных команд откроется окно VS Code.
В меню VS Code выберите View
-> Terminal
, затем выполните следующие команды:
Пример использования компонента laravel/jetstream
:
$ lnmp-composer require laravel/jetstream
$ lnmp-php artisan jetstream:install inertia
$ lnmp-npm install
$ lnmp-npm run build
$ lnmp-php artisan migrate
# Откройте http://127.0.0.1/register для просмотра страницы
1. Активируйте интеграцию WSL2 в настройках Docker
Resources
-> WSL INTEGRATION
-> Enable integration with additional distros:
-> Активировать ваш WSL2 (например: Ubuntu)
2. Установите расширение VS Code
$ code --install-extension ms-vscode-remote.remote-containers
3. Измените переменные в файле .env
# .env
APP_ROOT=\\wsl$\ubuntu\app
# Добавьте сервис vscode-remote-container-workspace
LNMP_SERVICES="nginx mysql php8 redis vscode-remote-container-workspace"
Вышеописанные шаги следует выполнить один раз, последующее развитие начинается с нижеприведённых шагов
4. Запустите LNMP
$ ./lnmp-docker up
5. Откройте VSCode
В левом нижнем углу выберите Открыть удалённое окно
-> Remote-Containers: Attach to Running Container...
-> Выберите контейнер lnmp_vscode-remote-container-workspace_1
-> Откроется новое окно -> В левой части выберите Открыть папку
-> Введите /app
В меню VS Code выберите Просмотр
-> Консоль
В открывшейся консоли выполните команды, в данном примере это установка компонента laravel/jetstream
:```bash
$ cd laravel
$ composer require laravel/jetstream
$ php artisan jetstream:install inertia Vue scaffolding installed successfully. Пожалуйста, выполните "npm install && npm run dev", чтобы скомпилировать ваш свежий шаблон. Шаблон аутентификации создан успешно.
В Windows консоли выполните следующие команды:
```powershell
$ lnmp-docker code-run -w /app/laravel npm install
$ lnmp-docker code-run -w /app/laravel npm run dev
# Откройте http://127.0.0.1/register для просмотра страницы
xdebug.php-debug
$ lnmp-docker php8-cli php /app/laravel/artisan queue:work --tries=3
config/s6
или config/supervisord
, чтобы запустить несколько сервисов одновременно в одном контейнере (оба способа включают примеры запуска очередей Laravel).См. вышеупомянутый раздел о запуске очередей.```bash $ lnmp-docker php8-cli php /app/laravel/artisan schedule:run
## Запуск Laravel horizon
* <https://laravel.com/docs/10.x/horizon>
```bash
$ lnmp-composer require laravel/horizon
$ lnmp-php artisan horizon:install
Конфигурация
Файл конфигурации config/horizon.php
должен содержать массив environments
, который включает текущую среду выполнения Laravel.
Пропустить проверку
Файл app/Providers/HorizonServiceProvider.php
protected function gate()
{
Gate::define('viewHorizon', function ($user = null) {
return true;
return in_array($user->email, [
'taylor@laravel.com',
]);
});
}
См. описание очередей в предыдущем разделе.
$ lnmp-docker php8-cli php /app/laravel/artisan horizon
Неприемлемый контент может быть отображен здесь и не будет показан на странице. Вы можете проверить и изменить его с помощью соответствующей функции редактирования.
Если вы подтверждаете, что содержание не содержит непристойной лексики/перенаправления на рекламу/насилия/вульгарной порнографии/нарушений/пиратства/ложного/незначительного или незаконного контента, связанного с национальными законами и предписаниями, вы можете нажать «Отправить» для подачи апелляции, и мы обработаем ее как можно скорее.