在Debian 7系统里测试安装Ambra

感谢 tctia* 的支持。

有用户要求测试安装Ambra,现将过程记录,虽然未成功,但希望给其他人带来帮助。

环境:
软件:Debian 7.10 64位,JDK 7,tomcat 6,mysql server 5.5。
ECS配置:1核心,2GB内存。

个人总结:

  • Ambra官方网站里的文档相对较旧,很久没更新了
  • Ambra官方网站里提供的联系方法(邮件列表)无人审核,无法发邮件提问,获取帮助
  • Java生手(如我),不建议尝试,在前面两个原因前提下,完成测试有难度

过程:

1.更新软件源:
apt-get update

2.安装默认JDK版本(1.7.0_111)
apt-get install default-jdk

3.安装tomcat6
apt-get install tomcat6

4.安装mysql,假设设置mysql的密码为root
apt-get instal mysql-server

5.停止 tomcat6 服务,移走原有/var/lib/tomcat/webapps目录内容
service tomcat6 stop

6.用官方上手教程里方法,编译的webapp版本是2.9.5,官方PLOS支是2.11,这里下载官方编译好的2.11.war来测试,放到 /var/lib/tomcat/webapps/ROOT.war

wget http://ambraproject.org/maven2/release/org/ambraproject/ambra-webapp/2.11.0/ambra-webapp-2.11.0.war

7.从官方上手教程里下载相应的组件,如 tomcat-jdbc.jar, tomcat-juli.jar, log4j-1.2.14.jar 到 /usr/share/tomcat6/lib 目录(前两者是mysql连接要用到的,后边的是用于记录日志的),同时在该目录里创建log4j.properties的配置文件,让tomcat记录详细的输出信息

log4j.rootLogger=ERROR,consoleAppender
log4j.appender.consoleAppender=org.apache.log4j.ConsoleAppender
log4j.appender.consoleAppender.Target=System.out
log4j.appender.consoleAppender.layout=org.apache.log4j.PatternLayout
log4j.appender.consoleAppender.layout.ConversionPattern=%-5p %c{1} - %m%n
log4j.logger.org.ambraproject=DEBUG
log4j.logger.org.ambraproject.ambra.configuration=FATAL

8.编辑tomcat配置文件,/etc/tomcat6/context.xml ,在标签间加入以下内容,其中 jdbc:mysql://localhost/ambra 中的 ambra 是程序要用到的数据库名称,上一行的password是数据库用户的密码,路径 /mytest/dongshan/ambra 是程序要用到的文件路径,这里随意创建了 /mytest/dongshan 的路径,请作相应的更改

<WatchedResource>WEB-INF/web.xml</WatchedResource>
  <Resource name="jdbc/AmbraDS"
    auth="Container"
    type="javax.sql.DataSource"
    factory="org.apache.tomcat.jdbc.pool.DataSourceFactory"
    validationQuery="SELECT 1"
    testOnBorrow="true"
    driverClassName="com.mysql.jdbc.Driver"
    username="root"
    password="aqtest38"
    url="jdbc:mysql://localhost/ambra" />
<Resource name="ambra/FileStore"
    type="org.ambraproject.filestore.FileStoreService"
    factory="org.ambraproject.filestore.impl.LocalFileStoreFactory"
    baseDir="/mytest/dongshan"
    domain="ambra" />

bbs-aliyun-dongshan3-303673-1.png

9.创建好空数据库 ambra,导入从官方“上手教程”里的 ambra_schema.sql 数据库文件

10.创建ambra的配置文件,/etc/ambra/ambra.xml ,内容如下。这里主要是设置文件(ehcache.xml)和目录(ingest、ingestdestination、AmbraJournal和templates)的路径, 还有默认杂志名称(AmbraJournal),请根据实际情况修改:

