たまにメンテでやるのだが、備忘録、、、
$ su -s /bin/bash <user>
nextcloudはphpのoccコマンドを直接キックして設定することがあるのだが、apache権限でないと実行できない。が、rootからapacheにユーザ切り替えを行う方法をいつも忘れてしまうw
たまにメンテでやるのだが、備忘録、、、
$ su -s /bin/bash <user>
nextcloudはphpのoccコマンドを直接キックして設定することがあるのだが、apache権限でないと実行できない。が、rootからapacheにユーザ切り替えを行う方法をいつも忘れてしまうw
あまりにもクライアント環境が古すぎて19cに繋がらない、、、仕方ないので11gを作る
docker image作成 (express editionで作成)
$ git clone https://github.com/oracle/docker-images.git $ cd docker-images/OracleDatabase/SingleInstance/dockerfiles/11.2.0.2 $ cp <path-to-zip>/oracle-xe-11.2.0-1.0.x86_64.rpm.zip . $ cd .. $ ./buildContainerImage.sh -v 11.2.0.2 -x $ mkdir dump $ chmod 777 dump $ mkdir oradata $ chmod 777 oradata
dockerを起動して、PDBにユーザーを作成し、インポート用のdirオブジェクトを作成しインポートを実行するまで
(dumpが古いのでshift-jisで作る)
services:
db:
image: oracle/database:11.2.0.2-xe
ports:
- 1521:1521
- 5500:5500
volumes:
- ./oradata:/u01/app/oracle/oradata
- ./dump:/u01/app/oracle/dump
environment:
- ORACLE_PWD=<SYSPASS>
$ docker compose up -d $ docker compose exec db bash
11gではoracleの文字セットを指定できないので、一旦削除してdatabaseを再作成する(時間掛かった)
bash$ su oracle bash$ sqlplus / as sysdba SQL> shutdown immediate; SQL> startup restrict mount; SQL> drop database; SQL> quit bash$ createdb.sh -dbchar JA16SJISTILDE bash$ sqlplus / as sysdba SQL> alter user system identified by <SYSPASS> account unlock; SQL> exec execute dbms_metadata_util.load_stylesheets;
“/u01/app/oracle/product/11.2.0/xe/rdbms/xml/xsl”このxlsがxeには存在しないので失敗する。11gの通常版から持ってこれば通るかも、、、
これが通らないとインポートがエラーになる。
SQL> create user <USER> identified by <PASS>; SQL> grant dba to <USER>; SQL> create directory DUMPDIR as '/u01/app/oracle/dump'; SQL> grant read on directory DUMPDIR to <USER>; SQL> grant write on directory DUMPDIR to <USER>; SQL> exit bash$ impdp <USER>/<PASS>@<PDB> remap_schema=<USER>:<USER> DIRECTORY=DUMPDIR dumpfile=DATA.DMP logfile=DATA.log bash$ exit
$ docker compose down
手順を忘れてしまいそうなので、、、メモ
linux用のoracleをダウンロードしておく
https://www.oracle.com/jp/database/technologies/oracle-database-18c/enterprise-edition.html
docker image作成 (standard editionで作成)
$ git clone https://github.com/oracle/docker-images.git $ cd docker-images/OracleDatabase/SingleInstance/dockerfiles/19.3.0 $ cp <path-to-zip>/LINUX.X64_193000_db_home.zip . $ cd .. $ ./buildContainerImage.sh -v 19.3.0 -s $ mkdir dump $ chmod 777 dump $ mkdir oradata $ chmod 777 oradata
dockerを起動して、PDBにユーザーを作成し、インポート用のdirオブジェクトを作成しインポートを実行するまで
(dumpが古いのでshift-jisで作る)
services:
db:
image: oracle/database:19.3.0-se2
ports:
- 1521:1521
- 5500:5500
volumes:
- ./oradata:/opt/oracle/oradata
- ./dump:/opt/oracle/dump
environment:
- ORACLE_PWD=<SYSPASS>
- ORACLE_PDB=<PDB>
- ORACLE_CHARACTERSET=JA16SJISTILDE
$ docker compose up -d $ docker compose exec db bash
bash$ sqlplus / as sysdba
SQL> SELECT NLS_CHARSET_NAME(NLS_CHARSET_ID('CHAR_CS')),NLS_CHARSET_NAME(NLS_CHARSET_ID('NCHAR_CS')) FROM DUAL;
SQL> alter session set container = <PDB>;
SQL> create user <USER> identified by <PASS>;
SQL> grant dba to <USER>;
SQL> create directory DUMPDIR as '/opt/oracle/dump/';
SQL> grant read on directory DUMPDIR to <USER>;
SQL> grant write on directory DUMPDIR to <USER>;
SQL> exit
bash$ impdp <USER>/<PASS>@<PDB> remap_schema=<USER>:<USER> DIRECTORY=DUMPDIR dumpfile=DATA.DMP logfile=DATA.log
bash$ exit
$ docker compose down
データベースの文字セット変換をしたら壊れたw
SQL> SHUTDOWN IMMEDIATE; STARTUP MOUNT; ALTER SYSTEM ENABLE RESTRICTED SESSION; ALTER SYSTEM SET JOB_QUEUE_PROCESSES=0; ALTER SYSTEM SET AQ_TM_PROCESSES=0; ALTER DATABASE OPEN; ALTER DATABASE CHARACTER SET INTERNAL_USE JA16SJISTILDE; SHUTDOWN IMMEDIATE; STARTUP; Total System Global Area 1610609928 bytes Fixed Size 9135368 bytes Variable Size 452984832 bytes Database Buffers 1140850688 bytes Redo Buffers 7639040 bytes SQL> SELECT VALUE FROM NLS_DATABASE_PARAMETERS WHERE PARAMETER='NLS_CHARACTERSET'; SQL> VALUE -------------------------------------------------------------------------------- JA16SJISTILDE
serverReadyActionで取れたurlをedgeに引き渡す方法が無いか、、、?
{
"version": "0.2.0",
"configurations": [
{
"name": ".NET Core Launch (console)",
"type": "coreclr",
"request": "launch",
"preLaunchTask": "build",
"program": "${workspaceFolder}/MyMVC/bin/Debug/net6.0/MyMVC.dll",
"args": [],
"cwd": "${workspaceFolder}/MyMVC",
"console": "internalConsole",
"stopAtEntry": false,
"serverReadyAction": {
"action": "startDebugging",
"name": ".NET Core Debug MyMVC in Edge",
"pattern": "\\bNow listening on:\\s+(http?://\\S+)",
},
"env": {
"ASPNETCORE_ENVIRONMENT": "Development"
},
"sourceFileMap": {
"/Views": "${workspaceFolder}/MyMVC/Views"
},
},
{
"name": ".NET Core Debug MyMVC in Edge",
"type": "edge",
"request": "launch",
"timeout": 30000,
"port": 9222,
"disableNetworkCache": true,
"url": "https://localhost:5001",
"webRoot": "${workspaceFolder}",
}
]
}
素直にこれか、、、
"action": "debugWithChrome",
最近、Ubuntuの立ち上がりが異常に遅い
解決策がわからなかったので再インストールすることに。管理者モードでPowerShellを起動して古い方を登録解除してアプリからアンインストール
$ wsl --list $ wsl --unregister Ubuntu20.04 $ wsl --set-default-version 1 $ wsl --install Ubuntu $ wsl --update
しょっちゅうやる作業でもないので、備忘録
$ sudo parted -s -a optimal /dev/sda -- mkpart primary ntfs 0% 100% $ mkfs.ntfs -Q -L Volume /dev/sdb1
やり方を忘れてしまっていたので備忘録
自作パッケージの準備と作成
<PropertyGroup> <PackageId>OreOre</PackageId> <Version>1.0.0</Version> <Authors>my_name</Authors> <Company>my_company</Company> </PropertyGroup>
$ dotnet pack -c Release
これで”OreOre-1.0.0.nupkg”が出来上がる。
自作パッケージのローカルな置き場を追加する。nuget.configを直接編集するかコマンドラインにて:
$ dotnet nuget add source <dir-for-packages> -n <source-name> $ dotnet nuget list source
後はここに自作のパッケージを放り込めばいい。
自作パッケージを別のプロジェクトから参照するには:
$ dotnet add package OreOre $ dotnet restore
これで参照できるようになる。
今更ながらVSCodeの汎用性の高さに驚いているのだが
WindowsのVSCodeからSSH-RemoteでLinux上のApache+PHPのデバッグって出来るんだろうか?と試してみる。実際の所、基本的なデバッグならいとも簡単に出来てしまうのだが、SSHで入っているので/homeのdirをApacheからアクセス可能にしようとしてドハマりする。このやり方は無理かな、、、
取り敢えずphp xdebug3の設定は:
xdebug.mode=debug xdebug.start_with_request=yes
これでVSCode側でデバッガを起動してListen状態にしブラウザで当該のページをアクセスするとデバッグが開始された。
VSCodeに死角なしw
どういう訳か上手くいかない
エラーログを見ていると、ビルドしたdllへの参照パスが若干おかしい。通常は ”xxx/bin/Debug/net6.0/target.dll”のはずが”xxx/bin/Debug/net6.0/ref/target.dll”と余計な”ref”が入っている。よくわからないが英語のサイトでは下記をprojに入れてみろ:
<PropertyGroup>
<ProduceReferenceAssemblyInOutDir>true</ProduceReferenceAssemblyInOutDir>
</PropertyGroup>
とあったので試してみたら上手く行った。
何の事やら、、、w
dotnetのコマンドをついつい忘れてしまうので、空のソリューションから新規プロジェクトの作成と追加までを下記に:
$ dotnet new sln $ dotnet new classlib -f net6.0 -o someproj $ dotnet sln add someproj/someproj.csproj $ dotnet new mstest -o sometest $ cd sometest $ dotnet add reference ../someproj/someproj.csproj $ cd .. $ dotnet sln add sometest/sometest.csproj $ dotnet build $ cd sometest $ dotnet test
Powered by WordPress