償却原価法
定額法の計算式
(額面金額-取得原価) * 当期経過月数 / 取得日~満期日(月数)
例)
額面:200,000
額面100につき99で取得
取得年月日:x1/4/1
償還年月日:x6/3/31
利払日:3,9末
利率:3
仕訳日:x2/3/31の仕訳。
仕訳
満期保有目的債権 400 | 有価証券利息 400
現金 3000 | 有価証券利息 3000
定額法の計算式
(額面金額-取得原価) * 当期経過月数 / 取得日~満期日(月数)
例)
額面:200,000
額面100につき99で取得
取得年月日:x1/4/1
償還年月日:x6/3/31
利払日:3,9末
利率:3
仕訳日:x2/3/31の仕訳。
仕訳
満期保有目的債権 400 | 有価証券利息 400
現金 3000 | 有価証券利息 3000
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 |
<div style="width: 6em; text-align: right;"> <p style="padding: 0;margin: 0;"> <span id="r01"></span> <span id="r02"></span> <span id="r03"></span> <span id="r04"></span> <span id="r05"></span> <span id="r06"></span> <span id="r07"></span> <hr style="padding: 0;margin: 0;"> <span id="r08"></span> <p> </div> <script> (function(document){ var tmp = 0; var sum = 0; for (var i = 1; i <= 7; i++){ tmp = (Math.floor(Math.random() * 10000000)) + 1; document.getElementById("r0" + String(i)).innerHTML = sep(tmp); sum += tmp; } document.getElementById("r08").innerHTML = sep(sum); })(document); function sep(num){ return String(num).replace(/(\d)(?=(\d\d\d)+(?!\d))/g,'$1,'); } </script> |
1 2 3 4 5 6 7 8 9 |
$ymd = [datetime]"2017/3/6" $d = 14 for ($i=1; $i -lt 96; $i++){ if ($ymd.adddays($d * $i) -eq (get-date).toshortdatestring()){ echo "対象日!" read-host } } |
管理者権限でPowerShellを起動
・実行ポリシー確認
Get-ExecutionPolicy
・実行ポリシー
Set-ExecutionPolicy RemoteSigned
Restricted:実行不可
AllSigned:署名付きスクリプトのみ実行可
RemoteSigned:ローカル+ダウンロードした署名付きスクリプトのみ実行可
Unrestricted:すべてのスクリプト実行可
次に、
New-Item registry::HKEY_CLASSES_ROOT\Microsoft.PowerShellScript.1\shell\open\command -value ‘”C:\Windows\system32\WindowsPowerShell\v1.0\powershell.exe” “& ”%1””‘ -force
を実行。
生産管理で使う最低限。
シンボリックについて
apacheのconfの場合、
a2dissite、a2ensite
などの専用スクリプトが用意されている。
通常は、
ln -s 実体 リンク
で、
ln -s /home/okamura/ruby/asagao/public /home/okamura/www/app1
のよう記述する。
実体もリンクも最後にスラッシュを付けない。
リンクはフォルダではないので、最初から存在してはダメ。
リンク削除
unlink /home/okamura/www/app1
・インストールされているかどうか
dpkg -l | grep apache
・インストール
sudo apt update
sudo apt install apache2
・起動
sudo systemctl start apache2
(インストール後、起動+自動起動するようになっている)
・ファイアーウォール(ufw)の設定が必要なら、
sudo ufw allow apache
・名前確認
sudo ufw app list
・バージョン確認
apache2 -v
・パス確認
apachectl -S
・ロードモジュール
apachectl -M
/etc/apache2
の中にあるファイル。
***-enabled内の.confや.loadファイルを読み込む。
***-enabledは***-availableへのシンボリックリンクが基本。
/etc/apache2/apache2.conf
基本設定ファイル
/etc/apache2/mods-enabled/
/etc/apache2/mods-available/
モジュール(a2enmod, a2dismod)
/etc/apache2/sites-enabled/
/etc/apache2/sites-available/
サイト設定(a2ensite, a2dissite)
/etc/apache2/ports.conf
ポート番号
/etc/apache2/conf-enabled/
/etc/apache2/conf-available/
設定(a2enconf, a2disconf)
***
・モジュールのインストール
sudo apt install libapache2-mod-php
sudo apt install php-mysql
・apache(PHP)のエラー確認
sudo vim /var/log/apache2/error.log
・PDO(MySQL)の有効化
php.ini
sudo vim /etc/php/7.4/apache2/php.ini
以下のコメントアウトを外す。
extension=pdo_mysql
・モジュール(PHP)のテスト
必要なモジュールをインストールすると、 設定ファイルは
/etc/apache2/mods-available
に書き込まれる。
書き込まれるのは、
モジュール名.load
モジュール名.conf
の2つ。
使えるモジュール一覧(インストールされたファイルではない)
apt search libapache2-mod
(apt-cache search libapache2-mod)
モジュールのインストール
sudo apt install libapache2-mod-xxx
インストール後、使いたいモジュールは、
sudo /usr/sbin/a2enmod xxx
/etc/apache2/mods-enabled に、mods-available への
シンボリックリンクを作ってくれる。
PHP(libapache2-mod-php)の場合、
/etc/apache2/mods-available
の中に
php7.2.conf
php7.2.load
が書き込まれた。
/etc/apache2/mods-enabled
の中にもavailableへの
php7.2.conf
php7.2.load
2つのリンクが作成された。
無効化
sudo /usr/sbin/a2dismod php7.2
ls /etc/apache2/mods-enabled | grep php
出力なし
有効化
sudo /usr/sbin/a2enmod php7.2
ls /etc/apache2/mods-enabled | grep php
php7.2.conf
php7.2.load
ドキュメントルート変更
sudo vim /etc/apache2/apache2.conf
した場合、パーミッションを変更する。
chown -R ubuntu:ubuntu /var/www/html/
・DefaultRuntimeDir ${APACHE_RUN_DIR}
Base directory for the server run-time files
・PidFile ${APACHE_PID_FILE}
デーモンのプロセス ID をサーバが記録するためのファイル
・Timeout 300
各イベントについて、リクエストを失敗させるまでにサーバが 待つ時間を設定
・KeepAlive On
HTTP の持続的な接続を有効にする
・MaxKeepAliveRequests 100
持続的な接続上で許可されるリクエストの数
・KeepAliveTimeout 5
持続的な接続で次のリクエストが来るまでサーバが待つ時間
・User ${APACHE_RUN_USER}
The userid under which the server will answer requests
・Group ${APACHE_RUN_GROUP}
Group under which the server will answer requests
・HostnameLookups Off
クライアントの IP アドレスの DNS ルックアップを 有効にする
・ErrorLog ${APACHE_LOG_DIR}/error.log
サーバがエラーをログ収集する場所
・LogLevel warn
ErrorLog の冗長性を制御する
・IncludeOptional mods-enabled/*.load
・IncludeOptional mods-enabled/*.conf
Includes other configuration files from within the server configuration files
・Include ports.conf
サーバ設定ファイル中から他の設定ファイルを取り込む
<Directory /> … </Directory>
指定のファイルシステムのディレクトリとサブディレクトリとのみに 適用されるディレクティブを囲む
***
以下Directoryの中について。
・Options FollowSymLinks
Options xxx
ディレクトリに対して使用可能な機能を設定する
xxxの部分については以下。
None
何もなし。
All
MultiViews以外の機能が有効。Optionsを設定しない場合と同じ。
ExecCGI
cgiの実行を許可。
FollowSymLinks
シンボリックリンクをたどれる。
Includes
SSI の使用を許可。
IncludesNOEXEC
SSIを許可。SSIから外部cgiを呼び出すのは禁止。
Indexes
DirectoryIndexで指定したファイルが存在しない場合、一覧を表示する。
MultiViews
コンテントネゴシエーションを有効。
SymLinksIfOwnerMatch
シンボリックリンクのリンク先がシンボリックリンクと同じオーナーのある場合のみたどれる。
・AllowOverride None
AllowOverRide xxx
.htaccessで使用できるディレクティブを指定。
xxxの部分については以下。
None
.htaccess では何も設定できない。
All
.htaccess で設定可能なものは全て有効。
AuthConfig
認証関連のディレクティブの使用を許可。
FileInfo
ドキュメントタイプやドキュメントのメタデータを制御するディレクティブの使用を許可。
Indexes
ディレクトリインデックス関連のディレクティブの使用を許可。
Limit
アクセス制御関連のディレクティブの使用を許可。
Options
Optionsディレクティブの使用を許可。
・Require xxx
xxxの部分については以下。
Require all granted
全てのアクセスを許可。
Require all denied
全てのアクセスを拒否。
Require [not] env env-var [env-var]
指定した環境変数が定義されていれば
(not指定時は環境変数が定義されていなければ)アクセスを許可。
Require method http-method [http-method]
Pメソッドが指定されたものである場合はアクセスを許可。
Require valid-user
有効なユーザーの場合はアクセスを許可。
Require ip xxx.xxxx.xxx.xxx
クライアントのIPアドレスが指定されたものである場合はアクセスを許可。
ここまでDirectoryの中について。
***
・AccessFileName .htaccess
リクエストを処理するとき、サーバはディレクトリに対して分散設定ファイルが有効になっていれば、そのドキュメントへのパス上にある全てのディレクトリから、ここで指定された名前の一覧の中で最初に見つかったファイルをそれぞれ設定ファイルとして読み込みます。
・<FilesMatch> … </FilesMatch>
正規表現にマッチするファイル名に適用される ディレクティブを囲む。
・LogFormat “%h %l %u %t \”%r\” %>s %O” common
LogFormat “フォーマット” “フォーマット名”
正しく処理の流れとして、
sites-available/000-default.conf
がテンプレートなので、それをコピーして編集する。
000-default.conf
が有効になっているので以下で無効化。
sudo a2dissite 000-default.conf
コピーしたファイルを有効化。
sudo a2ensite xxx.conf
<VirtualHost *:80>
ServerAdmin webmaster@localhost
DocumentRoot /var/www/html
ErrorLog ${APACHE_LOG_DIR}/error.log
CustomLog ${APACHE_LOG_DIR}/access.log combined
</VirtualHost>
これが初期設定となっていた。
ちなみに、バーチャルホストの設定はなくてもOKなので、
apache2.conf
の中の、
IncludeOptional sites-enabled/*.conf
をコメントアウトして、apache2.confの中にDocumentRootを記入してもOK。
VirtualHost使う場合、
DocumentRoot,ServerNameが必須。
ここでは使っていないけど、複数のドメインを運用する場合、
ドメイン分のVirtualHostを作成し、ServerNameで指定する。
<VirtualHost *:80>
DocumentRoot /var/www/xxx
ServerName domain.com
ServerAlias www.domain.com
(ServerAliasでアクセスしてきたらServerNameへリダイレクトという感じ)
</VirtualHost>
アクセスの振り分けとしては、
・IPアドレス
・ポート番号
・ドメイン名(ServerName)
で振り分けることができる。
<VirtualHost addr:[port]></VirtualHost>
サブドメインを指定する場合、
<VirtualHost *:80>
DocumentRoot /var/www/xxx
ServerName sub.domain.com
ServerAlias www.sub.domain.com
</VirtualHost>
/etc/apache2/conf-available/security.conf
には、もともと
ServerTokens OS
ServerSignature On
TraceEnable Off
とあった。
もともとのsecurity.confをバックアップし以下を追加。
バージョン情報を隠す(変更)
ServerTokens Prod
ServerSignature Off
トレースメソッドを無効化(そのままでOK)
TraceEnable Off
PHPのバージョンを隠す
Header unset X-Powered-By
ファイルの一覧を表示しない(/etc/apache2/apache2.confを更新)
<Directory /var/www/html>
Options -Indexes
</Directory>
リクエストを制限する(/etc/apache2/apache2.confを更新)
<Directory xxx>
Require method GET POST
</Directory>
他のサイトにframeで埋め込まれないように
Header append X-Frame-Options DENY
ダミーのVirtualHost(先頭に書く)
<VirtualHost *:80>
ServerName dummy
Redirect 404 /
</VirtualHost>
conf-availableの方がsites-availableより先に読み込まれるが、sites-availableにある<VirtualHost>…</VirtualHost>にはServerNameがなかったので、ダミーを作る場合、sites-availableにServerNameが必要。
HTTP_PROXYの書換え禁止
RequestHeader unset Proxy
ブラウザがXSSをブロック
Header set X-XSS-Protection “1; mode=block”
ブラウザがContent-Typeを無視することを禁止
Header set X-Content-Type-Options nosniff
リクエストボディのサイズ指定 (10MB)
LimitRequestBody 10485760
***
設定ファイルのエラーチェック
apachectl configtest
Invalid command ‘Header’, perhaps misspelled or defined by a module not included in the server configuration
というエラーがでたら。
sudo a2enmod headers
sudo /etc/init.d/apache2 restart
・MPM
apachectl -V
worker, preforkがあり基本preforkとなっている。
mod_phpはpreforkなので、workerにしたい場合、PHPはFastCGIで利用。
curl -O “http://xxx.com/[0-20].pdf”
-O は表示ではなくファイル名そのまま。(ちなみにwgetで-Oは別名で保存)
-o は別名で保存する。
-L リダイレクトを追う。
-C – レジューム
レジューム保存
curl -o out.mp4 -L -C – http://
-c ダウンロードを続きから。
-t リトライ回数指定する。(0は無制限)
-O 別名で保存する。
–retry-connrefused 接続拒否無視
wget -c -t 0 –retry-connrefused xxx
以下の3つのファイルを作成し、フォルダに入れてChrome拡張のページにドラッグするだけ。
manifest.json
1 2 3 4 5 6 7 8 |
{ "manifest_version": 2, "name": "ブログ検索", "version": "0.0.1", "browser_action":{ "default_popup": "popup.html" } } |
script.js
1 2 3 4 5 6 7 |
$(document).keydown(function(e){ if(e.keyCode == 13){ chrome.tabs.create({ url: "https://www.google.co.jp/search?hl=ja&as_sitesearch=http://okamurax.com/&q=" + $("#a").val() }); } }); |
popup.html
1 2 3 4 5 6 7 8 9 10 11 12 |
<!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title></title> <script type="text/javascript" src="jquery-3.1.1.min.js"></script> <script type="text/javascript" src="script.js"></script> </head> <body> <input type="text" id="a" /> </body> </html> |