2016年12月6日火曜日

Macをシングルユーザモードまたは Verbose モードで起動する

  1. Mac をシステム終了します。
  2. 電源ボタンを押して Mac を起動します。
  3. その直後に以下のキーを押します。
  • シングルユーザモードで起動する場合は、「command + S」を押し続けます。
  • Verbose モードで起動する場合は、「command + V」を押し続けます。

画面に白いテキストが表示されたら、シングルユーザモードまたは Verbose モードで起動できています。

2016年10月25日火曜日

CSS3 文字と画像の回転、鏡文字

transform: rotate( 角度 ); /* 2D回転 */

transform: rotateX( 角度 ); /* X軸回転 */

transform: rotateY( 角度 ); /* Y軸回転 */

transform: rotateZ( 角度 ); /* Z軸回転 */

----------------------------------------

transform: rotateY( 180deg );

----------------------------------------

transform:matrix(-1, 0, 0, 1, 0, 0);

----------------------------------------

1番目の数値は、水平方向の縮尺(a)

2番目の数値は、垂直方向の傾斜率(b)

3番目の数値は、水平方向の傾斜率(c)

4番目の数値は、垂直方向の縮尺(d)

5番目の数値は、水平方向の移動距離(e)

6番目の数値は、垂直方向の移動距離(f)

----------------------------------------

古いバージョンを利用しているユーザ向けに、

各ベンダープレフィックスを付けなければならない場合がある。

-----------------------------------

-moz-transform: rotate( 90deg ); /* Firefox用 */

-webkit-transform: rotate( 90deg ); /* Chrome,Safari,新しいOpera用 */

-o-transform: rotate( 90deg ); /* 古いOpera用 */

-ms-transform: rotate( 90deg ); /* IE9用 */

transform: rotate( 90deg ); /* CSS3の書き方 */

-----------------------------------

span等のインライン要素は display:inline-block;としないと

効果が出ない。

2016年8月24日水曜日

[cakehp2] view.ctpの変数をLayouts/default.ctpで参照したい。

cakephpのテーマシステムを使ったサイトを作る場合
できるだけスタイルシートだけでテーマを表現して欲しい
しかし、viewファイルも使わなくては表現できない、
でも、レイアウトファイルまではさわって欲しくない時、
フラグだけで,表示、非表示を切り換えたり等、色々使える。

view.ctp の適当なところに置く
1
2
3
<?php
$this->set('showMenuBar', true);
?>
default.ctp の適当なところに置く
1
2
3
4
5
<body>
 
<?php if ( !empty($showMenuBar) ) : ?>
<!-- etc. etc -->
<?php endif; ?>

2016年8月5日金曜日

cakephp 2.x のテーマ名

テーマを変更するにはコントローラーで
pubulic $theme = 'example';
もしくは
各アクション内で
$this->theme = 'example';
とやれば良いのだが、
テーマ名が小文字の場合でもView/Themed以下に置くディレクトリ名は、
キャメルケースの先頭大文字、example は Exampleになる。

app/webroot/theme以下にテーマ名のディレクトリの下に css js img
ディレクトリを置けるがこの場合のテーマ名は$this->themeの値そのものになる。
小文字なら小文字、キャメルケースならキャメルケース、
example は example、Example は Exampleになる。


2016年7月29日金曜日

[cakephp] 一部のinputに付加されるhiddenフィールドを無効にする

一部の input タイプ(チェックボックス、ラジオボタン)では hidden フィールドが生成されるため、 $this->request->data の中のキーは値を伴わない形式でも 存在する。 これは $options['hiddenField'] = false とすることで無効にできる。 echo $this->Form->checkbox('published', array('hiddenField' => false));

2016年3月22日火曜日

php 5.6にしたcakephp 2.7.10で出たエラーメッセージ


Deprecated: Automatically populating $HTTP_RAW_POST_DATA is deprecated and will be removed in a future version. To avoid this warning set 'always_populate_raw_post_data' to '-1' in php.ini and use the php://input stream instead. in Unknown on line 0

対応

php.iniのalways_populate_raw_post_dataをアンコメントにする
always_populate_raw_post_data = -1

Apacheを再起動する。

2016年3月14日月曜日

Windows+Apache+Mssql+Php


SQL ServerにApacheとPHPをインストールしてSFTPで編集ができるようにする。

OpenSSHのインストール


