- Visual Studio 2015: v140
- Visual Studio 2017: v141
- Visual Studio 2019: v142
- Visual Studio 2022: v143
2024年5月11日土曜日
メモ:Visual StudioとMicrosoft C++ (MSVC) コンパイラ ツールのバージョンの対応
log4php
- log4phpを試した備忘録です
- Apache log4php - Welcome - Apache log4php の[Download]より apache-log4php-2.3.0-src.zip をダウンロード
- 解凍先は任意、今回は C:\DATA01\TempDel の下に解凍
- C:\DATA01\TempDel\log4php_config.xmlを作成
<?xml version="1.0" encoding="UTF-8"?>
<configuration xmlns="http://logging.apache.org/log4php/">
<appender name="appenderfile" class="LoggerAppenderFile">
<param name="file" value="C:\DATA01\TempDel\application.log" />
<param name="append" value="true" />
<layout class="LoggerLayoutPattern">
<param name="conversionPattern" value="%date{Y-m-d H:i:s.u} %logger %-5level %sessionid %file(%line) %msg%n" />
</layout>
</appender>
<root>
<appender_ref ref="appenderfile" />
</root>
</configuration>
|
- C:\DATA01\TempDel\log4php_test.phpを作成
<?php
// ログの時間を日本時間にするため
date_default_timezone_set("Asia/Tokyo");
require_once(dirname(__FILE__) . "/apache-log4php-2.3.0/src/main/php/Logger.php");
// 設定ファイルの読み込み
Logger::configure(dirname(__FILE__) . "/log4php_config.xml");
// ロガー名:任意
$logger = Logger::getLogger("myLogger");
// 以下ログの出力
$logger->debug("メッセージ debug");
$logger->info("メッセージ info");
$logger->warn("メッセージ warning");
$logger->error("メッセージ error");
$logger->fatal("メッセージ fatal");
?>
|
- ブラウザからlog4php_test.phpにアクセスすると、C:\DATA01\TempDel\application.log に以下のようにログが出力される
2024-05-10 20:11:04.171 myLogger DEBUG C:\DATA01\TempDel\log4php_test.php(14) メッセージ debug 2024-05-10 20:11:04.173 myLogger INFO C:\DATA01\TempDel\log4php_test.php(15) メッセージ info 2024-05-10 20:11:04.173 myLogger WARN C:\DATA01\TempDel\log4php_test.php(16) メッセージ warning 2024-05-10 20:11:04.173 myLogger ERROR C:\DATA01\TempDel\log4php_test.php(17) メッセージ error 2024-05-10 20:11:04.173 myLogger FATAL C:\DATA01\TempDel\log4php_test.php(18) メッセージ fatal |
- サイズでローテーションさせる場合は、log4php_config.xmlを以下のように記載
<?xml version="1.0" encoding="UTF-8"?>
<configuration xmlns="http://logging.apache.org/log4php/">
<appender name="rollingFile" class="LoggerAppenderRollingFile">
<param name="file" value="C:\DATA01\TempDel\application.log" />
<param name="append" value="true" />
<param name="maxFileSize" value="10MB" />
<param name="maxBackupIndex" value="10" />
<param name="compress" value="false" />
<layout class="LoggerLayoutPattern">
<param name="conversionPattern" value="%date{Y-m-d H:i:s.u} %logger %-5level %sessionid %file(%line) %msg%n" />
</layout>
</appender>
<root>
<appender_ref ref="rollingFile" />
</root>
</configuration>
|
- 日付でローテーションさせる場合は、log4php_config.xmlを以下のように記載
<?xml version="1.0" encoding="UTF-8"?>
<configuration xmlns="http://logging.apache.org/log4php/">
<appender name="dailyFile" class="LoggerAppenderDailyFile">
<param name="file" value="C:\DATA01\TempDel\application_%s.log" />
<param name="append" value="true" />
<param name="datePattern" value="Y-m-d" />
<layout class="LoggerLayoutPattern">
<param name="conversionPattern" value="%date{Y-m-d H:i:s.u} %logger %-5level %sessionid %file(%line) %msg%n" />
</layout>
</appender>
<root>
<appender_ref ref="dailyFile" />
</root>
</configuration>
|
- application_2024-05-10.log というファイル名でログが出力される
日付のフォーマットは datePattern で指定できる
月ごとにする場合は Y-m など - 日付でログ出力しつつ、ブラウザにも表示する場合は、log4php_config.xmlを以下のように記載
<?xml version="1.0" encoding="UTF-8"?>
<configuration xmlns="http://logging.apache.org/log4php/">
<appender name="dailyFile" class="LoggerAppenderDailyFile">
<param name="file" value="C:\DATA01\TempDel\application_%s.log" />
<param name="append" value="true" />
<param name="datePattern" value="Y-m-d" />
<layout class="LoggerLayoutPattern">
<param name="conversionPattern" value="%date{Y-m-d H:i:s.u} %logger %-5level %sessionid %file(%line) %msg%n" />
</layout>
</appender>
<appender name="echo" class="LoggerAppenderEcho">
<param name="htmlLineBreaks" value="true" />
<layout class="LoggerLayoutSimple" />
</appender>
<root>
<appender_ref ref="dailyFile" />
<appender_ref ref="echo" />
</root>
</configuration>
|
- Appenderの種類は Apache log4php - Appenders - Apache log4php に記載されている
2024年5月6日月曜日
Apache バージョンアップ 2024
はじめに
以下のソフトをバージョンアップします
| バージョンアップ前 | バージョンアップ後 |
|---|---|
| Apache 2.2.19 (Win32) | Apache 2.4.59 (Win64) |
| PHP 5.3.5 (Win32) | PHP 8.3.6 (Win64) |
| PukiWiki 1.3.5 (euc-jp) | PukiWiki 1.5.4 (utf-8) |
| (新規) | JDK 22.0.1 (Win64) |
| (新規) | Tomcat 10.1.23 (Win64) |
| Apache Subversion 1.8.0 (Win32) | Apache Subversion 1.14.3 (Win64) |
Apache 2.4.59
- Apache Loungeのサイトから httpd-2.4.59-240404-win64-VS17.zip をダウロードします
- 解凍してフォルダ名を「Apache2.4.59」として「C:\APPL01\Apache Software Foundation\」にコピーします
- 配置後のフォルダパス : C:\APPL01\Apache Software Foundation\Apache2.4.59
- conf/httpd.confを編集します(日本語を含むパスがある場合はutf-8でファイルを保存します)
| 修正前 | 修正後 | |
|---|---|---|
| 修正 | Define SRVROOT "c:/Apache24" | Define SRVROOT "C:/APPL01/Apache Software Foundation/Apache2.4.59" |
| 修正 | ServerAdmin admin@example.com | ServerAdmin <自分のメールアドレス> |
| 追加 | ServerName MYHOSTNAME:80 | |
| 修正 | <IfModule dir_module> DirectoryIndex index.html </IfModule> | <IfModule dir_module> DirectoryIndex index.html index.php index.jsp </IfModule> |
| 追加 | AddType image/x-icon .ico |
- Apache2.2からApache2.4でのhttpd.confの書き方の違い
| Apache 2.2 | Apache 2.4 |
|---|---|
| Alias /MyPub01/ "C:/DATA01/MyPagePub01/" | Alias /MyPub01/ "C:/DATA01/MyPagePub01/" <Directory "C:/DATA01/MyPagePub01"> AllowOverride None Require all granted </Directory> ※Aliasだけ指定してDirectoryタグの設定がない場合 Forbidden You don't have permission to access this resource. となる |
| <Directory "C:/xxx/~"> Order allow,deny Allow from all </Directory> | <Directory "C:/xxx/~"> Require all granted </Directory> すべて許可する |
| すべて拒否する場合は Require all denied | |
| <Directory "C:/xxx/~"> Order deny,allow Deny from all Allow from 192.168.11.8 HOSTNAME1 </Directory> | <Directory "C:/xxx/~"> Require ip 192.168.11.8 Require host HOSTNAME1 </Directory> IP指定、ホスト名指定の許可 |
| ローカルホストからのアクセスを許可する場合は Require local |
参考サイト
Apache | Requireディレクティブ:アクセスの許可や拒否などのアクセス制限を行う(Apache2.4以降)
- ログローテーションの設定(conf/httpd.conf)
| 修正前 | 修正後 | |
|---|---|---|
| 修正 | ErrorLog "logs/error.log" | ErrorLog "| bin/rotatelogs.exe logs/error_%Y%m.log 86400" ※rotatelogsは拡張子まで記載が必要 |
| 修正 | CustomLog "logs/access.log" common | CustomLog "| bin/rotatelogs.exe logs/access_%Y%m.log 86400" common ※rotatelogsは拡張子まで記載が必要 |
- 古いサービスの削除
- コマンドプロンプトを管理者として開き、以下を実行します
>cd C:\APPL01\Apache Software Foundation\Apache2.2\bin >httpd -k uninstall Removing the Apache2.2 service The Apache2.2 service has been removed successfully. |
- サービスの登録
>cd C:\APPL01\Apache Software Foundation\Apache2.4.59\bin >httpd -k install -n "Apache2.4.59" Installing the 'Apache2.4.59' service The 'Apache2.4.59' service is successfully installed. Testing httpd.conf.... Errors reported here must be corrected before the service can be started. |
- サービス登録は成功、起動は失敗したが、コントロールパネルのサービスから起動できたのでOKとします
PHP 8.3.6
- PHP For Windows: Binaries and sources Releasesで「VS16 x64 Thread Safe (2024-Apr-10 15:13:46)」「Zip」を選び、php-8.3.6-Win32-vs16-x64.zip をダウンロードします
- 解凍してC:\APPL01\php\に配置します
- 配置後のフォルダパス : C:\APPL01\php\php-8.3.6-Win32-vs16-x64\
- php.ini-productionをphp.iniとコピーして編集します
| 修正前 | 修正後 | |
|---|---|---|
| 修正 | doc_root = | doc_root = "C:/APPL01/Apache Software Foundation/Apache2.4.59/htdocs" |
| 追加 | extension_dir = "C:/APPL01/php/php-8.3.6-Win32-vs16-x64/ext" | |
| 修正 | ;extension=mbstring | extension=mbstring |
| 修正 | ;extension=odbc | extension=odbc |
| 修正 | ;sendmail_from = me@example.com | sendmail_from = <自分のメールアドレス> |
| 修正 | ;session.save_path = "/tmp" | session.save_path = "C:/DATA01/TempDel" |
| 修正 | ;mbstring.language = Japanese | mbstring.language = Japanese |
| 修正 | ;mbstring.internal_encoding = | mbstring.internal_encoding = UTF-8 |
| 修正 | ;mbstring.http_input = | mbstring.http_input = pass |
| 修正 | ;mbstring.http_output = | mbstring.http_output = pass |
| 修正 | ;mbstring.encoding_translation = Off | mbstring.encoding_translation = Off |
| 修正 | ;mbstring.detect_order = auto | mbstring.detect_order = UTF-8,SJIS,EUC-JP,JIS,ASCII |
| 修正 | ;mbstring.substitute_character = none | mbstring.substitute_character = none |
| 修正 | ;mbstring.strict_detection = Off | mbstring.strict_detection = Off |
- Apacheのhttpd.confを編集します
| 修正前 | 修正後 | |
|---|---|---|
| 追加 | PHPIniDir "C:/APPL01/php/php-8.3.6-Win32-vs16-x64"
LoadModule php_module C:/APPL01/php/php-8.3.6-Win32-vs16-x64/php8apache2_4.dll |
|
| 追加 | AddType application/x-httpd-php .php |
- 動作確認をします
C:\APPL01\Apache Software Foundation\Apache2.4.59\htdocs\phpinfo.php を作成します
<?php
phpinfo();
?>
|
- http://localhost/phpinfo.php にアクセスしてPHP情報が表示されればOKです
Microsoft Access データベース エンジン 2016 再頒布可能コンポーネント
- phpでMS-ACCESSにアクセスするアプリがあるため、64bit版をインストールします
- Download Microsoft Access データベース エンジン 2016 再頒布可能コンポーネント from Official Microsoft Download Center から accessdatabaseengine_X64.exe をダウンロードします
- accessdatabaseengine_X64.exeを7-Zipで解凍し、以下のコマンドでインストールします
>cd C:\DATA01\TempDel\accessdatabaseengine_X64 >aceredist.msi /passive |
参考サイト
Microsoft Acces Database Engine 2016 の32bit/64bit版の共存方法 #access – Qiita
PHPアプリの修正
- Shift_JIS→UTF-8に変更、PHP 5.3.5→PHP 8.3.6に変更したことによる修正をします
- Shift_JIS→UTF-8に関する変更
| 修正前 | 修正後 |
|---|---|
| ファイルの文字コード:Shift_JIS | ファイルの文字コード:UTF-8(BOM無し)
以下のソフトを使って一括変換します FileCode Checker のダウンロード・使い方 - フリーソフト100 |
| <meta http-equiv="Content-Type" content="text/html; charset=Shift_JIS"> | <meta charset="UTF-8"> |
| odbc_exec($conn_id,$wkSQL); | odbc_exec($conn_id, mb_convert_encoding($wkSQL ,"SJIS-win", "UTF-8"));
MS-ACCESSへSQL実行時にSQLをUTF-8→Shift_JISに変更 |
| odbc_result($re01, 2) | mb_convert_encoding(odbc_result($re01, 2) , "UTF-8", "SJIS-win")
MS-ACCESSから結果取得時に値をShift_JIS→UTF-8に変更 |
- PHP 5.3.5→PHP 8.3.6に関する変更
| 修正前 | 修正後 |
|---|---|
| <? | <?php
※phpもつけないと認識されなかった |
| session_is_registered($key) | isset($_SESSION[$key]) |
| session_register($key) | $_SESSION[$key] = "value";
※セッション変数名のみ登録したい場合は、記載しない |
| session_unregister($key) | unset($_SESSION[$key]) |
| $HTTP_SESSION_VARS | $_SESSION |
| $HTTP_POST_VARS | $_POST |
| $HTTP_GET_VARS | $_GET
※パラメータがないことが想定される場合は、以下のように記載 $p_sheet_name = isset($_GET["SheetName"]) ? $_GET["SheetName"] : ""; |
| コンストラクタ
class test01 { function test01() { |
コンストラクタは「__construct()」にする
class test01 { function __construct() { |
| ereg_replace | mb_ereg_replace |
- その他の変更
| 修正前 | 修正後 |
|---|---|
| define("_DBName","ODBCのDNS名"); | define("_DBName", "Driver={Microsoft Access Driver (*.mdb, *.accdb)};Dbq=C:/DATA01/MsAccess/test.mdb");
※直接Accessファイルを指定するように変更 |
PukiWiki 1.5.4
- PukiWiki/Download/1.5.4 - PukiWiki-official から pukiwiki-1.5.4_utf8.zip をダウンロードします
- 解凍して「C:\DATA01\」の下に配置します
配置後のフォルダパス : C:\DATA01\pukiwiki-1.5.4_utf8\ - pukiwiki.ini.phpを修正します
| 修正前 | 修正後 | |
|---|---|---|
| 修正 | $nowikiname = 0; | $nowikiname = 1;
自動リンクさせない |
| 修正 | $adminpass = '{x-php-md5}!'; | $adminpass = '{x-php-md5}098f6bcd4621d373cade4e832627b4f6';
※{x-php-md5}の後の文字列は <?php echo md5("パスワード"); ?>の結果文字列を記載します |
- Apacheのhttpd.confを修正します
| 修正前 | 修正後 | |
|---|---|---|
| 追加 | Alias /my-pukiwiki/ "C:/DATA01/pukiwiki-1.5.4_utf8/"
<Directory "C:/DATA01/pukiwiki-1.5.4_utf8"> Options Indexes FollowSymLinks DirectoryIndex index.php AllowOverride All Require all granted </Directory> |
- skin/pukiwiki.cssを修正します
| 修正前 | 修正後 | 備考 |
|---|---|---|
| .style_table {
padding:0; border:0; margin:auto; text-align:left; color:inherit; background-color:#ccd5dd; } |
.style_table {
padding:0; border:0; margin:1em auto 1em 0; text-align:left; color:inherit; background-color:#ccd5dd; } |
表を左寄せ |
| .style_th {
padding:5px; margin:1px; text-align:center; color:inherit; background-color:#EEEEEE; } |
.style_th {
padding:5px; margin:1px; text-align:center; color:inherit; background-color:#EEEEEE; vertical-align:top; } |
セル内文字を上寄せ |
| .style_td {
padding:5px; margin:1px; color:inherit; background-color:#EEF5FF; } |
.style_td {
padding:5px; margin:1px; color:inherit; background-color:#EEF5FF; vertical-align:top; } |
セル内文字を上寄せ |
- wikiフォルダの下のファイルを移行をします
wikiフォルダ下には初期インストール時のファイルも含まれているため必要なファイルのみ移行します
移行時にWiki名についている[ ]は削除したファイル名に変更します
| 移行元 | 移行先 | |
|---|---|---|
| ファイルの文字コード | ecu-jp | UTF-8 |
| 改行コード | \n | \n |
| wikiフォルダ下のファイル名 | 5B5B4C696E7578C0DFC4EA5D5D.txt
{"[[Linux設定]]"をHEXエンコード}.txt ・・・ |
4C696E7578E8A8ADE5AE9A.txt
{"Linux設定"をHEXエンコード}.txt ・・・ |
- 移行に用いたC#プログラム
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.IO;
namespace PukiwikiConversionConsole
{
class Program
{
const string BASE_PATH = @"C:\DATA01\TempDel\";
const string FROM_FILE_PATH = BASE_PATH + @"wiki_From\";
const string TO_FILE_PATH = BASE_PATH + @"wiki_To\";
/// <summary>
/// ベースパス(BASE_PATH)の下の
/// wiki_From配下のファイルをUTF-8変換、ファイル名変更して
/// wiki_Toの配下に保存する
/// </summary>
/// <param name="args"></param>
static void Main(string[] args)
{
if (!Directory.Exists(FROM_FILE_PATH))
{
Console.WriteLine(FROM_FILE_PATH + " に変換元のwikiファイルを配置してください。");
Console.ReadKey();
return;
}
if (!Directory.Exists(TO_FILE_PATH))
{
Directory.CreateDirectory(TO_FILE_PATH);
}
StreamWriter swLog = new System.IO.StreamWriter(
BASE_PATH + "Log-" + DateTime.Now.ToString("yyyyMMdd-HHmmss") + ".txt",
false, new System.Text.UTF8Encoding(false));
swLog.WriteLine(
"変換元ファイル名"
+ "\t"
+ "更新日時"
+ "\t"
+ "変換元Wiki名"
+ "\t"
+ "変換後Wiki名"
+ "\t"
+ "変換後ファイル名"
);
foreach (string fromFileFullName in Directory.GetFiles(FROM_FILE_PATH, "*.txt"))
{
ConvertFile(swLog, fromFileFullName);
}
swLog.Close();
Console.WriteLine("完了");
Console.ReadKey();
}
private static void ConvertFile(StreamWriter swLog, string fromFileFullName)
{
WikiFile wikiFile = new WikiFile(fromFileFullName);
// 元ファイル読み込み
List<string> contents = ReadFromFile(wikiFile.FromFileFullName, Encoding.GetEncoding("euc-jp"));
// UTF-8の\nで書き込む
StreamWriter swTo = new System.IO.StreamWriter(
wikiFile.ToFileFullName,
false, new System.Text.UTF8Encoding(false));
foreach (string line in contents) swTo.Write(line + "\n");
swTo.Close();
// タイムスタンプを元ファイルに合わせる
//作成日時の設定
System.IO.File.SetCreationTime(wikiFile.ToFileFullName, wikiFile.FiFrom.CreationTime);
//更新日時の設定
System.IO.File.SetLastWriteTime(wikiFile.ToFileFullName, wikiFile.FiFrom.LastWriteTime);
//アクセス日時の設定
System.IO.File.SetLastAccessTime(wikiFile.ToFileFullName, wikiFile.FiFrom.LastAccessTime);
// ログの書き込み
swLog.WriteLine(
wikiFile.FromFileName
+ "\t"
+ wikiFile.FiFrom.LastWriteTime.ToString("yyyy/MM/dd HH:mm:ss")
+ "\t"
+ wikiFile.FromWikiName
+ "\t"
+ wikiFile.ToWikiName
+ "\t"
+ wikiFile.ToFileName
);
}
private static List<string> ReadFromFile(string filePath, Encoding encode)
{
string line = "";
List<string> ret = new List<string>();
using (StreamReader sr = new StreamReader(filePath, encode))
{
while ((line = sr.ReadLine()) != null)
{
ret.Add(line);
}
}
return ret;
}
/// <summary>
/// 変換前のファイル名、変換後のファイル名を格納するクラス
/// </summary>
class WikiFile
{
private string _fromFileFullName;
private string _fromFileName;
private string _fromWikiName;
private string _toFileName;
private string _toWikiName;
private string _toFileFullName;
FileInfo _fiFrom;
public WikiFile(string fromFileFullName)
{
this._fromFileFullName = fromFileFullName;
this._fiFrom = new FileInfo(fromFileFullName);
// 変換元ファイル名と拡張子
this._fromFileName = this._fiFrom.Name;
string ext = this._fromFileName.Substring(this._fromFileName.LastIndexOf("."));
// 変換元Wiki名(拡張子なしでデコード後の変換元ファイル名)
this._fromWikiName = HexToBin(Encoding.GetEncoding("euc-jp"), this._fromFileName.Substring(0, this._fromFileName.LastIndexOf(".")));
// 変換後Wiki名(ファイル名内の [] は削除する)
this._toWikiName = this._fromWikiName.Replace("[", "").Replace("]", "");
// 変換後ファイル名(エンコード後の変換後ファイル名+拡張子)
this._toFileName = BinToHex(new System.Text.UTF8Encoding(false), this._toWikiName) + ext;
// 変換後ファイル名フルパス
this._toFileFullName = TO_FILE_PATH + this._toFileName;
}
public string FromFileFullName { get { return this._fromFileFullName; } }
public string FromFileName { get { return this._fromFileName; } }
public string FromWikiName { get { return this._fromWikiName; } }
public string ToFileName { get { return this._toFileName; } }
public string ToWikiName { get { return this._toWikiName; } }
public string ToFileFullName { get { return this._toFileFullName; } }
public FileInfo FiFrom { get { return this._fiFrom; } }
// How to convert this PHP function to C#? - Stack Overflow
// https://stackoverflow.com/questions/35336150/how-to-convert-this-php-function-to-c
private static string BinToHex(Encoding enc, string bin)
{
byte[] bytes = enc.GetBytes(bin);
string hexString = HexStringFromBytes(bytes);
return hexString.ToUpper();
}
private static string HexStringFromBytes(byte[] bytes)
{
var sb = new StringBuilder();
foreach (byte b in bytes)
{
var hex = b.ToString("x2");
sb.Append(hex);
}
return sb.ToString();
}
// php hextobin not works exactly in c# - Stack Overflow
// https://stackoverflow.com/questions/60095429/php-hextobin-not-works-exactly-in-c-sharp
private static string HexToBin(Encoding enc, string hex)
{
return enc.GetString(HexToBinByteArray(hex));
}
private static byte[] HexToBinByteArray(string hex)
{
int NumberChars = hex.Length;
byte[] bytes = new byte[NumberChars / 2];
for (int i = 0; i < NumberChars; i += 2)
bytes[i / 2] = Convert.ToByte(hex.Substring(i, 2), 16);
return bytes;
}
}
}
}
|
JDK 22.0.1
- JDK Builds from OracleよりOpenJDK JDK 22.0.1 GA Releaseに遷移し、openjdk-22.0.1_windows-x64_bin.zip をダウンロードします
- openjdk-22.0.1_windows-x64_bin.zip を解凍し、フォルダ名を「openjdk-22.0.1_windows-x64_bin」に変更後に、「C:\APPL01\Ap_Java\」にコピーします
配置後のフォルダパス : C:\APPL01\Ap_Java\openjdk-22.0.1_windows-x64_bin\ - バージョンを確認します
>cd C:\APPL01\Ap_Java\openjdk-22.0.1_windows-x64_bin\bin >java --version openjdk 22.0.1 2024-04-16 OpenJDK Runtime Environment (build 22.0.1+8-16) OpenJDK 64-Bit Server VM (build 22.0.1+8-16, mixed mode, sharing) |
- 通常は環境変数を設定しますが、今回は実施しません
| 変数名 | 設定内容 |
|---|---|
| JAVA_HOME | C:\APPL01\Ap_Java\openjdk-22.0.1_windows-x64_bin |
| PATH | %JAVA_HOME%\bin;~以降は元の値~ |
参考サイト
2022年のJavaまるわかり!最新バージョンからJavaを取り巻く環境まで | gihyo.jp
Tomcat 10.1.23
- Apache Tomcat® - Welcome!よりApache Tomcat® - Apache Tomcat 10 Software Downloadsに遷移して、apache-tomcat-10.1.23-windows-x64.zip をダウンロードします
- apache-tomcat-10.1.23-windows-x64.zipを解凍し、フォルダ名を「apache-tomcat-10.1.23-windows-x64」に変更後に、「C:\APPL01\Ap_Java\」にコピーします
配置後のフォルダパス : C:\APPL01\Ap_Java\apache-tomcat-10.1.23-windows-x64\ - C:\APPL01\Ap_Java\apache-tomcat-10.1.23-windows-x64\bin\setenv.batを作成し以下を記載します
set JAVA_HOME="C:\APPL01\Ap_Java\openjdk-22.0.1_windows-x64_bin" |
- C:\APPL01\Ap_Java\apache-tomcat-10.1.23-windows-x64\bin\startup.batを実行します
- 以下にアクセスして表示されることを確認します
http://localhost:8080/
http://localhost:8080/examples/
Apacheとの連携
- Tomcatのconf/server.xmlを開いて以下を追加します
(デフォルトではコメントされているので新たに追加)
<Connector protocol="AJP/1.3"
address="::1"
secretRequired="false"
port="8009"
redirectPort="8443"
maxParameterCount="1000"
/>
|
- Apacheのconf/httpd.confを編集します
| 修正前 | 修正後 | |
|---|---|---|
| 修正 | #LoadModule proxy_module modules/mod_proxy.so
#LoadModule proxy_ajp_module modules/mod_proxy_ajp.so |
LoadModule proxy_module modules/mod_proxy.so
LoadModule proxy_ajp_module modules/mod_proxy_ajp.so |
| 修正 | #LoadModule proxy_wstunnel_module modules/mod_proxy_wstunnel.so | LoadModule proxy_wstunnel_module modules/mod_proxy_wstunnel.so |
| 追加 | ProxyPass /examples/websocket/ ws://localhost:8080/examples/websocket/
ProxyPassReverse /examples/websocket/ ws://localhost:8080/examples/websocket/ ProxyPass /examples/ ajp://localhost:8009/examples/ #ProxyPassReverse /examples/ ajp://localhost:8009/examples/ |
- Apache、Tomcatの再起動します
- 以下にアクセスします
http://localhost/examples/
Apache Subversion 1.14.3
- GitHub - nono303/win-svn: apache subversion windows builds with httpd modules and java hl から「Download ZIP」を選択して、モジュールをダウンロードします
今回ダウンロードしたファイルはバージョン1.14.3です - ダウンロードしたファイル win-svn-master.zip を解凍します
- vs17\x64\(depsフォルダ下も含む) の全dllを「C:\APPL01\Apache Software Foundation\Apache2.4.59\bin」の下にコピーします
同名のファイルがある場合は上書きはしないようにします
コピーしたファイルは以下のものです
libexpat.dll libserf-2.dll libsqlite3.dll libsvn_client-1.dll libsvn_delta-1.dll libsvn_diff-1.dll libsvn_fs-1.dll libsvn_fs_fs-1.dll libsvn_fs_util-1.dll libsvn_fs_x-1.dll libsvn_ra-1.dll libsvn_repos-1.dll libsvn_subr-1.dll libsvn_wc-1.dll libsvnjavahl-1.dll zlib.dll |
- vs17\x64\ のmod_authz_svn.so、mod_dav_svn.soを「C:\APPL01\Apache Software Foundation\Apache2.4.59\modules」の下にコピーします
mod_authz_svn.so mod_dav_svn.so |
- (※補足)Apache2.4.59/bin、Apache2.4.59/modulesの下にコピーせずに、vs17/x64を別場所に配置して、soを参照する設定を試しましたが、Apacheは起動するもののリポジトリブラウザでアクセスしようとすると、開けなかったのであきらめました
Apacheのエラーログで何度もプロセスのリスタートがかかり何度目かにあきらめている感じでした - リポジトリ、パスワードファイルの作成は省略します
- Apacheのconf/httpd.confを修正します
| 修正前 | 修正後 | |
|---|---|---|
| 修正 | #LoadModule dav_module modules/mod_dav.so
#LoadModule dav_fs_module modules/mod_dav_fs.so |
LoadModule dav_module modules/mod_dav.so
LoadModule dav_fs_module modules/mod_dav_fs.so |
| 追加 | LoadModule dav_svn_module modules/mod_dav_svn.so
LoadModule authz_svn_module modules/mod_authz_svn.so |
|
| 追加 | <Location /svn/svnrep01>
SVNListParentPath on DAV svn SVNPath "C:/DATA01/SVN/SVNREP01" #Basic認証の設定 AuthType Basic AuthName "Subversion repositories" AuthUserFile "C:/DATA01/SVN/SVNREP01/svnpasswd" Require valid-user </Location> |
- Apacheを再起動します
- TortoiseSVNからアクセスできることを確認します
http://localhost/svn/svnrep01/
- 以下は検討してあきらめたことです
Apache Subversion Binary Packages から各バイナリをダウンロード
| 項目 | 内容 |
|---|---|
| SlikSVN | Download SlikSVN Subversion clientからSlik-Subversion-1.14.2b-x64.zipをダウンロード
zip内のSlik-Subversion-1.14.2-x64.msiをUniversal Extractor 2で解凍したがmod_dav_svn.so、mod_authz_svn.soが無かったので断念 |
| TortoiseSVN | Downloads · TortoiseSVNからTortoiseSVN-1.14.7.29687-x64-svn-1.14.3.msiをダウンロード
Universal Extractor 2で解凍したがmod_dav_svn.so、mod_authz_svn.soが無かったので断念 |
| VisualSVN | Downloads | VisualSVNからApache-Subversion-1.14.3.zip、VisualSVN-Server-5.3.2-x64.msiをダウンロード
解凍後どちらもmod_dav_svn.so、mod_authz_svn.soが無かったので断念 |
| Cirata | Premier source for certified subversion binaries | CirataからWANdiscoSubversion_1.14.1-1_apache_24.exeをダウンロード
WANdiscoSubversion_1.14.1-1_apache_24\Apache2\modulesの下にmod_dav_svn.so、mod_authz_svn.soがあったが32bit版のためかロードできなかった >cd C:\DATA01\TempDel\WANdiscoSubversion_1.14.1-1_apache_24\Apache2\bin >httpd.exe -v Server version: Apache/2.4.46 (Win32) Server built: Oct 13 2020 13:37:23 |
登録:
コメント (Atom)