postgresqlの設定
Debian への PostgreSQLインストールから新規DB作成まで
PHPの拡張ライブラリ pdo_pgsql のインストール
https://symfoware.blog.fc2.com/blog-entry-2307.html
php.ini の変更
/etc/php/7.3/cgi/php.ini
を修正
;extension=pdo_mysql ;extension=pdo_oci ;extension=pdo_odbc extension=pdo_pgsql ←ここのコメントを外す ;extension=pdo_sqlite ;extension=pgsql ;extension=shmop
PostgreSQL の PRIMARY_KEY の話
HTMLの中のPHPスクリプトを動かしたい
<html> <head> <title>テスト</title> </head> <body> <?php echo "Hello World!\n"; ?> </body> </html>
こういう html ファイルを動かしたい。
https://qiita.com/f-akazawa/items/a5d0bf61d78a052df85a
上記の通りやったらできた。
Nginx + PHP + Debian 10
あらまし
Debian 10 に nginx と PHP をインストールしてみる。
nginx のインストール
Debian 10 (buster) - Web サーバ Nginx 構築(Nginx 公式リポジトリ使用)! - mk-mode BLOG
ユーザー権限でやってうまくいかなかった。root権限でやれって書いてあった。
あと、ufw っていうツールが入ってなかったので、それは別途インストールした。
PHP
Debian 10 (buster) - PHP インストール(Nginx と連携)! - mk-mode BLOG
phpinfo.php
を nginx のドキュメントルート /usr/share/nginx/html
に配置し、localhost/phpinfo.php
にアクセスしても FIle not found
が表示される。
test.html
を 同ディレクトリに配置した場合はちゃんと表示される。
↑ドキュメントルートを /var/www/html
に変えてみる
↑File not found の対処法。その前にエラーログの場所がわからなかった。
→ エラーログの場所はconfファイル(/etc/nginx/nginx.conf
) に記載があり、/var/log/nginx/error.log
だった。
nginx と PHP-FPM の仕組みをちゃんと理解しながら PHP の実行環境を構築する - Qiita
nginx $document_root$fastcgi_script_name と $request_filename の違い - Qiita
【2021/2/4 現在 未解決】
【2021/2/5 追記 - 解決】
nginx の設定が悪かった。
/etc/nginx/conf.d/default.conf
でのドキュメントルートの設定を location / ...
の下に書いていて、location ~ \.php$ ...
の下ではドキュメントルートが未設定の状態となっていたようだ。
あと、phpファイルのプレフィックスは<?php
じゃないとだめっぽい?
server { root /var/www/html; #← ドキュメントルートはここに書く location / { # root /var/www/html; # ← 当初はここに書いていた index index.html index.htm; } location ~ \.php$ { # ここでは別のドキュメントルート設定となっていた。 }
参考サイト
PHP-FPM の エラーログの出力の仕方
https://qiita.com/renny1398/items/ee1d03f43157e315298aPHP-FPM の access.log の設定の仕方
https://qiita.com/haru/items/fe4f5a67e96b260449c5PHP-FPM の UNIX ソケットの作成方法
https://qiita.com/kawakami-kazuyoshi/items/610d1435d812beb853e2
→ ソケットのルートディレクトリが /run だからダメなのかな?と思ったけど、よく調べてみると /var/run は /run へのシンボリックリンクで関係なかった。
SSH接続
前提
Debian は Virtual Box に入ってるものとします。
以下のURLの通りに設定したがホストからはつながらなかった
https://www.mk-mode.com/blog/2019/10/11/debian-10-ssh-installation/#
解決
Debian 側のファイアウォールでポートを開けてなかった。root権限で以下を実行するといけた。
ufw allow 9999/tcp
参考サイト
Virtual Box で Debian を入れて NAT + VirtualBox Host-Only Network の環境を構築する
前提
Debian は Virtual Box に入ってるものとします。
以下のURLの通りに設定するとOK
https://qiita.com/muniere/items/878837964f3b11fb7663
詰まったところ
NATをVirtualBox Host-Only Network にするとホストとゲストでの通信はできるようになるが、ゲストから外が見れなくなる。
VirtualBox Host-Only Network をセカンドネットワークにするとネットワークインターフェースは認識されているが、IPが設定されていなかった。
/etc/network/interfaces
を編集するのね。
※ インターフェースカード名は ip a
で表示されている項目と合わせること
Ubuntu の場合
2021/4/19 追記
Ubuntu でやったらIPアドレスを設定するところで詰まったので追記
Ubuntu 18.04(on VirtualBox) ホストOSからの通信 - Qiita
/etc/netplan/00-installer-config.yaml
設定を入れる必要がある。
2023/6/17 追記
上記のリンクの通りにやろうと思ったらプチはまりした。
Virtual Box のほうでネットワークカードを2枚にする必要がある。
初めの1枚は外部接続用。
もう一枚をホスト・ゲスト間の通信用として使う。
ESP32+ILI9341 パラレル通信描画
以下のブログを参考に
以下のコードを動かす
#include <WiFi.h> #include "SPI.h" #include "TFT_eSPI.h" TFT_eSPI tft = TFT_eSPI(); // Invoke custom library void setup() { tft.init(); tft.setRotation(1); Serial.begin(115200); delay(100); tft.fillScreen(TFT_RED); } static uint32_t c = 0; void loop() { static int s = 0; static unsigned long old_time; old_time = millis(); int box = 32; // put your main code here, to run repeatedly: tft.setRotation(1); int x, y; for(int j = 0;j < 64;j++) { x = random(0, 320); y = random(0, 240); tft.fillRect(x, y, box, box, c); tft.drawRect(x, y, box, box, ~c); c++; } Serial.print((float)1/(millis()-old_time)*1000); Serial.println(" fps"); }
TrueTypeフォントをPNG画像に出力するGo言語コード
絵文字が豆腐になる。どうすればいいのかは要調査
package main import ( "bytes" "fmt" "image" "image/png" "io/ioutil" "os" "github.com/golang/freetype/truetype" "golang.org/x/image/font" "golang.org/x/image/math/fixed" ) func main() { f, err := os.Open("Cica-Regular.ttf") if err != nil { panic(err) } defer f.Close() ttfBytes, err := ioutil.ReadAll(f) if err != nil { panic(err) } ft, err := truetype.Parse(ttfBytes) if err != nil { panic(err) } opt := truetype.Options{ Size: 24, DPI: 0, Hinting: 0, GlyphCacheEntries: 0, SubPixelsX: 0, SubPixelsY: 0, } text := "abcdefghijklmnopqrstuvwxyzあ亜!薔薇😀" face := truetype.NewFace(ft, &opt) b, a := font.BoundString(face, text) w := b.Max.X - b.Min.X + fixed.I(1) h := b.Max.Y - b.Min.Y + fixed.I(1) img := image.NewRGBA(image.Rect(0, 0, w.Ceil(), h.Ceil())) // draw.Draw(img, img.Bounds(), &image.Uniform{image.Black}, image.ZP, draw.Src) dr := &font.Drawer{ Dst: img, Src: image.Black, Face: face, Dot: fixed.Point26_6{}, } dr.Dot.X = (w - a) / 2 dr.Dot.Y = h - b.Max.Y dr.DrawString(text) buf := &bytes.Buffer{} err = png.Encode(buf, img) if err != nil { fmt.Fprintln(os.Stderr, err) os.Exit(1) } file, err := os.Create(`test.png`) if err != nil { fmt.Fprintln(os.Stderr, err) os.Exit(1) } defer file.Close() file.Write(buf.Bytes()) }
追記:
絵文字は出るやつと出ないやつがあるようだ。
↓以下のissueではまだ完全には絵文字は対応できていなさそう。