標籤:環境配置 security 檔案名稱 ted spec iat 更改 acl unique
一.進入網址:
https://github.com/dcm4che/dcm4chee-arc-light/wiki/Installation
這個是GitHub上面給的步驟,可能會比較難理解,按照所給的步驟做,可能會出現各種問題,在此將筆者遇見的問題列舉出來,並給出解決方案。
二.安裝所需環境:
1、JDK 1.8.0_91
2、wildfly-10.0.0.Final
3、mysql-5.7.12
4、Apache DS 2.0.0-M20
5、 Apache Directory Studio 2.0.0-M9
上述所需工具下載及環境配置在此不多贅述,如需瞭解詳情請到相應官網查閱。
三.所需資源
binaries:
https://sourceforge.net/projects/dcm4che/files/
筆者所用的是dcm4chee-arc-5.4.1-mysql這個版本,當然你可以使用其它資料庫版本,如果使用其它資料庫,第二個步驟中的資料庫也要相應的改變。
四.建立資料庫
我們選擇Mysql資料庫:
1、 建立資料庫並授權使用者
> mysql -u root -p<root-password>
mysql> create database <database-name>;
mysql> grant all on <database-name>.* to ‘<user-name>‘ identified by ‘<user-password>‘;
mysql> quit
2、 匯入表到此資料庫
mysql -u <user-name> -p<user-password> <database-name> < $DCM4CHEE_ARC/sql/create-mysql.sql
五.設定 LDAP 伺服器
我們選擇 Apache DS 2.0.0 伺服器。
5.1 安裝 Apache DS 2.0.0-M20 並啟動服務5.2 安裝 Apache Directory Studio 2.0.0-M9 並建立一個 LDAP 串連:
Network Parameter:
Hostname: localhost
Port: 10389
Authentication Parameter:
Bind DN or user: uid=admin,ou=system
Bind password: secret
5.3 將 LDAP模式的檔案匯入到 Apache DS 中:5.3.1 匯入apacheds下的LDIF檔案
$DCM4CHEE_ARC/ldap/apacheds/dicom.ldif
$DCM4CHEE_ARC/ldap/apacheds/dcm4che.ldif
$DCM4CHEE_ARC/ldap/apacheds/dcm4chee-archive.ldif
匯入步驟為:在此串連右鍵?import?LDIF import,選擇要匯入的檔案。
注意:要嚴格按照上述所給檔案先後順序匯入。
5.3.2 建立分區dc=dcm4che,dc=org
如果不建立這個分區,按照GitHub上的步驟串連dc=dcm4che,dc=org會出現找不到分區的問題,此時,我們應該首先在uid=admin,ou=system 這個串連下
建立一個分區,步驟為:
(1) 在此串連右鍵open configuration,切換到Partitions選項,添加一個ID為dcm4che,Suffix為dc=dcm4che,dc=org的分區
(2) 重啟ApacheDS服務才會出現此分區。這個時候如果再建立一個新的串連,來串連此分區;Bind DN填寫dc=dcm4che,dc=org,密碼:secret,會出現驗證失敗的問題,因為dcm4che,dc=org的密碼不是secret,這個時候我們需要添加這個分區的使用者密碼,添加步驟:
①找到$DCM4CHEE_ARC/ldap/init-baseDN.ldif,在此檔案末尾加上一個屬性userpassword: secret
②匯入此ldif檔案,會出現entry已存在的問題,這個時候需要刪除dc=dcm4che,dc=org 這個entry,刪除之後再匯入,就會成功。
5.3.3 匯入ldap下面的ldif檔案
$DCM4CHEE_ARC/ldap/init-config.ldif
$DCM4CHEE_ARC/ldap/default-config.ldif
$DCM4CHEE_ARC/ldap/add-vendor-data.ldif
$DCM4CHEE_ARC/ldap/sample-config.ldif
匯入方法和5.3.1一樣。
六.將dcm4chee-arc-light中的預設配置匯入到 LDAP 伺服器上6.1 建立一個新LDAP串連:
Network Parameter:
Hostname: localhost
Port: 10389
Authentication Parameter:
Bind DN or user: dc=dcm4che,dc=org
Bind password: secret
Browser Options:
Base DN: dc=dcm4che,dc=org
當然,連接埠號碼也可以使用GitHub 所給的389,這需要你建立一個 LDAP server,在 LDAP Servers 視圖下右鍵?New?New Server,選擇 ApacheDS 2.0.0 點擊 finish,開啟配置視圖,選擇Overview 選項卡,更改連接埠號碼為 389,306,啟動此server。
6.3 匯入ldap下面的ldif檔案
$DCM4CHEE_ARC/ldap/init-config.ldif
$DCM4CHEE_ARC/ldap/sample-config.ldif
$DCM4CHEE_ARC/ldap/default-config.ldif
$DCM4CHEE_ARC/ldap/add-vendor-data.ldif
若5.3.3已經匯入,這裡就不需要匯入了。匯入方法和5.3.1一樣。
6.4 配置 Archive 的AE Title(s) 6.4.1 可以參考這個文章:change the default AE Title(s) of the Archive
我們在這裡選擇第一種方法:
建立一個 LDIF 檔案 命名AETitle.ldif, 檔案內容如下:
version: 1
# LDIF for modifying the AE Title of the Archive
# Adjust Base DN (dc=dc=dcm4che,dc=org), Device name (dcm4chee-arc), previous AE Title (DCM4CHEE),
# new AE Title (MY_AE) before import it into the LDAP server
dn: dicomAETitle=DCM4CHEE,dicomDeviceName=dcm4chee-arc,cn=Devices,cn=DICOM Configuration,dc=dcm4che,dc=org
changetype: moddn
newrdn: dicomAETitle=MY_AE
deleteoldrdn: 1
newsuperior: dicomDeviceName=dcm4chee-arc,cn=Devices,cn=DICOM Configuration,dc=dcm4che,dc=org
將此檔案匯入,匯入方法和5.3.1一樣。
6.5 改變預設的儲存路徑6.5.1 可以參考這個文章: change the default Storage Directory:
我們選擇第二種方法:
建立一個 LDIF 檔案,命名 storage-directory.ldif,檔案內容如下:
version: 1
dn: dcmStorageID=fs1,dicomDeviceName=dcm4chee-arc,cn=Devices,cn=DICOM Configuration,dc=dcm4che,dc=org
changetype: modify
replace: dcmURI
dcmURI: file:///D:/dcm4chee-arc/fs1/
筆者選擇的是D盤,如果想使用其它盤可以更改為相應的盤符,當然,路徑也可以自訂。
6.6 配置外部 DICOM 應用程式 AE Title(s) 來確定哪一個 Archive 允許被串連6.6.1可以參考這個文章:configure AE Title(s) of external DICOM Applications
調整$DCM4CHEE_ARC/ldap/sample-device.ldif檔案可以配置。此檔案內容為:
version: 1
# LDIF for adding a Device providing one Application Entity available on one Network connection
# Adjust Base DN (dc=dcm4che,dc=org), Device name (SAMPLE_DEVICE), AE Title (SAMPLE_AET),
# Hostname (sample.host.name) and Port number before import it into the LDAP server
# Unique AE Title
# (will fail if there is already an object for the same AE Title)
dn: dicomAETitle=SAMPLE_AET,cn=Unique AE Titles Registry,cn=DICOM Configuration,dc=dcm4che,dc=org
objectClass: dicomUniqueAETitle
dicomAETitle: SAMPLE_AET
# Device
dn: dicomDeviceName=SAMPLE_DEVICE,cn=Devices,cn=DICOM Configuration,dc=dcm4che,dc=org
objectClass: dicomDevice
dicomDeviceName: SAMPLE_DEVICE
dicomInstalled: TRUE
# Network Connection
dn: cn=dicom,dicomDeviceName=SAMPLE_DEVICE,cn=Devices,cn=DICOM Configuration,dc=dcm4che,dc=org
objectClass: dicomNetworkConnection
cn: dicom
dicomHostname: sample.host.name
dicomPort: 12345
# Network Connection (secure)
# dn: cn=dicom-tls,dicomDeviceName=SAMPLE_DEVICE,cn=Devices,cn=DICOM Configuration,dc=dcm4che,dc=org
# cn: dicom-tls
# objectClass: dicomNetworkConnection
# dicomHostname: sample.host.name
# dicomPort: 23456
# dicomTLSCipherSuite: TLS_RSA_WITH_AES_128_CBC_SHA
# dicomTLSCipherSuite: SSL_RSA_WITH_3DES_EDE_CBC_SHA
# Network Application Entity
dn: dicomAETitle=SAMPLE_AET,dicomDeviceName=SAMPLE_DEVICE,cn=Devices,cn=DICOM Configuration,dc=dcm4che,dc=org
objectClass: dicomNetworkAE
dicomAETitle: SAMPLE_AET
dicomNetworkConnectionReference: cn=dicom,dicomDeviceName=SAMPLE_DEVICE,cn=Devices,cn=DICOM Configuration,dc=dcm4che,dc=org
# dicomNetworkConnectionReference: cn=dicom-tls,dicomDeviceName=SAMPLE_DEVICE,cn=Devices,cn=DICOM Configuration,dc=dcm4che,dc=org
dicomAssociationInitiator: TRUE
dicomAssociationAcceptor: TRUE
七.設定WildFly 伺服器7.1 將設定檔拷貝到WildFly 安裝路徑中:
> cp -r $DCM4CHEE_ARC/configuration/dcm4chee-arc $WILDFLY_HOME/standalone/configuration [UNIX]
> xcopy %DCM4CHEE_ARC%\configuration\dcm4chee-arc %WILDFLY_HOME%\standalone\configuration [Windows]
這個時候需要修改 ldap.properties 檔案
將java.naming.security.principal=cn=admin,dc=dcm4che,dc=org改為:
java.naming.security.principal=dc=dcm4che,dc=org
如果你上面建立的串連連接埠號碼是10389,需要將java.naming.provider.url的連接埠號碼改為10389
7.2 添加dcm4chee-arc 設定檔
> cd $WILDFLY_HOME/standalone/configuration/
> cp standalone-full.xml dcm4chee-arc.xml
可以手動複製
7.3 安裝dcm4chee-arc-light 庫作為 JBOSS 組件
> cd $WILDFLY_HOME
> unzip $DCM4CHEE_ARC/jboss-module/dcm4che-jboss-modules-5.x-dcm4chee-arc-light.zip
解壓$DCM4CHEE_ARC/jboss-module/dcm4che-jboss-modules-5.x-dcm4chee-arc-light.zip到 WildFly根目錄。
也可以先解壓好,將modules/org下面的dcm4che複製到%WILDFLY_HOME%\modules\org下面
7.4 安裝JAI Image IO 1.2 庫作為JBOSS組件
> cd $WILDFLY_HOME
> unzip $DCM4CHEE_ARC/jboss-module/jai_imageio-jboss-modules-1.2-pre-dr-b04.zip
也可以自己手動解壓複製到相應路徑
7.5 安裝 QueryDSL 3.2.3 庫作為JBOSS 組件
> cd $WILDFLY_HOME
> unzip $DCM4CHEE_ARC/jboss-module/querydsl-jboss-modules-4.0.3-noguava.zip
也可以手動解壓複製到相應路徑
7.6 安裝jclouds 1.8.1 庫作為JBOSS 組件
> cd $WILDFLY_HOME
> unzip $DCM4CHEE_ARC/jboss-module/jclouds-jboss-modules-1.9.1-noguava.zip
也可以手動解壓複製到相應路徑
7.7 根據你選擇的資料庫下載相應的JDBC 驅動7.7.1 選擇合適的驅動
筆者使用的是Mysql,jdbc-jboss-modules-1.0.0-mysql.zip下的module.xml設定檔使用的是5.1.36版本,筆者使用的是5.1.39,在http://dev.mysql.com/downloads/connector/j/ 下載mysql-connector-java-5.1.39-bin.jar檔案。你也可以下載其它版本,開啟網址: https://downloads.mysql.com/archives/c-j/ 選擇其它版本。有可能會出現版本不相容問題,請依據實際情況作出相應的調整。
7.7.2 安裝JDBC 驅動
有兩種安裝方式:部署和核心組件。
See 這個有兩種方式的安裝步驟,我們這裡選擇作為核心組件這種方式。
7.7.2.1在 JBOSS_HOME/modules下建立一個目錄結構
(1) 目錄結構為JBOSS_HOME/modules/com/mysql/main
(2)在main目錄下,建立一個 module.xml 檔案:
<?xml version="1.0" encoding="UTF-8"?>
<module xmlns="urn:jboss:module:1.1" name="com.mysql">
<resources>
<resource-root path="mysql-connector-java-5.1.39-bin.jar"/>
<!-- <resource-root path="mysql-license.jar"/> -->
</resources>
<dependencies>
<module name="javax.api"/>
<module name="javax.transaction.api"/>
</dependencies>
</module>
當然你也可以將$dcm4che-arc\jboss—modules\jdbc-jboss-modules-1.0.0-mysql.zip解壓出來的module.xml檔案複製到此路徑下
(3)將下載的JDBC驅動
mysql-connector-java-5.1.39-bin.jar複製到JBOSS_HOME/modules/com/mysql/main下面
(4)核實一下JDBC驅動檔案名稱和module.xml中path(s)下是否一致,要保持一致。
Resource-root 屬性可以有多個。
7.8 使用合適的設定檔以獨立模式啟動 WildFly.
> $WILDFLY_HOME/bin/standalone.sh -c dcm4chee-arc.xml [UNIX]
> %WILDFLY_HOME%\bin\standalone.bat -c dcm4chee-arc.xml [Windows]
Verify, that JBoss started successfully, e.g.:
=======================================================================
JBoss Bootstrap Environment
JBOSS_HOME: "C:\wildfly-10.0.0.Final"
JAVA: "C:\Program Files\Java\jdk1.8.0_91\bin\java"
JAVA_OPTS: "-Dprogram.name=standalone.bat -Xms64M -Xmx512M -XX:MetaspaceSize=96M -XX:MaxMetaspaceSize=256m - Djava.net.preferIPv4Stack=true -Djboss.modules.system.pkgs=org.jboss.byteman -agentlib:jdwp=transport=dt_socket,address=8787,server=y,suspend=n"
=======================================================================
09:22:51,531 INFO [org.jboss.modules] (main) JBoss Modules version 1.5.1.Final
09:22:51,704 INFO [org.jboss.msc] (main) JBoss MSC version 1.2.6.Final
09:22:51,767 INFO [org.jboss.as] (MSC service thread 1-6) WFLYSRV0049: WildFly Full 10.0.0.Final (WildFly Core 2.0.10.Final) starting
:
09:22:54,094 INFO [org.jboss.as] (Controller Boot Thread) WFLYSRV0025: WildFly Full 10.0.0.Final (WildFly Core 2.0.10.Final) started in 28397ms - Started 1839 of 2270 services (683 services are lazy, passive or on-demand)
在域模式下啟動並執行JBoss應該可以正常工作,但是還沒有測試。
7.9 開啟一個新的控制台視窗,使用JBoss CLI 將 JDBC 驅動添加到伺服器配置
> $WILDFLY_HOME/bin/jboss-cli.sh -c [UNIX]
> %WILDFLY_HOME%\bin\jboss-cli.bat -c [Windows]
[[email protected]:9999 /] /subsystem=datasources/jdbc-driver=<driver-name>:add(driver-name=<driver-name>,driver-module-name=<module-name>)
對於JDBC 驅動名字,<driver-name>可以任意,<module-name>必須和JDBC驅動組件的定義檔案 module.xml中定義的名字一致,我們定義的是“com.mysql”所以:
[[email protected]:9999 /] /subsystem=datasources/jdbc-driver=mysql:add(driver-name=mysql,driver-module-name=com.mysql)
7.10 使用JBoss CLI 建立一個新的資料來源綁定到 java:/PacsDS JNDI
[[email protected]:9999 /] data-source add --name=PacsDS \
> --driver-name=<driver-name> \
> --connection-url= jdbc:mysql://<host>:3306/pacsdb \
> --jndi-name=java:/PacsDS \
> --user-name=pacsdb \
> --password=pacsdb
[[email protected]:9999 /] data-source enable --name=PacsDS
The format of <jdbc-url> is JDBC Driver specific, e.g.:
? H2: jdbc:h2:<directory-path>/<database-name>
? MySQL: jdbc:mysql://<host>:3306/<database-name>
? PostgreSQL: jdbc:postgresql://<host>:5432/<database-name>
? Firebird: jdbc:firebirdsql:<host>/3050:<database-name>
? DB2: jdbc:db2://<host>:50000/<database-name>
? Oracle: jdbc:oracle:thin:@<host>:1521:<database-name>
? Microsoft SQL Server: jdbc:sqlserver://<host>:1433;databaseName=<database-name>
也可以使用CLI指令碼$DCM4CHEE_ARC/cli/add-data-source-<db>.cli,這個檔案中有兩個命令,一個是添加 JDBC driver,一個是建立資料來源。在執行之前我們必須用實際值(也就是步驟四所建立的資料庫)取代
<host>, <database-name>, <user-name> and <user-password> 這些值。執行:
> $WILDFLY_HOME/bin/jboss-cli.sh -c -f $DCM4CHEE_ARC/cli/add-data-source-<db>.cli
7.11 使用JBoss CLI 建立 JMS 隊列:
[[email protected]:9990 /] jms-queue add --queue-address=StgCmtSCP --entries=java:/jms/queue/StgCmtSCP
[[email protected]:9990 /] jms-queue add --queue-address=MPPSSCU --entries=java:/jms/queue/MPPSSCU
[[email protected]:9990 /] jms-queue add --queue-address=IANSCU --entries=java:/jms/queue/IANSCU
[[email protected]:9990 /] jms-queue add --queue-address=Export1 --entries=java:/jms/queue/Export1
[[email protected]:9990 /] jms-queue add --queue-address=Export2 --entries=java:/jms/queue/Export2
[[email protected]:9990 /] jms-queue add --queue-address=Export3 --entries=java:/jms/queue/Export3
這個也有CLI 指令碼 $DCM4CHEE_ARC/cli/add-jms-queues.cli 提供,裡面含有命令列,
我們只需執行:
> $WILDFLY_HOME/bin/jboss-cli.sh -c -f DCM4CHEE_ARC/cli/add-jms-queues.cli
7.12 使用JBoss CLI 調整 managed-executor-services 配置
[[email protected]:9990 /] /subsystem=ee/managed-executor-service=default:undefine-attribute(name=hung-task-threshold)
[[email protected]:9990 /] /subsystem=ee/managed-executor-service=default:write-attribute(name=long-running-tasks,value=true)
[[email protected]:9990 /] /subsystem=ee/managed-executor-service=default:write-attribute(name=core-threads,value=2)
[[email protected]:9990 /] /subsystem=ee/managed-executor-service=default:write-attribute(name=max-threads,value=100)
[[email protected]:9990 /] /subsystem=ee/managed-executor-service=default:write-attribute(name=queue-length,value=0)
7.13 使用 JBoss CLI 通過system property 指定一個不同的 Device Name
DCM4CHEE Archive 5.x 預設的Device Name是dcm4chee-arc,在LDAP Server中有配置,可以通過system property指定一個不同的Device Name(此步驟也可以不執行)
[[email protected]:9999 /] /system-property=dcm4chee-arc.DeviceName:add(value=<device-name>)
7.14 使用JBoss CLI 部署 DCM4CHEE Archive 5.x7.14.1 部署
[[email protected]:9999 /] deploy $DCM4CHEE_ARC/deploy/dcm4chee-arc-ear-5.x-psql.ear
Verify that DCM4CHEE Archive was deployed and started successfully, e.g.:
11:00:38,511 INFO [org.jboss.as.server.deployment] (MSC service thread 1-2) WFLYSRV0027: Starting deployment of "dcm4chee-arc-ear-5.x-psql.ear" (runtime-name: "dcm4chee-arc-ear-5.x-psql.ear")
:
11:00:42,742 INFO [org.dcm4che3.net.Connection] (EE-ManagedExecutorService-default-Thread-1) Start TCP Listener on /0.0.0.0:11112
11:00:42,811 INFO [org.dcm4che3.net.Connection] (EE-ManagedExecutorService-default-Thread-2) Start TCP Listener on /0.0.0.0:2762
11:00:42,811 INFO [org.dcm4che3.net.Connection] (EE-ManagedExecutorService-default-Thread-3) Start TCP Listener on /0.0.0.0:2575
11:00:42,813 INFO [org.dcm4che3.net.Connection] (EE-ManagedExecutorService-default-Thread-4) Start TCP Listener on /0.0.0.0:12575
11:00:43,095 INFO [org.wildfly.extension.undertow] (ServerService Thread Pool -- 20) WFLYUT0021: Registered web context: /dcm4chee-arc
11:00:43,095 INFO [org.wildfly.extension.undertow] (ServerService Thread Pool -- 23) WFLYUT0021: Registered web context: /dcm4chee-arc/ui
11:00:43,157 INFO [org.jboss.as.server] (management-handler-thread - 3) WFLYSRV0010: Deployed "dcm4chee-arc-ear-5.x-SNAPSHOT-psql.ear" (runtime-name : "dcm4chee-arc-ear-5.x-SNAPSHOT-psql.ear")
7.14.2 Verify that the Web UI is accessible at
http://localhost:8080/dcm4chee-arc/ui.
7.14.3 You may undeploy DCM4CHEE Archive at any time using JBoss CLI, e.g.:
[[email protected]:9999 /] undeploy dcm4chee-arc-ear-5.x-psql.ear
11:05:23,905 INFO [org.wildfly.extension.undertow] (ServerService Thread Pool -- 75) WFLYUT0022: Unregistered web context: /dcm4chee-arc
11:05:23,906 INFO [org.wildfly.extension.undertow] (ServerService Thread Pool -- 80) WFLYUT0022: Unregistered web context: /dcm4chee-arc/ui
11:05:23,912 INFO [org.dcm4che3.net.Connection] (EE-ManagedExecutorService-default-Thread-1) Stop TCP Listener on /0.0.0.0:11112
11:05:23,912 INFO [org.dcm4che3.net.Connection] (EE-ManagedExecutorService-default-Thread-2) Stop TCP Listener on /0.0.0.0:2762
11:05:23,915 INFO [org.dcm4che3.net.Connection] (EE-ManagedExecutorService-default-Thread-4) Stop TCP Listener on /0.0.0.0:12575
11:05:23,915 INFO [org.dcm4che3.net.Connection] (EE-ManagedExecutorService-default-Thread-3) Stop TCP Listener on /0.0.0.0:2575
:
11:05:24,023 INFO [org.jboss.as.server] (management-handler-thread - 8) WFLYSRV0009: Undeployed "dcm4chee-arc-ear-5.x-psql.ear" (runtime-name: "dcm4chee-arc-ear-5.x-psql.ear")
到這裡 dcm4chee-arc-light-5.4.1 安裝完成!
安裝dcm4chee-arc-light-5.4.1-mysql步驟