前回はさくらVPSとローカルMACでGitを自動更新する設定を行いました。
さくらVPSサーバーにローカルMacからgit pushすると自動的にgit pullする方法|ゼロから始めるLaravel勉強会
今回は、ローカルとサーバー側にLaravelをインストールします。
MacBookにLaravelをインストール
まずは自分のMacにcomposerを使ってLaravelをインストールします。
$ composer self-update Upgrading to version 2.1.3 (stable channel). Use composer self-update --rollback to return to version 2.0.7
これでアップデートできました。
composer global require laravel/installer
laravelインストーラーもいれておきます。
でも、PATHがうまくきれてないようなので、そのままインストールしちゃいます。
versionsのフォルダに移動して、
composer create-project laravel/laravel example-app
これで、example-app に移動
$ php artisan serve
として、ブラウザからlocalhost:8000をひらくと
無事にLaravelがローカルで起動しました。
MacBookからgit push
git add *して、git statusを見てみます。
(base) $ git add * The following paths are ignored by one of your .gitignore files: example-app/vendor Use -f if you really want to add them. (base) $ git status On branch master Your branch is up to date with 'origin/master'. Changes to be committed: (use "git restore --staged <file>..." to unstage) new file: README.md new file: app/Console/Kernel.php new file: app/Exceptions/Handler.php new file: app/Http/Controllers/Controller.php new file: app/Http/Kernel.php new file: app/Http/Middleware/Authenticate.php new file: app/Http/Middleware/EncryptCookies.php new file: app/Http/Middleware/PreventRequestsDuringMaintenance.php new file: app/Http/Middleware/RedirectIfAuthenticated.php new file: app/Http/Middleware/TrimStrings.php new file: app/Http/Middleware/TrustHosts.php new file: app/Http/Middleware/TrustProxies.php new file: app/Http/Middleware/VerifyCsrfToken.php new file: app/Models/User.php new file: app/Providers/AppServiceProvider.php new file: app/Providers/AuthServiceProvider.php new file: app/Providers/BroadcastServiceProvider.php new file: app/Providers/EventServiceProvider.php new file: app/Providers/RouteServiceProvider.php new file: artisan new file: bootstrap/app.php new file: bootstrap/cache/.gitignore new file: composer.json new file: composer.lock new file: config/app.php new file: config/auth.php new file: config/broadcasting.php new file: config/cache.php new file: config/cors.php new file: config/database.php new file: config/filesystems.php new file: config/hashing.php new file: config/logging.php new file: config/mail.php new file: config/queue.php new file: config/services.php new file: config/session.php new file: config/view.php new file: database/.gitignore new file: database/factories/UserFactory.php new file: database/migrations/2014_10_12_000000_create_users_table.php new file: database/migrations/2014_10_12_100000_create_password_resets_table.php new file: database/migrations/2019_08_19_000000_create_failed_jobs_table.php new file: database/seeders/DatabaseSeeder.php new file: package.json new file: phpunit.xml new file: public/.htaccess new file: public/favicon.ico new file: public/index.php new file: public/robots.txt new file: public/web.config new file: resources/css/app.css new file: resources/js/app.js new file: resources/js/bootstrap.js new file: resources/lang/en/auth.php new file: resources/lang/en/pagination.php new file: resources/lang/en/passwords.php new file: resources/lang/en/validation.php new file: resources/views/welcome.blade.php new file: routes/api.php new file: routes/channels.php new file: routes/console.php new file: routes/web.php new file: server.php new file: storage/app/.gitignore new file: storage/app/public/.gitignore new file: storage/framework/.gitignore new file: storage/framework/cache/.gitignore new file: storage/framework/cache/data/.gitignore new file: storage/framework/sessions/.gitignore new file: storage/framework/testing/.gitignore new file: storage/framework/views/.gitignore new file: storage/logs/.gitignore new file: tests/CreatesApplication.php new file: tests/Feature/ExampleTest.php new file: tests/TestCase.php new file: tests/Unit/ExampleTest.php new file: webpack.mix.js Untracked files: (use "git add <file>..." to include in what will be committed) .editorconfig .env.example .gitattributes .gitignore .styleci.yml
次に、git commitします。
git commit -m "all laravel"
特に問題はなさそうなので、
git push origin master
で、git push。
サーバー側を確認したところ、無事にpullされていました。
サーバー側の対応
先程のgit pushでは、gitignoreで指定されているファイルはインストールされていないので、サーバー側でもcomposerをつくってLaravelをインストールする必要があります。
↓ やり方はこちらを参照しました。
Laravel5のプロジェクトをGitで管理する – Qiita
.envファイルをサーバー側にも作成する必要があるので、まずはローカルのMacのVS codeで.env-localを作成します。
$ git add .env-sample $ git commit -m "env-sample" $ git push origin master
で、.env-sampleファイルもサーバー側に送ります。
ここに、DB接続情報などをいれていきます。
DB情報のチェック
今回、さくらVPSのLAPMスタートアップスクリプトでインストールしましたが、DB情報を確認します。
サーバー側で
# mysql Welcome to the MariaDB monitor. Commands end with ; or \g. Your MariaDB connection id is 8 Server version: 10.3.28-MariaDB MariaDB Server Copyright (c) 2000, 2018, Oracle, MariaDB Corporation Ab and others. Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.
MariaDBがインストールされています。
$ create database laravelDB;
とりあえず、データベースを作成します。
ローカルの.env-samplのDB部分を修正します。
これで、push.
サーバー側の.env-sampleを.envにファイル名を変更。
これで
$ composer install
サーバー側のLaravelのインストールができました。
確認
http://サーバーIPアドレス/versions/nakachon/public/index.php
ブラウザでLaravelの画面がでるか確認。
UnexpectedValueException The stream or file "/var/www/html/versions/nakachon/storage/logs/laravel.log" could not be opened in append mode: failed to open stream: Permission denied
logsフォルダの権限の問題でエラーがでるので、これの対応をします。
$ chown -R apache:apache storage/ $ chmod -R 775 storage
これでapacheユーザーが書き込みできる設定。
再び確認。
Illuminate\Encryption\MissingAppKeyException No application encryption key has been specified.
php artisanでencryption keyを作成する。
$ php artisan key:generate
ようやく表示されました。
まとめ
次回はapacheの設定でURLの調整とDB接続の確認をします。