<config>
  <ambra>
    <network>
      <hosts>
        <default>localhost</default>
        <ambra>${ambra.network.hosts.default}</ambra>
      </hosts>
    </network>
    <services>
      <ehcache>
        <configFileLocation>/mytest/dongshan/ehcache.xml</configFileLocation>
      </ehcache>
      <search>
        <server>
          <url>http://localhost:8080/solr</url>
        </server>
      </search>
      <documentManagement>
        <ingestSourceDir>/mytest/dongshan/ingest</ingestSourceDir>
        <ingestDestinationDir>/mytest/dongshan/ingestdestination</ingestDestinationDir>
      </documentManagement>
    </services>
    <virtualJournals>
      <templateDir>/mytest/dongshan/templates</templateDir>
      <default>AmbraJournal</default>
      <journals>AmbraJournal</journals>
    </virtualJournals>
  </ambra>
</config>

11.创建杂志目录(/mytest/dongshan/templates/journals/AmbraJournal/webapp)及配置文件,如 /mytest/dongshan/templates/journals/AmbraJournal/configuration/journal.xml,内容如下:

<?xml version="1.0" encoding="UTF-8" ?>
<!--
  This file is the Ambra template for the Default AmbraJournal journal
-->
<config>
  <ambra>
    <!-- virtual journal config -->
    <virtualJournals>
      <AmbraJournal>
        <journal>AmbraJournal</journal>
        <eIssn>1111-2222</eIssn>
        <description>Ambra</description>
        <rules>
          <host>.*ambra.*</host>
        </rules>
        <url>http://ambrajournal.example.org</url>
        <!-- Does the journal have a taxonomy browser? -->
        <taxonomyBrowser>false</taxonomyBrowser>
        <ambra>
          <services>
            <feed>
              <title>Ambra Journal</title>
              <id>info:doi/10.1371/feed.ambr</id>
            </feed>
          </services>
        </ambra>
        <!-- Configuration keys for displaying recent articles tab widget on home page -->
        <recentArticles>
          <numDaysInPast>14</numDaysInPast>
          <numArticlesToShow>5</numArticlesToShow>
          <typeUriArticlesToShow>
            <articleTypeUri>http://rdf.plos.org/RDF/articleType/Research%20Article</articleTypeUri>
          </typeUriArticlesToShow>
        </recentArticles>
        <isIncludeInCrossJournalSearch>false</isIncludeInCrossJournalSearch>
      </AmbraJournal>
    </virtualJournals>
    <freemarker>
      <!--
        # This section defines the various journals and the css and javascript files which should be
        # included on each page as well as the page title.  The values within the <default> tag are used
        # if any of the values are missing in the <page> definitions.  Note, that the title, css, and
        # javascript level values are entirely replaced, they are not additive.  Override config files
        # may define values for each of those three variables and they will supsercede values present
        # in subsequent config values.  The lookup for values is as follows:
        # 1. Page defined in journal
        # 2. Default value defined in journal
        # 3. Page defined in default journal
        # 4. Default value in default journal
        # To define an empty value for a certain page so that it doesn't use defaults, just put the
        # element tag with no value, e.g. <javascript></javascript>
      -->
      <!--AmbraJournal-->
      <journal>
        <name>AmbraJournal</name>
        <metaKeywords>Ambra\, Default\, Journal</metaKeywords>
        <metaDescription>Ambra Journal: Defaults</metaDescription>
        <articleTitlePrefix>Ambra Journal :</articleTitlePrefix>
        <displayName>Ambra Journal</displayName>
        <default>
          <title>Ambra Journal : An Open-Access, Semantic, Journal Publishing System</title>
          <css>
            <file>/css/global.css</file>
            <file>/css/lte_ie7.css</file>
          </css>
          <javascript>
            <file>/javascript/js.js</file>
          </javascript>
        </default>
        <page>
          <name>/index.ftl</name>
          <css>
            <file>/css/global.css</file>
            <file>/css/lte_ie7.css</file>
          </css>
          <javascript>
            <file>/javascript/jquery-1.8.1.js</file>
            <file>/javascript/global.js</file>
          </javascript>
        </page>
      </journal>
    </freemarker>
  </ambra>
