情シス - 雑多メモ

基本は情シス、たまに開発を担当

Codeigniter3 ログ出力設定

Codeigniter3系のログ出力設定の備忘です。

設定ファイル

application/config/config.php
204行目付近(初期値)

$config['log_threshold'] = 0;

$config['log_path'] = '';

$config['log_file_extension'] = '';

$config['log_file_permissions'] = 0644;

$config['log_date_format'] = 'Y-m-d H:i:s';
$config['log_threshold']

ログレベルを指定。初期値は 0 ロギングしない。

0 = Disables logging, Error logging TURNED OFF
1 = Error Messages (including PHP errors)
2 = Debug Messages
3 = Informational Messages
4 = All Messages
$config['log_path']

ログ出力PATHを指定。(例)application/log
出力先ディレクトリはApacheが write できる権限が必要。

$config['log_file_extension']

ログファイル名の拡張子(.log)指定。
指定しない場合はデフォルトの「.php」となる。違和感がある場合は「.log」に変更すればよい。

$config['log_file_permissions']

ログファイルのパーミッション値を指定。セキュリティ要件に合わせて適時変更。

$config['log_date_format']

ログ記録時の日時フォーマット
初期値の'Y-m-d H:i:s'を指定した場合、「2017-07-14 16:29:55」


ログの出力方法

PHPコード内で log_message($level, $message); を呼び出す。
levelは以下のいづれかを指定

error :エラーレベル
debug :デバッグレベル
info  :Infoレベル

デバッグ等でログ出力させたい場合の例

log_message('info', 'hogehogehoge_001');

ログ出力例
INFO - 2017-07-14 16:29:55 --> hogehogehoge_001


余談

php.iniでDefault_Timezoneが指定されていないとdate(date_default_timezone_set)呼び出しに失敗するので忘れずに。

Severity: Warning --> date(): It is not safe to rely on the system's timezone settings. You are *required* to use the date.timezone setting or the date_default_timezone_set() function. In case you used any of those methods and you are still getting this warning, you most likely misspelled the timezone identifier. We selected the timezone 'UTC' for now, but please set date.timezone to select your timezone.

Windows SMBv1の無効化/有効化

WannaCry対応の一環でSMBv1を無効化したものの、某社製のNASがSMBv1を使用していたことが発覚、切り戻した。

その1 SMB1を無効化する場合

Win8.1、Win10】


PowerShellを管理者権限で起動し、以下を実行

①SMBv1がシステムにインストール済みか確認する

 PS C:\> Get-WindowsOptionalFeature -Online -FeatureName SMB1Protocol | Select-Object State

    State
   -----
  Enabled ……「Enabled」MBv1はインストール済み


②SMBv1をシステムから削除する

 PS C:\> Disable-WindowsOptionalFeature -Online -FeatureName SMB1Protocol -NoRestart

 警告: NoRestart が指定されているため、再起動は抑制されています。
 
 Path          :
 Online        : True
 RestartNeeded : True ……「True」ならシステムの再起動が必要。「False」なら不要


③再起動後、①を再実行し確認
 Disable になっていればSMB1はシステムから削除済み



その2 無効化したSMB1を有効化する場合

Win8.1、Win10】


①SMBv1をインストー

 PS C:\> Enable-WindowsOptionalFeature -Online -FeatureName SMB1Protocol

②再起動後、確認(前述の①と同じ)

 PS C:\> Get-WindowsOptionalFeature -Online -FeatureName SMB1Protocol | Select-Object State

PythonからCisco機器にTelnet接続してみました ~その1~

Cisco Aironet に MACアドレスを登録する処理を半自動化してみたく、Pythonを使ってみました。

まずは PythonTelnet接続し、簡単なCiscoコマンドを発行してみます。

実装環境

Pythonのバージョンは 3.6.1を使用


Ciscoのプロンプトは通常下記。

User Access Verification

Password:


ソースコード

import getpass
import telnetlib

HOST = '192.168.xxx.xxx'
password = getpass.getpass()

tn = telnetlib.Telnet(HOST)

if password:
    tn.read_until(b'Password: ')
    tn.write(password.encode('ascii') + b'\n')

# Ciscoコマンド発行
tn.write(b'show clock' + b'\n')
tn.write(b'exit' + b'\n')

# read_until以降のテキストを出力
print(tn.read_all().decode('ascii'))


実行結果は以下の通り。

Password: <手入力>

router>show clock

Load for five secs: 0%/0%; one minute: 0%; five minutes: 0%

Time source is SNTP, 18:55:19.232 JST Tue Jun 27 2017



18:55:19.232 JST Tue Jun 27 2017

router>exit

Windows10 で telnet コマンドを使用するには

Windows10ではtelnetクライアントがデフォルトで無効化されています。
コマンドプロンプトで「telnet」が使用できない)
使用する場合は「Windowsの機能の有効化または無効化」からtelnetクライアントを有効化する必要があります。


[コントロールパネル] → [プログラムと機能] → [Windowsの機能の有効化または無効化]

f:id:komen-tyu:20170627164926p:plain


以下のウィンドウが立ち上がるので、Telnetクライアントにチェックをし「OK」を押下


f:id:komen-tyu:20170627165421p:plain


構成後、Telnetクライアントが使用できるようになります。

C:\>telnet 192.168.xxx.xxx

CodeIgniterのhelperを使ってCSSやJSなどのPATHを生成する

環境:
CSSとJSのディレクトリはCodeigniterのルートディレクトリに配置しています。

codeigniter_root/
 |
 |-application/
 |
 |-css/
 |
 |-js/
 |
 |-system/
 |


コントローラ側の記述例

application/controller/Hoge.php

<?php
class Hoge extends CI_Controller {

    public function __construct() {
        parent::__construct();
    }

    function index(){
        //helperでURL PATHを取得する
        $this->load->helper('url');
        $this->load->view('hoge_view');
    }
}
?>

View側の記述

View側の記述は、jsとのcssファイルの指定を下記のような記述にします。

application/views/hoge_view.php

<link rel="stylesheet" type="text/css" href="<?php echo base_url(); ?>css/style.css" />
<script type="text/javascript" src="<?php echo base_url(); ?>js/jquery.js"></script>


CSSやJSファイルが正常に読み込まれているかはChrome等のDevelopperToolで確認