最新のOpenSSH-Win64.zipをダウンロードして"C:\opt\OpenSSH"に解凍する
パワーシェルを管理者権限で起動する
1
2
PS C:\Windows\system32>
PS C:\Windows\system32> cd c:\opt\OpenSSH
SSHキーを設定します sshdで利用するキーファイルを作成します。
1
PS C:\opt\openssh> ssh-keygen.exe -A
もしくは
1
2
3
4
PS C:\opt\openssh> ssh-keygen.exe -t rsa -f ssh_host_rsa_key
PS C:\opt\openssh> ssh-keygen.exe -t dsa -f ssh_host_dsa_key
PS C:\opt\openssh> ssh-keygen.exe -t ecdsa -f ssh_host_ecdsa_key
PS C:\opt\openssh> ssh-keygen.exe -t ed25519 -f ssh_host_ed25519_key
ファイアウォールの設定 22番ポートを開放します。
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
PS C:\opt\openssh> New-NetFirewallRule -Protocol TCP -LocalPort 22 -Direction Inbound -Action Allow -DisplayName SSH
 
Name                  : {36417373-ef5f-41d8-884f-169ba7a142d5}
DisplayName           : SSH
Description           :
DisplayGroup          :
Group                 :
Enabled               : True
Profile               : Any
Platform              : {}
Direction             : Inbound
Action                : Allow
EdgeTraversalPolicy   : Block
LooseSourceMapping    : False
LocalOnlyMapping      : False
Owner                 :
PrimaryStatus         : OK
Status                : 規則は&#12289;ストアから正常に解析されました。 (65536)
EnforcementStatus     : NotApplicable
PolicyStoreSource     : PersistentStore
PolicyStoreSourceType : Local
sshdのセットアップ sshdセットアップ用のcmdを実行します。
1
PS C:\opt\openssh> setup-ssh-lsa.cmd
リブート OSの再起動を行います。 sshdサービスへの登録 サービスで起動するようにsshdをサービスに登録します。
1
2
PS C:\opt\openssh> sshd install
Service installed successfully
sshdサービスを起動 sshdをサービスから起動します。
1
2
3
PS C:\opt\openssh> net start sshd
SSHD サービスを開始します.
SSHD サービスは正常に開始されました&#12290;
windows起動時に自動でsshdを起動させたい場合は、こちらを実行
1
PS C:\opt\openssh> Set-Service sshd -StartupType Automatic
Macからwindowsにsshで接続
1
2
3
4
5
6
local$ ssh admin@192.168.24.18 -p 22
bsadmin@192.168.24.18's password:
Microsoft Windows [Version 6.3.9600]
(c) 2013 Microsoft Corporation. All rights reserved.
 
admin@SSVR10 C:\Users\admin>
ForkLiftで接続してみる 繋がらない sftpサーバーの設定を忘れていた。 sshd_configを編集する。 これを
1
2
3
4
# override default of no subsystems
#Subsystem sftp /usr/libexec/sftp-server
Subsystem sftp /win32openssh/bin/sftp-server.exe
Subsystem scp /win32openssh/bin/scp.exe
下記のようにする
1
2
3
4
# override default of no subsystems
#Subsystem sftp /usr/libexec/sftp-server
Subsystem sftp C:\opt\OpenSSH\sftp-server.exe
Subsystem scp  C:\opt\OpenSSH\scp.exe

sshd再起動する

Apacheとphp


phpとApacheのVCバージョンは合わせる必要があります。phpがVC11ならApacheもVC11に、phpがVC14だとApacheもVC14とVCが同じでないと正しく動作しない場合があります。
Microsoft Visual C++ 2012 再頒布可能パッケージ (x64)
Apache 2.4.18 Win64とPHP 5.6 VC11 x64 Thread Safeをダウンロードする
httpd-2.4.18-win64-VC11.zipを解凍する。 できたApache24をC:\opt\Apache24に移動
php-5.6.19-Win32-VC11-x64.zipを解凍する。
php-5.6.19-Win32-VC11-x64をC:\opt\phpに変名する。
WindowsのPathにC:\opt\OpenSSH;c:\opt\php;を登録。
php.ini-productionからphp.iniを作製
php.iniを編集
1
2
; extension_dir = "ext"
extension_dir = "c:\opt\php\ext"
に変更 以下の行のセミコロンを外す
1
2
3
4
5
6
7
8
;extension=php_bz2.dll
;extension=php_gd2.dll
;extension=php_mbstring.dll
;extension=php_mysql.dll
;extension=php_mysqli.dll
;extension=php_pdo_mysql.dll
;extension=php_pdo_odbc.dll
;extension=php_pdo_sqlite.dll
以下の行を追加
1
2
extension=php_sqlsrv_56_ts.dll
extension=php_pdo_sqlsrv_56_ts.dll
以下の行のセミコロンを外し値'Asia/Tokyo'を設定
1
2
;date.timezone =
date.timezone = 'Asia/Tokyo'

マイクロソフトのサイトから
SQLSRV32.EXEをダウンロード
もしくは"Microsoft Drivers for PHP for SQL Server"を検索
SQLSRV32.EXEを解凍して
1
2
php_sqlsrv_56_ts.dll
php_pdo_sqlsrv_56_ts.dll
の2つのファイルをc:\opt\php\extに保存します。

Apache httpd.confの編集

