Laravelのローカル開発環境を作成(3)
前々回・前回に引き続き、Git Bashでバシバシコマンドを打っていきます。
pwd
/c/Users/{ユーザー名}
cd Homestead/
vagrant up
Bringing machine 'homestead-7' up with 'virtualbox' provider... ==> homestead-7: Importing base box 'laravel/homestead'... ==> homestead-7: Matching MAC address for NAT networking... ==> homestead-7: Checking if box 'laravel/homestead' is up to date... ==> homestead-7: Setting the name of the VM: homestead-7 Vagrant is currently configured to create VirtualBox synced folders with the `SharedFoldersEnableSymlinksCreate` option enabled. If the Vagrant guest is not trusted, you may want to disable this option. For more information on this option, please refer to the VirtualBox manual: https://www.virtualbox.org/manual/ch04.html#sharedfolders This option can be disabled globally with an environment variable: VAGRANT_DISABLE_VBOXSYMLINKCREATE=1 or on a per folder basis within the Vagrantfile: config.vm.synced_folder '/host/path', '/guest/path', SharedFoldersEnableSymlinksCreate: false ==> homestead-7: Clearing any previously set network interfaces... ==> homestead-7: Preparing network interfaces based on configuration... homestead-7: Adapter 1: nat homestead-7: Adapter 2: hostonly ==> homestead-7: Forwarding ports... homestead-7: 80 (guest) => 8000 (host) (adapter 1) homestead-7: 443 (guest) => 44300 (host) (adapter 1) homestead-7: 3306 (guest) => 33060 (host) (adapter 1) homestead-7: 4040 (guest) => 4040 (host) (adapter 1) homestead-7: 5432 (guest) => 54320 (host) (adapter 1) homestead-7: 8025 (guest) => 8025 (host) (adapter 1) homestead-7: 27017 (guest) => 27017 (host) (adapter 1) homestead-7: 22 (guest) => 2222 (host) (adapter 1) ==> homestead-7: Running 'pre-boot' VM customizations... ==> homestead-7: Booting VM... ==> homestead-7: Waiting for machine to boot. This may take a few minutes... homestead-7: SSH address: 127.0.0.1:2222 homestead-7: SSH username: vagrant homestead-7: SSH auth method: private key homestead-7: Warning: Connection reset. Retrying... homestead-7: Warning: Connection aborted. Retrying... homestead-7: Warning: Connection reset. Retrying... homestead-7: Warning: Connection aborted. Retrying... homestead-7: Warning: Connection reset. Retrying... homestead-7: Warning: Connection aborted. Retrying... homestead-7: Warning: Connection reset. Retrying... homestead-7: Warning: Connection aborted. Retrying... homestead-7: Warning: Connection reset. Retrying... homestead-7: Warning: Connection aborted. Retrying... homestead-7: Warning: Connection reset. Retrying... homestead-7: homestead-7: Vagrant insecure key detected. Vagrant will automatically replace homestead-7: this with a newly generated keypair for better security. homestead-7: homestead-7: Inserting generated public key within guest... homestead-7: Removing insecure key from the guest if it's present... homestead-7: Key inserted! Disconnecting and reconnecting using new SSH key... ==> homestead-7: Machine booted and ready! ==> homestead-7: Checking for guest additions in VM... ==> homestead-7: Setting hostname... ==> homestead-7: Configuring and enabling network interfaces... ==> homestead-7: Mounting shared folders... ~ここらへんから鍵とかフォルダ名とか出てきたので省略~
とりあえず、ただ単にvagrantを起動するのは成功した模様?
ここからはHomesteadと連携するように設定を詰めていきます。
--- ip: "192.168.10.10" memory: 2048 cpus: 1 provider: virtualbox authorize: ~/.ssh/homestead.pub keys: - ~/.ssh/homestead folders: - map: C:\Users\{ユーザー名}\Homestead\laravel to: /home/vagrant/laravel sites: - map: homestead.test to: /home/vagrant/laravel/public databases: - homestead
cd ~/.ssh
pwd
/c/Users/{ユーザー名}/.ssh
ssh-keygen -t rsa
Generating public/private rsa key pair. Enter file in which to save the key (/c/Users/{ユーザー名}/.ssh/id_rsa):
{鍵の名前}
Enter passphrase (empty for no passphrase): Enter same passphrase again: Your identification has been saved in {鍵の名前}. Your public key has been saved in {鍵の名前}.pub. The key fingerprint is: ~以下略~
ls
{鍵の名前} {鍵の名前}.pub
が存在したらOK!
cd Homeste/
ローカル環境用のLaravelもダウンロードです!
composer create-project laravel/laravel laravel --prefer-dist
Installing laravel/laravel (v5.7.0) - Installing laravel/laravel (v5.7.0): Downloading (100%) Created project in laravel > @php -r "file_exists('.env') || copy('.env.example', '.env');" Loading composer repositories with package information Updating dependencies (including require-dev) Package operations: 72 installs, 0 updates, 0 removals - Installing vlucas/phpdotenv (v2.5.1): Downloading (100%) - Installing symfony/css-selector (v4.1.6): Downloading (100%) - Installing tijsverkoyen/css-to-inline-styles (2.2.1): Downloading (connectinDownloading (100%) - Installing symfony/polyfill-php72 (v1.9.0): Downloading (100%) - Installing symfony/polyfill-mbstring (v1.9.0): Loading from cache - Installing symfony/var-dumper (v4.1.6): Downloading (100%) - Installing symfony/routing (v4.1.6): Downloading (100%) - Installing symfony/process (v4.1.6): Downloading (100%) - Installing symfony/polyfill-ctype (v1.9.0): Loading from cache - Installing symfony/http-foundation (v4.1.6): Downloading (100%) - Installing symfony/event-dispatcher (v4.1.6): Downloading (100%) - Installing psr/log (1.0.2): Downloading (100%) - Installing symfony/debug (v4.1.6): Downloading (100%) - Installing symfony/http-kernel (v4.1.6): Downloading (100%) - Installing symfony/finder (v4.1.6): Downloading (100%) - Installing symfony/console (v4.1.6): Downloading (100%) - Installing doctrine/lexer (v1.0.1): Downloading (100%) - Installing egulias/email-validator (2.1.6): Downloading (100%) - Installing swiftmailer/swiftmailer (v6.1.3): Downloading (100%) - Installing paragonie/random_compat (v9.99.99): Downloading (100%) - Installing ramsey/uuid (3.8.0): Downloading (100%) - Installing psr/simple-cache (1.0.1): Downloading (100%) - Installing psr/container (1.0.0): Downloading (100%) - Installing opis/closure (3.1.1): Downloading (100%) - Installing symfony/translation (v4.1.6): Downloading (100%) - Installing nesbot/carbon (1.34.0): Downloading (100%) - Installing monolog/monolog (1.23.0): Downloading (100%) - Installing league/flysystem (1.0.46): Downloading (100%) - Installing erusev/parsedown (1.7.1): Downloading (100%) - Installing dragonmantank/cron-expression (v2.2.0): Downloading (connecting..Downloading (100%) - Installing doctrine/inflector (v1.3.0): Downloading (100%) - Installing laravel/framework (v5.7.9): Downloading (100%) - Installing fideloper/proxy (4.0.0): Downloading (100%) - Installing nikic/php-parser (v4.1.0): Downloading (100%) - Installing jakub-onderka/php-console-color (v0.2): Downloading (connecting..Downloading (100%) - Installing jakub-onderka/php-console-highlighter (v0.3.2): Downloading (connDownloading (100%) - Installing dnoegel/php-xdg-base-dir (0.1): Downloading (100%) - Installing psy/psysh (v0.9.8): Downloading (100%) - Installing laravel/tinker (v1.0.8): Downloading (100%) - Installing beyondcode/laravel-dump-server (1.2.2): Downloading (connecting..Downloading (100%) - Installing fzaninotto/faker (v1.8.0): Downloading (100%) - Installing hamcrest/hamcrest-php (v2.0.0): Downloading (100%) - Installing mockery/mockery (1.2.0): Downloading (100%) - Installing filp/whoops (2.2.1): Downloading (100%) - Installing nunomaduro/collision (v2.1.0): Downloading (100%) - Installing sebastian/version (2.0.1): Downloading (100%) - Installing sebastian/resource-operations (2.0.1): Downloading (connecting...Downloading (100%) - Installing sebastian/object-reflector (1.1.1): Downloading (100%) - Installing sebastian/recursion-context (3.0.0): Downloading (100%) - Installing sebastian/object-enumerator (3.0.3): Downloading (100%) - Installing sebastian/global-state (2.0.0): Downloading (100%) - Installing sebastian/exporter (3.1.0): Downloading (100%) - Installing sebastian/environment (3.1.0): Downloading (100%) - Installing sebastian/diff (3.0.1): Downloading (100%) - Installing sebastian/comparator (3.0.2): Downloading (100%) - Installing phpunit/php-timer (2.0.0): Downloading (100%) - Installing phpunit/php-text-template (1.2.1): Downloading (100%) - Installing phpunit/php-file-iterator (2.0.2): Downloading (100%) - Installing theseer/tokenizer (1.1.0): Downloading (100%) - Installing sebastian/code-unit-reverse-lookup (1.0.1): Downloading (connectiDownloading (100%) - Installing phpunit/php-token-stream (3.0.0): Downloading (100%) - Installing phpunit/php-code-coverage (6.0.8): Downloading (100%) - Installing doctrine/instantiator (1.1.0): Downloading (100%) - Installing webmozart/assert (1.3.0): Downloading (100%) - Installing phpdocumentor/reflection-common (1.0.1): Downloading (connecting.Downloading (100%) - Installing phpdocumentor/type-resolver (0.4.0): Downloading (100%) - Installing phpdocumentor/reflection-docblock (4.3.0): Downloading (connectinDownloading (100%) - Installing phpspec/prophecy (1.8.0): Downloading (100%) - Installing phar-io/version (2.0.1): Downloading (100%) - Installing phar-io/manifest (1.0.3): Downloading (100%) - Installing myclabs/deep-copy (1.8.1): Downloading (100%) - Installing phpunit/phpunit (7.4.0): Downloading (100%) symfony/var-dumper suggests installing ext-intl (To show region name in time zone dump) symfony/routing suggests installing doctrine/annotations (For using the annotation loader) symfony/routing suggests installing symfony/config (For using the all-in-one router or any loader) symfony/routing suggests installing symfony/dependency-injection (For loading routes from a service) symfony/routing suggests installing symfony/expression-language (For using expression matching) symfony/routing suggests installing symfony/yaml (For using the YAML loader) symfony/event-dispatcher suggests installing symfony/dependency-injection symfony/http-kernel suggests installing symfony/browser-kit symfony/http-kernel suggests installing symfony/config symfony/http-kernel suggests installing symfony/dependency-injection symfony/console suggests installing symfony/lock egulias/email-validator suggests installing ext-intl (PHP Internationalization Libraries are required to use the SpoofChecking validation) swiftmailer/swiftmailer suggests installing ext-intl (Needed to support internationalized email addresses) swiftmailer/swiftmailer suggests installing true/punycode (Needed to support internationalized email addresses, if ext-intl is not installed) paragonie/random_compat suggests installing ext-libsodium (Provides a modern crypto API that can be used to generate random bytes.) ramsey/uuid suggests installing ircmaxell/random-lib (Provides RandomLib for use with the RandomLibAdapter) ramsey/uuid suggests installing ext-libsodium (Provides the PECL libsodium extension for use with the SodiumRandomGenerator) ramsey/uuid suggests installing ext-uuid (Provides the PECL UUID extension for use with the PeclUuidTimeGenerator and PeclUuidRandomGenerator) ramsey/uuid suggests installing moontoast/math (Provides support for converting UUID to 128-bit integer (in string form).) ramsey/uuid suggests installing ramsey/uuid-doctrine (Allows the use of Ramsey\Uuid\Uuid as Doctrine field type.) ramsey/uuid suggests installing ramsey/uuid-console (A console application for generating UUIDs with ramsey/uuid) symfony/translation suggests installing symfony/config symfony/translation suggests installing symfony/yaml monolog/monolog suggests installing aws/aws-sdk-php (Allow sending log messages to AWS services like DynamoDB) monolog/monolog suggests installing doctrine/couchdb (Allow sending log messages to a CouchDB server) monolog/monolog suggests installing ext-amqp (Allow sending log messages to an AMQP server (1.0+ required)) monolog/monolog suggests installing ext-mongo (Allow sending log messages to a MongoDB server) monolog/monolog suggests installing graylog2/gelf-php (Allow sending log messages to a GrayLog2 server) monolog/monolog suggests installing mongodb/mongodb (Allow sending log messages to a MongoDB server via PHP Driver) monolog/monolog suggests installing php-amqplib/php-amqplib (Allow sending log messages to an AMQP server using php-amqplib) monolog/monolog suggests installing php-console/php-console (Allow sending log messages to Google Chrome) monolog/monolog suggests installing rollbar/rollbar (Allow sending log messages to Rollbar) monolog/monolog suggests installing ruflin/elastica (Allow sending log messages to an Elastic Search server) monolog/monolog suggests installing sentry/sentry (Allow sending log messages to a Sentry server) league/flysystem suggests installing ext-fileinfo (Required for MimeType) league/flysystem suggests installing ext-ftp (Allows you to use FTP server storage) league/flysystem suggests installing league/flysystem-aws-s3-v2 (Allows you to use S3 storage with AWS SDK v2) league/flysystem suggests installing league/flysystem-aws-s3-v3 (Allows you to use S3 storage with AWS SDK v3) league/flysystem suggests installing league/flysystem-azure (Allows you to use Windows Azure Blob storage) league/flysystem suggests installing league/flysystem-cached-adapter (Flysystem adapter decorator for metadata caching) league/flysystem suggests installing league/flysystem-eventable-filesystem (Allows you to use EventableFilesystem) league/flysystem suggests installing league/flysystem-rackspace (Allows you to use Rackspace Cloud Files) league/flysystem suggests installing league/flysystem-sftp (Allows you to use SFTP server storage via phpseclib) league/flysystem suggests installing league/flysystem-webdav (Allows you to use WebDAV storage) league/flysystem suggests installing league/flysystem-ziparchive (Allows you to use ZipArchive adapter) league/flysystem suggests installing spatie/flysystem-dropbox (Allows you to use Dropbox storage) league/flysystem suggests installing srmklive/flysystem-dropbox-v2 (Allows you to use Dropbox storage for PHP 5 applications) laravel/framework suggests installing aws/aws-sdk-php (Required to use the SQS queue driver and SES mail driver (^3.0).) laravel/framework suggests installing doctrine/dbal (Required to rename columns and drop SQLite columns (^2.6).) laravel/framework suggests installing ext-pcntl (Required to use all features of the queue worker.) laravel/framework suggests installing ext-posix (Required to use all features of the queue worker.) laravel/framework suggests installing guzzlehttp/guzzle (Required to use the Mailgun and Mandrill mail drivers and the ping methods on schedules (^6.0).) laravel/framework suggests installing league/flysystem-aws-s3-v3 (Required to use the Flysystem S3 driver (^1.0).) laravel/framework suggests installing league/flysystem-cached-adapter (Required to use the Flysystem cache (^1.0).) laravel/framework suggests installing league/flysystem-rackspace (Required to use the Flysystem Rackspace driver (^1.0).) laravel/framework suggests installing league/flysystem-sftp (Required to use the Flysystem SFTP driver (^1.0).) laravel/framework suggests installing moontoast/math (Required to use ordered UUIDs (^1.1).) laravel/framework suggests installing nexmo/client (Required to use the Nexmo transport (^1.0).) laravel/framework suggests installing pda/pheanstalk (Required to use the beanstalk queue driver (^3.0).) laravel/framework suggests installing predis/predis (Required to use the redis cache and queue drivers (^1.0).) laravel/framework suggests installing pusher/pusher-php-server (Required to use the Pusher broadcast driver (^3.0).) laravel/framework suggests installing symfony/dom-crawler (Required to use most of the crawler integration testing tools (^4.1).) laravel/framework suggests installing symfony/psr-http-message-bridge (Required to psr7 bridging features (^1.0).) psy/psysh suggests installing ext-pcntl (Enabling the PCNTL extension makes PsySH a lot happier :)) psy/psysh suggests installing ext-posix (If you have PCNTL, you'll want the POSIX extension as well.) psy/psysh suggests installing ext-pdo-sqlite (The doc command requires SQLite to work.) psy/psysh suggests installing hoa/console (A pure PHP readline implementation. You'll want this if your PHP install doesn't already support readline or libedit.) filp/whoops suggests installing whoops/soap (Formats errors as SOAP responses) sebastian/global-state suggests installing ext-uopz (*) phpunit/php-code-coverage suggests installing ext-xdebug (^2.6.0) phpunit/phpunit suggests installing phpunit/php-invoker (^2.0) phpunit/phpunit suggests installing ext-soap (*) phpunit/phpunit suggests installing ext-xdebug (*) Writing lock file Generating optimized autoload files > Illuminate\Foundation\ComposerScripts::postAutoloadDump > @php artisan package:discover Discovered Package: beyondcode/laravel-dump-server Discovered Package: fideloper/proxy Discovered Package: laravel/tinker Discovered Package: nesbot/carbon Discovered Package: nunomaduro/collision Package manifest generated successfully. > @php artisan key:generate Application key set successfully.
vagrant ssh
VM must be running to open SSH connection. Run `vagrant up` to start the virtual machine.
vagrant up
Bringing machine 'homestead-7' up with 'virtualbox' provider... ==> homestead-7: Checking if box 'laravel/homestead' is up to date... ==> homestead-7: Clearing any previously set forwarded ports... ==> homestead-7: Clearing any previously set network interfaces... ==> homestead-7: Preparing network interfaces based on configuration... homestead-7: Adapter 1: nat homestead-7: Adapter 2: hostonly ==> homestead-7: Forwarding ports... homestead-7: 80 (guest) => 8000 (host) (adapter 1) homestead-7: 443 (guest) => 44300 (host) (adapter 1) homestead-7: 3306 (guest) => 33060 (host) (adapter 1) homestead-7: 4040 (guest) => 4040 (host) (adapter 1) homestead-7: 5432 (guest) => 54320 (host) (adapter 1) homestead-7: 8025 (guest) => 8025 (host) (adapter 1) homestead-7: 27017 (guest) => 27017 (host) (adapter 1) homestead-7: 22 (guest) => 2222 (host) (adapter 1) ==> homestead-7: Running 'pre-boot' VM customizations... ==> homestead-7: Booting VM... ==> homestead-7: Waiting for machine to boot. This may take a few minutes... homestead-7: SSH address: 127.0.0.1:2222 homestead-7: SSH username: vagrant homestead-7: SSH auth method: private key ==> homestead-7: Machine booted and ready! ==> homestead-7: Checking for guest additions in VM... ==> homestead-7: Setting hostname... ==> homestead-7: Configuring and enabling network interfaces... ==> homestead-7: Mounting shared folders... homestead-7: /vagrant => C:/Users/{ユーザー名}/Homestead ==> homestead-7: Machine already provisioned. Run `vagrant provision` or use the `--provision` ==> homestead-7: flag to force provisioning. Provisioners marked to run always will still run.
すでに設定済み?というような英文が見えるのですが、この vagrant up
は必要だったのか???
ともかくもう一度ssh接続です!
vagrant ssh
Welcome to Ubuntu 18.04.1 LTS (GNU/Linux 4.15.0-32-generic x86_64) * Documentation: https://help.ubuntu.com * Management: https://landscape.canonical.com * Support: https://ubuntu.com/advantage System information as of Sat Oct 13 06:00:16 UTC 2018 System load: 0.23 Processes: 129 Usage of /: 9.6% of 61.80GB Users logged in: 1 Memory usage: 20% IP address for eth0: 10.0.2.15 Swap usage: 0% IP address for eth1: 192.168.10.10 * Security certifications for Ubuntu! We now have FIPS, STIG, CC and a CIS Benchmark. - http://bit.ly/Security_Certification * Want to make a highly secure kiosk, smart display or touchscreen? Here's a step-by-step tutorial for a rainy weekend, or a startup. - https://bit.ly/secure-kiosk 0 packages can be updated. 0 updates are security updates.
行けました!
Last login: Sat Oct 13 05:58:16 2018
日付は…日本時間じゃなさそうです。
pwd
/home/vagrant
ls
無でした。
2018/11/04追記。
無じゃ同期失敗してますね???原因調査中です。
ということでこっちでもLaravelをインストール。
composer create-project laravel/laravel laravel --prefer-dist
Installing laravel/laravel (v5.7.0) - Installing laravel/laravel (v5.7.0): Downloading (100%) Created project in laravel > @php -r "file_exists('.env') || copy('.env.example', '.env');" Loading composer repositories with package information Updating dependencies (including require-dev) {上記と同じなので省略} Application key set successfully.
ll
total 84 ~略~ drwxrwxr-x 12 vagrant vagrant 4096 Oct 13 06:06 laravel/ ~略~
cd laravel/
ll
total 244 ~略~ drwxrwxr-x 5 vagrant vagrant 4096 Sep 4 13:12 public/ ~略~
public
フォルダが確認できたので撤退!
logout`
Connection to 127.0.0.1 closed.
Homestead.ymlどおりの環境が整ったところでvagrantを再起動します。
vagrant reload --provision
==> homestead-7: Attempting graceful shutdown of VM... ==> homestead-7: Checking if box 'laravel/homestead' is up to date... ==> homestead-7: Clearing any previously set forwarded ports... ==> homestead-7: Clearing any previously set network interfaces... ==> homestead-7: Preparing network interfaces based on configuration... homestead-7: Adapter 1: nat homestead-7: Adapter 2: hostonly ==> homestead-7: Forwarding ports... homestead-7: 80 (guest) => 8000 (host) (adapter 1) homestead-7: 443 (guest) => 44300 (host) (adapter 1) homestead-7: 3306 (guest) => 33060 (host) (adapter 1) homestead-7: 4040 (guest) => 4040 (host) (adapter 1) homestead-7: 5432 (guest) => 54320 (host) (adapter 1) homestead-7: 8025 (guest) => 8025 (host) (adapter 1) homestead-7: 27017 (guest) => 27017 (host) (adapter 1) homestead-7: 22 (guest) => 2222 (host) (adapter 1) ==> homestead-7: Running 'pre-boot' VM customizations... ==> homestead-7: Booting VM... ==> homestead-7: Waiting for machine to boot. This may take a few minutes... homestead-7: SSH address: 127.0.0.1:2222 homestead-7: SSH username: vagrant homestead-7: SSH auth method: private key homestead-7: Warning: Connection aborted. Retrying... homestead-7: Warning: Connection reset. Retrying... homestead-7: Warning: Connection aborted. Retrying... homestead-7: Warning: Connection reset. Retrying... ==> homestead-7: Machine booted and ready! ==> homestead-7: Checking for guest additions in VM... ==> homestead-7: Setting hostname... ==> homestead-7: Configuring and enabling network interfaces... ==> homestead-7: Mounting shared folders... ~ここらへんからフォルダ名とか鍵とかたくさん出てきたので省略~
そして
http://homestead.test/
にアクセスすると…。
Laravelの文字が表示されました!
これで開発環境が用意されました!
もしかしたらDBとかつながってないかもしれないので、
そこの調査からですね……。
おまけ
Homesteadの中身が不十分のままvagrant upをすると、以下のようなエラーが出てきました。
vagrant up
Bringing machine 'default' up with 'virtualbox' provider... ==> default: Box 'base' could not be found. Attempting to find and install... default: Box Provider: virtualbox default: Box Version: >= 0 ==> default: Box file was not detected as metadata. Adding it directly... ==> default: Adding box 'base' (v0) for provider: virtualbox default: Downloading: base default: An error occurred while downloading the remote file. The error message, if any, is reproduced below. Please fix this error and try again. Couldn't open file /C:/Users/{ユーザー名}/Homestead/base