</config>

12.如果tomcat6提示缺少co请在相应的镜像站点下载 commons-logging-1.2-bin.tar.gz,将解压出来commons-logging-1.2.jar的文件,放到tomcat的lib目录/usr/share/tomcat6/lib
wget http://apache.mirror.iweb.ca//commons/logging/binaries/commons-logging-1.2-bin.tar.gz

13.启动tomcat6,在浏览器访问,看测试结果:
service tomcat6 start
bbs-aliyun-dongshan3-303673-2.png

bbs-aliyun-dongshan3-303673-4.png

14.如浏览器显示404页面找不到,请查看tomcat日志:
tail -300 /var/log/tomcat6/catalina.out
bbs-aliyun-dongshan3-303673-5.png

15.测试中,如果用官方PLOS树中的ambra-webapp-2.11.0.war,很可能会出现500错误,提示找不到 includes/article_variables.ftl 文件,我是直接将 /var/lib/tomcat6/webapps/ROOT/includes/global_variables.ftl 复制为 /var/lib/tomcat6/webapps/ROOT/includes/article_variables.ftl

freemarker.template.TemplateException: Error reading included file includes/article_variables.ftl

bbs-aliyun-dongshan3-303673-6.png

16.测试中,如果用自己编译的ambra-webapp-2.9.5.war,会出现缺少排版的内容页面
bbs-aliyun-dongshan3-303673-7.png

bbs-aliyun-dongshan3-303673-8.png

bbs-aliyun-dongshan3-303673-9.png

17.虽然官方文档里提到可以直接使用官方编译好ambra-admin.war,但放到webapps后,出现404出错,试用几个不同版本的ambra-amdin.ware,结果一样。
bbs-aliyun-dongshan3-303673-10.png

参考:http://ambraproject.org/trac/wiki/QuickStart

Linux系统远程登录程序MobaXterm简明使用例子

看到云友远程登录Linux系统,使用的程序有 putty,XShell 等,我个人使用的是MobaXterm。各程序有各自的优点,这里我简要写一下MobaXterm的使用例子和一些优点。

对我来说,MobaXterm有几个缺点(当然可能还有很多其它的):

  • 可携带版(Portable edition),下载解压后就可以使用
  • 在Windows 10下,默认的字体看得较明显、清晰,且在Shell里看到的文本信息中,对如警告(WARNING)、信息(INFO)、失败的(Failed)单词会有颜色显示,方便查找

下载、运行

1.从软件官方网站下载家庭版“Home Edition”,再点击携带版“Portable edition”
bbs-aliyun-dongshan3-303243-1.png

bbs-aliyun-dongshan3-303243-2.png

2.将下载得到的.zip文件,解压到自己常用的目录路径,点击其中的“MobaXterm_Personal_9.4.exe”就可以运行了
bbs-aliyun-dongshan3-303243-3.png

新建SSH会话

1.运行 MobaXterm
bbs-aliyun-dongshan3-303243-4.png

2.在左侧Sessions窗口中,鼠标右击空白处,在弹出的菜单中点击“New session”
bbs-aliyun-dongshan3-303243-5.png

3.在连接的类型中,点击“SSH”的图标,在 Remote host 里填写阿里云ECS的公网IP;勾选“Specify username”,如本例,指定登录名为root用户
bbs-aliyun-dongshan3-303243-6.png

4.点击 OK 按钮后,在光标处会提示输入用户(root)的密码,这时,直接用键盘输入密码后按回车键确认。请注意,在这里,光标不会随着输入密码字符的位置移动,也不会回显星号
bbs-aliyun-dongshan3-303243-7.png

5.MobaXterm会提示是否记住密码,我这里为了方便连接,点击了 Yes
bbs-aliyun-dongshan3-303243-8.png

6.成功SSH登录到远程系统
bbs-aliyun-dongshan3-303243-9.png

