「Web」カテゴリーアーカイブ

【Linux】【Laravel】Laravelからデータベースにアクセスする。

Laravelからmysqlにアクセスできるところまでやりました。

mysqlのインストール

$ sudo apt-get install mysql-server

mysqlの初期設定

$ sudo mysql_secure_installation

基本的にyを選択すれば良い。

rootでログイン

$ sudo mysql -u root -p

データベースの作成

mysql> create database <データベース名>;

ユーザーの追加

mysql> create user <ユーザー名> identified by '<パスワード>';

ユーザーに権限を付与

mysql> grant all on . to <ユーザー名>;

Laravelにデータベースの設定を記入

database.phpの設定を変更。

        'mysql' => [
            'driver' => 'mysql',
            'host' => env('DB_HOST', '127.0.0.1'),
            'port' => env('DB_PORT', '3306'),
            'database' => env('DB_DATABASE', '<データベース名>'),
            'username' => env('DB_USERNAME', '<ユーザー名>'),
            'password' => env('DB_PASSWORD', '<パスワード>'),
            'unix_socket' => env('DB_SOCKET', ''),
            'charset' => 'utf8mb4',
            'collation' => 'utf8mb4_unicode_ci',
            'prefix' => '',
            'strict' => true,
            'engine' => null,
        ],

migrateの実行

$ php artisan migrate

エラーが出た。

could not find driver

PHPに、データベースにアクセスするPDOがない、ということなので、mysqlにアクセスするモジュールを追加。

$ sudo apt-get install php7.2-mysql

これでmigrateが成功すればOK。

適当なテーブルを追加する

$ php artisan make:migration create_test_table

CreateTestTableクラスが出来上がるので、以下のように書き換える。

    public function up()
    {
        Schema::create('test', function (Blueprint $table) {
            $table->increments('id');
            $table->text('text');
            $table->timestamps();
        });
    }
$ php artisan migrate

Laravelからデータベースにアクセス

$ php artisan tinker
>>> DB::table('test')->get();
DB::table('test')->insert(['test' => 'insert'])
DB::table('test')->get();

データが表示されれればOK。

【Linux】【Laravel】Laravel5.5をインストールする。

オイラのLinux PCにLaravel5.5をインストールしました。

使用ディストリビューションはUbuntu18.04です。

composerのインストール

$ sudo apt-get install composer

Laravelのインストール

$ composer global require "laravel/installer"

プロジェクトの作成

$ composer create-project --prefer-dist laravel/laravel <プロジェクト名> "5.5.*"

実行すると

You can also run php --ini inside terminal to see which files are used by PHP in CLI mode.

というエラーが出たので、PHPのモジュールを追加。

$ sudo apt-get install php7.2-mbstring
$ sudo apt-get install php7.2-xml

Laravelの実行

$ php artisan serve

を実行した状態で、ブラウザから

http://localhost:8000

にアクセスする。

この画面が表示されればOK。

パーミッション変更

これをやらないとダメらしい。

$ chmod 777 storage/
$ chmod 777 bootstrap/cache/

【プログラミング】美人時計のようなもの(Web編)

Tech commitの挑戦状課題で「美人時計のようなもの」があったので、まずはJavascriptで作成しました。

飯テロ時計

http://taki-lab.site/meshitero/meshitero.html

https://github.com/takishita2nd/meshitero_timer

30分おきに画像が変わり、時間を教えてくれます。

コード解説

まずは、html本体。

<!doctype html>
<html>
    <header>
        <meta charset="utf-8">
        <title>飯テロ時計</title>
        <script src="jquery-3.4.1.min.js"></script>
    </header>
    <body>
        <img id="image" width="640" height="480" src="" />
        <script src="meshitero.js" ></script>
    </body>
</html>

ライブラリはjQueryを使用。これを使うと、IDやclass指定した要素の取得が簡単になります。

本体は画像を表示するimgタグのみ。

そのあとにjs本体を読み込ませます。

jsは最後に書かないと、きちんと動いてくれないっぽい。

続いて、js本体。

function getImageName() {
    var date = new Date();
    var hour = ("00" + date.getHours()).slice(-2);
    var min = "00";
    if(date.getMinutes() >= 30) {
        min = "30"
    }
    var imageFormat = "time_{0}_{1}.jpg";
    return imageFormat.replace("{0}", hour).replace("{1}", min);
}

function imageUpdate(force = false) {
    var date = new Date();
    if(force = false &&
       (date.getMinutes() % 30) != 0) {
        return;
    }
    var imageName = getImageName();
    var image = $("#image")[0].src = "img/" + imageName;
}

document.onload = imageUpdate(true);
setInterval(imageUpdate, 60000);

まず、用意する画像のファイル名は「time_hh_mm.jpg」で統一します。

ファイル名フォーマットとして”time_{0}_{1}.jpg”というのを用意し、あとは実際の時間に合わせて{0}と{1}の部分をリプレースして、ファイル名を作成します。

画像の置き換えはimgタグの要素srcの値を書き換えるだけです。

で、setInterval()で一定時間後周期的にヶ同読み込みが行われるのですが、初回ロード時にも画像を読んで貰わないと行けないので、onload(html読み込み終了時)に強制的に読み込みを実行します。

imageUpdate(force = false) {}とは、引数を指定しなければforceの値は初期値falseが適用されます。

imgタグを書き換えるだけでいいので、思ったほど簡単なコードになりました。

ASP.NET coreを試してみる

試すだけなら簡単。

Visual Studioを立ち上げ、

Webアプリケーションのプロジェクトを作成すれば良い。

プロジェクトを作成して、ビルドして実行すれば、

ブラウザが立ち上がって最初のページが表示される。

しかも、すでにユーザー登録やログイン画面も出来上がっているのである。

ユーザー管理はデータベースを使用しているので、

最初ユーザー登録ページを表示したときはエラーが表示される。

しかしマイグレーションというボタンを押せば、データベースを作成してくれる。

 

実は、実行環境はdotnet.exeというプログラムが、ビルドしたDLLファイルを実行しているだけ。

HTTPサーバやデータベースは実行時に簡易的なものが動作している。

デバッグならば、このままでも十分だし、

まぁ、WindowsサーバならそのままWindowsサーバの環境に移して動かすことができるのだが、

Linux環境だとそうはいかないんだろうなぁ。

まぁ、いろいろいじってみよ。

まずは、このDLLをVPSで動かすことを試してみる。