お知らせ

現在サイトのリニューアル作業中のため、全体的にページの表示が乱れています。

確認環境

Env Ver
OS Ubuntu 20.04.4 LTS
PHP 8.0.29
nginx 1.18.0

手順

php-fpmの導入

sudo apt install php8.0-fpm
sudo sed -i -e 's/;listen.mode = 0660/listen.mode = 0666/' /etc/php/8.0/fpm/pool.d/www.conf
sudo service php8.0-fpm start

nginxの設定

設定ファイルを開きPHPを動かす設定を書く

location ~ ^/.*$ {
  root /path/to/www;
  fastcgi_pass unix:/run/php/php8.0-fpm.sock;
  fastcgi_index index.php;
  include fastcgi_params;
  fastcgi_param  SCRIPT_FILENAME  $document_root$fastcgi_script_name;
}
投稿日:
言語::C#OS::Linux::Ubuntuジャンル::セットアップ

インストール

https://learn.microsoft.com/en-us/dotnet/core/tools/dotnet-install-script

wget https://dot.net/v1/dotnet-install.sh
chmod 755 dotnet-install.sh
./dotnet-install.sh
echo 'export DOTNET_ROOT=$HOME/.dotnet' >> ~/.zshrc
echo 'export PATH=$PATH:$DOTNET_ROOT:$DOTNET_ROOT/tools' >> ~/.zshrc

Hello world

https://learn.microsoft.com/en-us/dotnet/core/tools/dotnet

dotnet new console -o myapp
dotnet build myapp/myapp.csproj
./myapp/bin/Debug/net6.0/myapp
投稿日:
OS::Linux::コマンド言語::Perl

文字列を編集したりするのに大変便利なやつ。sedやawkの代わりに使える。構文はPerlそのものが使える。なにせPerlなので

コマンドラインオプション

  • -e
    • ワンライナーでコードを書くやつ
    • php -rnode -eと同じ
    • Evaluate, Eval, 評価
  • -n
    • 入力の各行に対し処理がかかる
    • $.で行番号、$_で行の文字列を取得できる
    • while (<>)相当の処理
  • -p
    • 入力の各行に対し処理を行い、更にprint $_相当の処理を実行する
  • -l
    • 入力($_)から改行文字を削除し出力に改行を追加する
  • -a
    • 入力の各行に対してawk相当の文字列分割処理を行う(autosplit mode with -n or -p)
    • 分割した文字は$Fに配列として入るので次のようにして取得できる
      • perl -ale 'print "$F[0] - $F[1]'
    • $#Fを指定すると分割した個数が取れる
  • -F/pattern/
    • -aでsplitするパターンを設定する
    • 例えば-F,とするとCSVを分割できる
  • -i[ext]
    • ファイルを編集する
    • 使用例:perl -i -pe 's/aaa/xxx/' foo.txt
    • -i.bakのように指定するとバックアップファイルが作成される
    • このオプションは次に続く文字が解釈されるため、単体で指定する必要がある(-ipeのようには使えない)

構文

変数を指定しない場合、基本的に$_として扱われる

  • print
    • 標準出力に出力
    • 単体ではprint $_と同じ挙動をする
  • $hoge =~ s/foo/bar/
    • fooをbarに置換
  • /(.+)/; print $1
    • キャプチャした内容を出力
  • $_
    • 基本的に書かなくても補完される
    • 例えばecho aaabbc | perl -ne 's/c/d/; print'の出力はaaabbdとなる
    • その他特殊変数:https://perldoc.jp/docs/perl/5.18.1/perlvar.pod
  • END{}
    • このブロックで囲んだコードは実行時の最後に動作する
      • -n, -pを指定した場合、END{}$_が取れないので渡す場合は$x = $_; END{ print $x }のように別の変数に代入する必要がある
    • https://perldoc.jp/docs/perl/5.38.0/perlmod.pod#BEGIN44-32UNITCHECK44-32CHECK44-32INIT32and32END

チートシート

変数置換

一例

ls -l | perl -ale '$F[8] =~ s/\.html//; print "$F[8]";'

特定行を取得

1のところが行数なので、ここを変えることで任意の行の文字列を取れる

perl -ne 'print if $. == 1'

正規表現の名前付きキャプチャ

echo "foo bar" | perl -pe 's/(?<first>.+) (?<last>.+)/$+{first}-$+{last}/'

逆順出力

unshiftで配列の先頭に値を追加し、END{}で最後に出力している

cat <<EOF | perl -ne 'unshift @x, $_; END{ print @x }'
aaa
bbb
ccc
EOF
投稿日:
言語::GolangOS::Linux::CentOS

CentOS 6.6で確認

install

パッケージマネージャーで入れられるならそれに越したことはない

wget https://storage.googleapis.com/golang/go1.9.linux-amd64.tar.gz
tar vzfx go1.9.linux-amd64.tar.gz
sudo mv go /usr/local/

PATHを通す

# goの実行パスとGOPATH(~/go/bin)をPATHに指定する
# GOPATHはglobalなnpm_modulesみたいなもんだと思う
export PATH=$PATH:/usr/local/go/bin:~/go/bin
投稿日:
OS::Linux::CentOS言語::PHPミドルウェア::RDBMS::SQLServer

Laravel + SQLServerとかやるときのメモ

sudo yum install -y epel-release
sudo yum install -y http://rpms.famillecollet.com/enterprise/remi-release-7.rpm
sudo yum update
# これがないと SQLServer への接続でコケる
sudo yum localinstall https://packages.microsoft.com/rhel/7/prod/msodbcsql17-17.4.1.1-1.x86_64.rpm
# Laravel が起動するのに必要な様々ないろいろ
sudo yum install -y php74 php74-php-common php74-php-cli php74-php-mbstring php74-php-gd php74-php-pear php74-php-pdo php74-php-mcrypt php74-php-xmlrpc php74-php-soap php74-php-devel php74-php-intl php74-php-xml php74-php-sqlsrv
# php で呼べるようにしとく
sudo ln -s /usr/bin/php74 /usr/bin/php