7.查看终端信息时,对如警告(WARNING)、信息(INFO)、失败的(Failed)单词会有颜色显示,如本例查看Tomcat的启动日志文件内容
bbs-aliyun-dongshan3-303243-10.png

常用操作,上传或下载文件(目录)

1.鼠标在左侧sftp窗口右击空白处,点击“Upload to cureent folder”,即可将本地的文件上传到目标目录(默认是在/root/);或者直接从本地Windows资源管理器将目录或文件拖放到MobaXterm的sftp窗口
bbs-aliyun-dongshan3-303243-11.png

2.如需要从远程文件系统下载文件,在MobaXterm左侧的sftp窗口中选中目录目录或文件,点击鼠标右键 Download 来下载
bbs-aliyun-dongshan3-303243-12.png

常用操作,退出或重新连接会话

  • 如果直接点击会话标签的x图标,会弹窗提示是否确认退出
    bbs-aliyun-dongshan3-303243-13.png
  • 也可以在SSH会话里输入exit的命令退出,按回车键确认退出,或按R重新连接
    bbs-aliyun-dongshan3-303243-14.png
  • 如已经退出SSH会话,可在MobaXterm左侧Sessions窗口中,双击已经保存的会话名称进行连接
    bbs-aliyun-dongshan3-303243-15.png

参考:

在CentOS 7 安装 cPanel & WHM

看到云友"保护伞老板 "的帖子,在CentOS 6里安装cPanel的,提到需要启用IPv6后才能安装,所以实践了一下。

环境:CentOS 7.2 64位

目标:安装 cPanel & WHM

过程:

1.执行以下命令,更改系统名称,本例是更改为 yun.anqun.org
hostnamectl set-hostname yun.anqun.org
bbs-aliyun-dongshan3-303168-1.png

2.执行以下命令,开始安装 cPanel & WHM
cd /home && curl -o latest -L https://securedownloads.cpanel.net/latest && sh latest
bbs-aliyun-dongshan3-303168-2.png

bbs-aliyun-dongshan3-303168-3.png

3.完成安装后,在浏览器里输入 https://yun.anqun.org:2087 ,用系统账户root登录到WHM,第一步,同意使用协议
bbs-aliyun-dongshan3-303168-4.png

4.设置网络,如设置主机名,DNS服务器等
bbs-aliyun-dongshan3-303168-5.png

bbs-aliyun-dongshan3-303168-6.png

5.是否增设IP地址
bbs-aliyun-dongshan3-303168-7.png

6.配置域名服务器地址,本例是不启用本地的域名解析服务,域名服务器地址随意填写,因为在阿里云的免费云解析套餐里增加一个域名服务器地址好象要收费10元
bbs-aliyun-dongshan3-303168-8.png

bbs-aliyun-dongshan3-303168-9.png

7.FTP配置,这里保持默认的
bbs-aliyun-dongshan3-303168-10.png

8.配额设置,保持默认
bbs-aliyun-dongshan3-303168-11.png

9.是否启用其它功能,如 Auto SSL等,保持默认
bbs-aliyun-dongshan3-303168-12.png

10.完成WHM初始配置,提示是试用版
bbs-aliyun-dongshan3-303168-13.png

11.通过 Account Functions, Create a New Account 菜单,创建一个新空间用户,如 portal.anqun.org
bbs-aliyun-dongshan3-303168-14.png

12.空间用户通过 https://yun.anqun.org:2083 地址登录到 cPanel 面板,可以看到 cPanel公司为 cPanel & WHM 签发了SSL证书
bbs-aliyun-dongshan3-303168-15.png

13.空间用户的登录到 cPanel 首页内容
bbs-aliyun-dongshan3-303168-16.png

14.访问空间用户 portal.anqun.org 网址(已经将域名A记录解析到服务器的IP),页面显示正常
bbs-aliyun-dongshan3-303168-17.png

参考:

为Windows 2012系统远程桌面配置赛门铁克免费型DV SSL证书