ServerRoot、DocumentRoot等を設定します。
1
2
3
4
5
6
<directory />
    Options FollowSymLinks
    AllowOverride All
    # AllowOverride none
    Require all denied
</Directory>
1
2
3
4
5
6
7
DocumentRoot "c:/var/www/htdocs"
<directory "c:/var/www/htdocs">
    Options Indexes FollowSymLinks
    AllowOverride All
    # AllowOverride None
    Require all granted
</Directory>
1
2
3
<ifmodule alias_module>
    ScriptAlias /cgi-bin/ "c:/var/www/cgi-bin/"
</IfModule>
1
2
3
4
5
<directory "c:/var/www/cgi-bin">
    AllowOverride None
    Options None
    Require all granted
</Directory>
以下のコメントを外す
1
#LoadModule rewrite_module modules/mod_rewrite.so
以下の行を追加します
1
2
3
LoadModule php5_module "C:/opt/php/php5apache2_4.dll"
AddHandler application/x-httpd-php .php
PHPIniDir "C:/opt/php"
1
2
3
<ifmodule dir_module>
    DirectoryIndex index.html index.php
</IfModule>

そしてIPアドレスとホスト名を指定します。
ローカルサーバーならこんな感じ。
1
2
Listen 127.0.0.1:80
ServerName localhost:80

次にApacheをWindowsのサービスとして登録します。コマンドプロンプトを管理者権限で起動してから、C:\opt\Apache24\binフォルダに移動します。そして httpd -k install と入力すると登録完了です。
1
2
3
4
5
6
7
8
9
10
11
12
13
14
Microsoft Windows [Version 6.3.9600]
(c) 2013 Microsoft Corporation. All rights reserved.
 
C:\Windows\system32>cd \opt\apache24\bin
 
C:\opt\Apache24\bin>httpd -k install
Installing the 'Apache2.4' service
The 'Apache2.4' service is successfully installed.
Testing httpd.conf....
Errors reported here must be corrected before the service can be started.
AH00526: Syntax error on line 244 of C:/opt/Apache24/conf/httpd.conf:
DocumentRoot must be a directory
 
C:\opt\Apache24\bin>
ファイアーウォールにWebの設定が無ければ下記を実行
1
PS C:\Windows\system32>New-NetFirewallRule -Protocol TCP -LocalPort 80 -Direction Inbound -Action Allow -DisplayName "Apache Web server"

C:\var\www\cakephpにcakephp-2.7.x を解凍
webrootのジャンクションをhtdocsに作る
1
2
3
cd \var\www\htdocs
mklink cake c\:var\www\cakephp\app\webroot
mklink api c:\var\www\cakephp\app-api\webroot
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
C:\var\www\htdocs>dir
 ドライブ C のボリューム ラベルがありません。
 ボリューム シリアル番号は 0488-3DE3 です
 
 C:\var\www\htdocs のディレクトリ
 
2016/03/11  17:47    <dir>          .
2016/03/11  17:47    <dir>          ..
2016/03/11  17:47    <junction>     api [c:\var\www\cakephp\app-api\webroot]
2016/03/11  17:46    <junction>     cake [c:\var\www\cakephp\app\webroot]
2007/06/11  20:53                46 index.html
2016/01/26  18:47             1,169 index.php
2016/01/19  11:39                16 info.php
               3 個のファイル               1,231 バイト
               4 個のディレクトリ  975,303,733,248 バイトの空き領域
 
C:\var\www\htdocs>

1
<?php phpinfo();
htdocsに上記をphpinfo.phpで保存する。

2016年2月4日木曜日

[cakephp 2.x] CakePHPのセッション管理をDBに変更する

まず、"cake_sessions"というテーブルを作るのだが shellが使える環境であれば app/Config/Schema/sessions.php にスクリプトがあるので
1
2
cd app/Console
cake schema create Sessions
とやればテーブルができる。 shellが使えないならばクリエイト文で作る。mysqlならば以下のようになる。
1
2
3
4
5
6
CREATE TABLE IF NOT EXISTS `cake_sessions` (
    `id` varchar(255) NOT NULL DEFAULT '',
    `data` text NOT NULL,
    `expires` int(11) DEFAULT NULL,
    PRIMARY KEY (`id`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8;
テーブルができたならば次はcare.phpの
1
2
3
Configure::write('Session', array(
    'defaults' => 'php'
));
1
2
3
4
5
6
7
8
9
10
11
Configure::write('Session', array(
    'defaults' => 'database',
    'cookie' => 'SID',
    'timeout' => 259200,
    'ini' => Array(
        'session.cookie_lifetime' => 2580000,
        'session.gc_maxlifetime' => 2580000,
        'session.gc_probability' => 1,
        'session.gc_divisor' => 100
    )
));
に変更する。 cakephp-2.7 だと200行目くらいにある。