Как настроить проект Laravel / Lumen (используя composer) из репозитория Git? - PullRequest
0 голосов
/ 05 февраля 2019

Я новичок в Laravel и вытащил один проект из git-репо..gitIgnore файл содержит:

/vendor
/.idea
Homestead.json
Homestead.yaml
.env

И я вижу, что мой проект не работает.Это на самом деле серверная часть, использующая Lumen и заданный маршрут, недоступный через localhost:8080/myRouteName, даже если он установлен

$router->group(['prefix' => 'myRouteName'], function () use ($router) {
    $router->post('/', ['middleware' => 'auth', 'uses' => 'MyController@store']);
});

Так что я предполагаю, что мне понадобится папка /vendor, так как я думаю, что это требуется для правильной работы приложения.Я переместился в каталог проекта и запустил команду: composer install, и в итоге получил эту ошибку :

PS C:\wamp64\www\myprojectname> composer install
  [Composer\Exception\NoSslException]
  The openssl extension is required for SSL/TLS protection but is not available. 
If you can not enable the openssl extension, you can disable this error, at your own risk, by setting the 'disable-tls' option to true.
    install [--prefer-source] [--prefer-dist] [--dry-run] [--dev] [--no-dev] [--no-custom-installers] [--no-autoloader] [--no-scripts] [--no-progress] [--no-suggest] [-v|vv|vvv|--verbose] [-o|--optimize-autoloader] [-a|--classmap-authoritative] [--apcu-autoloader] [--ignore-platform-reqs] [--] [<packages>]...

Затем я открыл свой каталог WAMP ине удалось найти php.ini (php7.3.1, и это установлено в моих переменных среды пользователя Windows), так как я вижу только php-development.ini и php-production.ini.

Так что я закончил с командой:

composer config -g -- disable-tls true

и затем, запустив composer install снова, я получил эти ошибки :

PS C:\wamp64\www\myprojectname> composer install
You are running Composer with SSL/TLS protection disabled.
Loading composer repositories with package information
Installing dependencies (including require-dev) from lock file
Your requirements could not be resolved to an installable set of packages.

  Problem 1
    - Installation request for illuminate/encryption v5.6.15 -> satisfiable by illuminate/encryption[v5.6.15].
    - illuminate/encryption v5.6.15 requires ext-mbstring * -> the requested PHP extension mbstring is missing from your system.
  Problem 2
    - Installation request for illuminate/support v5.6.15 -> satisfiable by illuminate/support[v5.6.15].
    - illuminate/support v5.6.15 requires ext-mbstring * -> the requested PHP extension mbstring is missing from your system.
  Problem 3
    - Installation request for mongodb/mongodb 1.3.1 -> satisfiable by mongodb/mongodb[1.3.1].
    - mongodb/mongodb 1.3.1 requires ext-mongodb ^1.4.0 -> the requested PHP extension mongodb is missing from your system.
  Problem 4
    - Installation request for phpunit/phpunit 7.0.3 -> satisfiable by phpunit/phpunit[7.0.3].
    - phpunit/phpunit 7.0.3 requires ext-mbstring * -> the requested PHP extension mbstring is missing from your system.
  Problem 5
    - illuminate/support v5.6.15 requires ext-mbstring * -> the requested PHP extension mbstring is missing from your system.
    - laravel/lumen-framework v5.6.3 requires illuminate/support 5.6.* -> satisfiable by illuminate/support[v5.6.15].
    - Installation request for laravel/lumen-framework v5.6.3 -> satisfiable by laravel/lumen-framework[v5.6.3].

Пытался раскомментировать (в обоих php-development.ini и php-production.ini) такие вещи, как:

extension=openssl
extension=mbstring

, но это не помогает с ошибками.Мой composer.json файл выглядит следующим образом:

{
    "name": "laravel/lumen",
    "description": "The Laravel Lumen Framework.",
    "keywords": ["framework", "laravel", "lumen"],
    "license": "MIT",
    "type": "project",
    "require": {
        "php": ">=7.1.3",
        "google/apiclient": "^2.0",
        "jenssegers/mongodb": "^3.4",
        "laravel/lumen-framework": "5.6.*",
        "league/fractal": "^0.17.0",
        "vlucas/phpdotenv": "~2.2"
    },
    "require-dev": {
        "fzaninotto/faker": "~1.4",
        "phpunit/phpunit": "~7.0",
        "mockery/mockery": "~1.0"
    },
    "autoload": {
        "psr-4": {
            "App\\": "app/"
        }
    },
    "autoload-dev": {
        "classmap": [
            "tests/",
            "database/"
        ]
    },
    "scripts": {
        "post-root-package-install": [
            "@php -r \"file_exists('.env') || copy('.env.example', '.env');\""
        ]
    },
    "config": {
        "preferred-install": "dist",
        "sort-packages": true,
        "optimize-autoloader": true
    },
    "minimum-stability": "dev",
    "prefer-stable": true
}

Так что в принципе я не уверен, как настроить одно базовое Laravel/Lumen приложение, извлеченное из git репо.

1 Ответ

0 голосов
/ 05 февраля 2019

Lumen требует, чтобы в вашем ini-файле PHP были включены следующие расширения PHP.

OpenSSL PHP Extension
PDO PHP Extension
Mbstring PHP Extension

(https://lumen.laravel.com/docs/5.7)

Чтобы отредактировать нужный файл php.ini с помощью WAMP, выщелкните правой кнопкой мыши на значке wamp на панели задач, перейдите в PHP и нажмите php.ini.

В этом файле вы должны раскомментировать эти два расширения.

extension=openssl
extension=mbstring
...