默认,Windows 2012系统的远程桌面是使用服务器自签的SSL证书来提供安全连接,当使用“远程桌面连接”时,会提示“证书来自不信任的证书验证机构”。

目的:导入由第三方签发的SSL证书,让远程桌面连接不再提示证书警告。

前提:假设本例已经从阿里云申请了yun.anqun.org的免费型DV SSL证书。

过程:

1.ECS默认的计算机名称是随机的,远程桌面连接时,会提示证书有错误。
bbs-aliyun-dongshan3-302891-1.png

2.先修改计算机名,如本例,设置为 yun.anqun.org ,重启系统后,新计算机名生效
bbs-aliyun-dongshan3-302891-2.png

3.运行 mmc ,添加“证书”管理单元
bbs-aliyun-dongshan3-302891-3.png

4.在“证书管理单元”中选择“计算机账户”,“本地计算机”
bbs-aliyun-dongshan3-302891-4.png

bbs-aliyun-dongshan3-302891-5.png

5.在证书列表,个人分类中,进行“导入”操作
bbs-aliyun-dongshan3-302891-6.png

6.选择从阿里云证书申请到的“For IIS8”文件,如本例中的,2xxxxxxxx.pfx
bbs-aliyun-dongshan3-302891-7.png

bbs-aliyun-dongshan3-302891-8.png

bbs-aliyun-dongshan3-302891-9.png

7.将证书存储在“个人”分类中
bbs-aliyun-dongshan3-302891-10.png

bbs-aliyun-dongshan3-302891-11.png

8.在个人证书中,查看证书的指纹值,如本例的:E10F701714AD4F32EE68207E04D47CEA11A604B2
bbs-aliyun-dongshan3-302891-12.png

9.运行 PowerShell,执行以下命令,目的是更新远程桌面服务端使用的证书
wmic /namespace:\root\cimv2\TerminalServices PATH Win32_TSGeneralSetting Set SSLCertificateSHA1Hash="E10F701714AD4F32EE68207E04D47CEA11A604B2"

10.如果提示更新成功,重启系统后测试远程桌面连接,不会提示证书有错误了
bbs-aliyun-dongshan3-302891-13.png

参考:

连接外网SMTP服务器SSL加密端口(如阿里云企业邮箱465端口)

云友“就这种感觉 ”说原本正常使用的配置文件,在ECS云服务器里无法连接外网SMTP服务器(常用25端口),导致发信失败。

原因:可能阿里云为减免邮件滥用,新开通的ECS主动过滤了与外网TCP 25端口的连接。

方案:现在多数邮局提供商除了提供25的发信端口,还有提供其它安全加密端口,如阿里云企业邮箱提供465端口。可以尝试通过配置参数,将默认连接外网的25端口修改为其它可发信的端口。

环境: Debian 8

目的:在系统里,使用 mailx 命令,连接阿里云企业邮局,以企业邮箱账户(sales@vfutai.xxx)登录,发送一封测试邮件到一个腾讯邮箱地址(dongshan3@xxxx)。

过程:

1.安装 heirloom-mailx,替换默认的 bsd-mailx,因为Debian系统默认使用 bsd-mailx ,但 bsd-mailx 没有smtp的相关设置选项
apt-get install heirloom-mailx
bbs-aliyun-dongshan3-302371-1.png

2.创建mailx配置文件,~/.mailrc ,文件内容如下:

set smtp="smtps://smtp.mxhichina.com:465"
set smtp-auth=login
set smtp-auth-user="sales@vfutai.xxx"
set smtp-auth-password="Ni_De_Mi_Ma"
set ssl-verify=ignore

请替换其中的登录用户和密码值。

3.发信测试:
echo message4 | mail -v -r "sales@vfutai.xxx" -s "This is the subject" dongshan3@foxmail.xxx
请替换其中的回信、收信地址和标题。

4.执行命令后,显示发信成功。收件人邮箱中,有信。
bbs-aliyun-dongshan3-302371-2.png

bbs-aliyun-dongshan3-302371-3.png

参考: