Labs

<< 最初 < 前ページ 次ページ > 最後 >>
icon RuntimeException No application encryption key has been specified (2019/05/02)
プロジェクトを整理していたら、アプリケーションキー「encryption key」を消失http://xxx.xxx.xxx.xxx:8000/ のアクセス時に Runtimeエラーが表示
作成する
$ php artisan key:generateApplication key set successfully.
実際にはクラスファイル「KeyGenerateCommand」で、Laravel Config設定に基づき、 base64_encode() と Encrypter::generateKey() でランダムキーを生成している模様。
Illuminate\Foundation\Console\KeyGenerateCommand
    public function handle()
    {
        $key = $this->generateRandomKey();
       .....
        $this->laravel['config']['app.key'] = $key;
    }
    protected function generateRandomKey()
    {
        return 'base64:'.base64_encode(
            Encrypter::generateKey($this->laravel['config']['app.cipher'])
        );
    }
icon Laravel インストール&起動 (2019/04/29)

Linux PHPパッケージの用意

通常PHP環境(PDO, JSON, LAMP & LAPP...)で最低限入れておけば動作しそうだが、laravel プロジェクト作成のバージョンによって異なる
Installation(5.8)
# aptitude install php-zip php7.3-pdo php7.3-pgsql php7.3-mysql php7.3-mbstring php7.3-ssh2 php7.3-gd php7.3-curl php7.3-tokenizer php7.3-bcmath php7.3-ctype

composer の用意

PHP7.3 で環境を作成するため、ソースでインストールした。
(Debian9系パッケージの composer だとエラーになる)
PHP7.3 で compser install できない
composer -V
Composer version 1.8.5

Laravel インストール & プロジェクト作成

composer で Laravel をインストールし、~/.config/composer/vendor/ にコマンドパスを通す
$ composer global require "laravel/installer"
$ export PATH="~/.config/composer/vendor/bin:$PATH"
この時点でエラーになる場合は、ライブラリが不足せいている可能性がある
ライブラリが膨大なため、まぁまぁ時間がかかる
$ laravel new project_name
...
- Installing symfony/translation (v4.2.7): Downloading (100%)
- Installing nesbot/carbon (2.17.1): Downloading (100%)
- Installing monolog/monolog (1.24.0): Downloading (100%)
- Installing league/flysystem (1.0.51): Downloading (100%)
- Installing laravel/framework (v5.8.14): Downloading (100%)
...
Package manifest generated successfully.
Application ready! Build something amazing.
$ chmod -R 777 storage
$ chmod -R 777 bootstrap/cache
ここら辺は、コマンド自動化した方が良い
またlaravel のパスが利用できない場合は、以下のコマンドで作成(こっちが正規か?)
$ composer create-project laravel/laravel --prefer-dist project_name 5.8

Laravelサーバ起動

個人環境では、Mac上にVirtualBox(Debian)サーバを別IPでルーティングしているため、IPの指定(--host)が必要
$ php artisan serve --host=192.168.11.56
Laravel

リダイレクト設定

artisan serve でなく普通にアクセスするには汎用Webフレームワークでよくある、public のリダイレクト設定が必要
以下を「.htacess」に記述し、public をルートとみなす
<IfModule mod_rewrite.c>
    <IfModule mod_negotiation.c>
        Options -MultiViews
    </IfModule>

    RewriteEngine On

    RewriteCond %{REQUEST_FILENAME} -d [OR]
    RewriteCond %{REQUEST_FILENAME} -f
    RewriteRule ^ ^$1 [N]

    RewriteCond %{REQUEST_URI} (\.\w+$) [NC]
    RewriteRule ^(.*)$ public/$1
</IfModule>
icon PHP7.3 で compser install できない (2019/04/29)
PHP7.3 で break と continue の取り扱いが変更になった影響で、composer install がエラーになる場合、
  • PHP7.2にさげる
  • composer のバージョンをあげる
    $ composer global require "laravel/installer"
    Changed current directory to /home/yoo/.config/composer
    Using version ^2.0 for laravel/installer
    ./composer.json has been created
    Loading composer repositories with package information
    Updating dependencies (including require-dev)

    Installation failed, deleting ./composer.json.

    [ErrorException]
    "continue" targeting switch is equivalent to "break". Did you mean to use "continue 2"?

    require [--dev] [--prefer-source] [--prefer-dist] [--no-progress] [--no-update] [--no-scripts] [--update-no-dev] [--update-with-dependencies] [--ignore-platform-reqs] [--prefer-stable] [--prefer-lowest] [--sort-packages] [-o|--optimize-autoloader] [-a|--classmap-authoritative] [--] []...
    特に初期設定で composer のバージョンが低い場合は注意が必要
    (composer self-udpate がないなど)
    composer installができなくなった時の解決法(PHP7.3)

    PHP7.2 に変更

    $ sudo update-alternatives --config php
    選択肢 パス 優先度 状態
    ------------------------------------------------------------
    *0 /usr/bin/php7.3 73 自動モード
    1 /usr/bin/php5 50 手動モード
    2 /usr/bin/php7.0 70 手動モード
    3 /usr/bin/php7.2 72 手動モード
    4 /usr/bin/php7.3 73 手動モード

    composerの再インストール(self-udpateなど利用できない場合)

    composer-setup.php をダウンロード・実行する
    $ curl -sS https://getcomposer.org/installer | php
    $ HASH=544e09ee996cdf60ece3804abc52599c22b1f40f4323403c44d44fdfdd586475ca9813a858088ffbc1f233e9b180f061
    $ sudo php composer-setup.php --install-dir=/usr/local/bin --filename=composer
    $ composer -V
    Composer version 1.8.5 2019-04-09 17:46:47
<< 最初 < 前ページ 次ページ > 最後 >>