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 : 規則は&
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 サービスは正常に開始されました&
|
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 | Subsystem sftp /win32openssh/bin/sftp-server .exe
Subsystem scp /win32openssh/bin/scp .exe
|
下記のようにする
1 2 3 4 | 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>
|
htdocsに上記をphpinfo.phpで保存する。