Ubuntu16.04 安装openjdk-7-jdk

Ubuntu16.04的安装源已经默认没有openjdk7了,所以要自己手动添加仓库,如下:

# 1. oracle openjdk ppa source

# 2. oracle java jdk ppa source

JDK6 :

JDK 7:

JDK 8:

如果安装成功之后还是不能用可能不有多个版本,选的不对

选出正确的版本

参考链接


Ubuntu16.04 安装openjdk-7-jdk

Ubuntu 14.04隐藏Tomcat-7.0.52的版本号与操作系统类型

推荐方案

另外更推荐的方法是通过 Tomcat 的配置文件完成,而不是修改代码,具体配置方法为:

conf/server.xml 配置文件中的 <Host> 配置项中添加如下配置:

配置项说明:

  • showReport:默认值为true,默认显示报错信息
  • showServerInfo:默认值为true,默认显示Tomcat的版本号

其他方案

一般情况下,软件的漏洞信息和特定版本,特定操作系统是相关的,因此,软件的版本号以及操作系统类型对攻击者来说是很有价值的。

在默认情况下,Tomcat会在返回信息中把自身的版本号,操作系统类型都显示出来,如下图:
TomcatErrorPageVersion

这样做会造成潜在的安全风险,导致不必要的攻击行为。

Ubuntu 14.04系统上隐藏Tomcat-7.0.52的版本号与操作系统类型的方法如下:

可以看到里面的内容如下:

直接注释掉里面的内容,如下:

修改完成后,把修改完成的数据存储到catalina.jar中。

把修改后的catalina.jar放回到Tomcat的目录下面:

重启Tomcat的服务

修改后的结果如下图所示,已经没有系统类型信息了,仅仅返回了一个404错误。

TomcatErrorPageVersionAfterHide

至于如何隐藏Apache的版本号,参考链接 Ubuntu 14.04隐藏Apache-2.4的版本号与操作系统类型

参考链接


Tomcat隐藏版本号和报错信息(修改配置文件方式)

在Ubuntu 14.04 系统中的Apache Tomcat上部署Apache Archiva 2.2.1

注意: Apache Archiva 2024-02 开始已经停止维护 建议使用 JFrog Artifactory 替代。

简介


Apache Archiva是一套可扩展的Artifact Repository管理系统。它能够与MavenContinuumANT等构建工具完美结合。Archiva提供的功能包括:远程Repository代理,基于角色的安全访问管理,Artifact分发、维护、查询,生成使用报告,提供基于Web的管理界面等。 本来是Sonatype Nexus更加方便的,但是可惜最新的版本不支持在Tomcat中使用了,因此只能转而使用Apache Archiva

操作步骤


1.下载Apache Archiva

Apache官方网站下载,下载其中的War包。如下图: DownloadArchivaHtml 也可以在本站下载. 具体的命令如下:

 

2.下载Apache Archiva依赖的Jar包

Apache Archiva需要依赖derby-10.10.1.1.jar(或更高版本)(org.apache.derby:derby:10.10.1.1), activation-1.1.jar(javax.activation:activation:1.1),mail-1.4.jar(javax.mail:mail:1.4.7).可以在MVN Repository官网下载。也可以在本站打包下载。 下载完成后,需要放到Tomcat的安装目录下面的lib目录下。 具体的命令如下:

 

3.配置Apache Archiva

(1)停止Tomcat,后续的操作是先关闭Tomcat为前提的。

(2)把下载到的apache-archiva-2.2.1.war重命名成archiva.war然后放到Tomcat安装目录下的webapps目录下面。

(3)在Tomcat的配置文件中增加两项appserver.homeappserver.base,两者都指向相同的目录即可,本例中,都指向了/data/Archiva这个目录。

在脚本的第一行执行代码中增加如下内容:

注意:不要直接修改catalina.sh这个文件,原因在于这个文件每次更新都可能会被替换掉,环境变量的设置都应该在setenv.sh中设置。
注意catalina.sh这个文件中的如下注释

(4)由于Apache Archiva 2.2.1BUG,他没有自动创建必须的目录,导致如果这个目录不存在会初始化失败。因此我们需要手动创建这些目录。

(5)在Tomcat的配置目录下的Catalina\localhost目录下面创建一个名为archiva.xml的配置文件.

里面的内容如下:

注意其中的Context path为数据库相关配置文件所在的路径,包含配置,数据库等等很多文件,url为数据库的具体存储目录,仅仅包含数据库数据。 注意:Ubuntu系统下面CATALINA_HOME指向/usr/share/tomcat7,而CATALINA_BASE指向/var/lib/tomcat7

(6)启动或者重启Tomcat,等待几分钟之后,即可成功配置完成。

如下图: ApacheArchivaIndexPage 注意,如果在最后一步发生失败,那么我们需要删除/data/Archiva这个目录,以及Tomcat安装目录下面的webapps\archiva这两个目录,原因是在配置过程中修改了部分文件,如果不删除这几个文件,会导致各种异常。

注意,上图中的"Create Admin User"按钮,当创建用户的时候,貌似用户名是可以不用"admin"的,但是,实际上,管理员的用户名是不变的,不管你输入什么,最后登陆的时候填写的用户名,永远必须是"admin",否则会一直提示用户名或密码不正确。

注意,如果使用Apache Httpd(Apache 2.x)作为前端代理Tomcat的情况下部署Apache Archiva,并且使用AJPApache JServ Protocol)的方式进行通信,那么在配置Apache Httpd(Apache 2.x)的配置文件的时候,里面写入的名字必须严格跟Tomcat中部署的名字一致,比如,如果Tomcat配置的时候是archiva,那么在Apache Httpd(Apache 2.x)的配置文件中,也必须使用archiva,不能像其他简单项目一样进行命名重定向。如下:

里面增加的AJP代理信息如下:

更详细的配置说明,参考 Ubuntu 13.10 Apache 2.2 通过 AJP 整合 Tomcat 7

客户端配置


在客户机上找到.m2所在的目录,找到settings.xml这个配置文件,如果不存在,则手工创建,里面的默认内容如下:

在其中的mirrors中间增加如下内容:

修改后的内容变成如下样子:

目前使用的时候,发现,在Apache Archiva刚刚配置完成后,是没办法进行访问的,这个时候一切都返回404,等服务器启动几个小时之后,从中央服务器同步完成数据了,就可以进行访问了,这个问题纠结了好久,最后发现只要等待就可以了,不知道是不是一个通病。
另外就是,在Apache Archiva的搜索页面中使用Search,如果是第一次使用,会发现搜索任何包都提示找不到,原因是因为在设计的时候,只搜索本地已经下载过的包,而在中央仓库中的包是不搜索的,因此会一直提示找不到任何包,只要有任何的客户端调用过,那么就可以在搜索页中找到了,这个问题不必纠结。

引用链接


Ubuntu 16.04上使用crosstool-ng建立树莓派2B的编译环境

环境准备


编译crosstool-ng


然后加环境变量 export PATH=$PATH:/opt/crosstool-ng/bin

配置编译选项


如果想自己配置调整某些参数,则执行

最后执行

默认情况下,生成的编译工具在当前用户目录下的x-tools目录下,如果需要调整这个目录,可以参考
Mac OSX下执行crosstool-ng提示“Your file system ‘xxxx’ is *not* case-sensitive!”

编译树莓派源代码


Ubuntu 16.04 (x64)树莓派B+(Raspberry Pi  B+)源代码编译

参考链接


自己编译给树莓派的交叉编译工具

Ubuntu 14.04主机优化加速mod_pagespeed安装使用

背景介绍


谷歌优化加速mod_pagespeed作为Apache HTTP Server的module,它能在服务网页请求的即时做出超过15种的优化调整,包括优化缓存,最小化客户端—服务器往返路程,压缩有效传输体积。
经过实验观察,mod_pagespeed最高能使页面加载时间压缩50%。
项目已经被迁移到了GitHub,链接地址为:https://github.com/pagespeed/mod_pagespeed

Apache mod_pagespeed安装方法


1.下载安装包

32位系统

64位系统

鉴于国内被和谐的情况,可以本站下载 64位Ubuntu点击这里 32位Ubuntu点击这里

2.安装

3.重启Apache2

4.检查是否安装成功

5.潜在问题

安装这个插件之后,可能会导致页面在不同操作系统之间的显示错乱问题,目前WordPress上会出现这种问题,应该是缓存导致的问题,因为WordPress会根据系统,浏览器的不同来进行页面兼容处理,如果直接返回缓存数据,反而会出问题。目前暂时只能是禁用这个插件了。

另外,当主机的CPU,内存有限的情况下,这个模块反而增加了系统开销,导致系统响应缓慢。有些Javascript代码被优化后,会工作不正常,目前看来,对小网站来说副作用大于正面作用。

参考链接


主机优化加速mod_pagespeed和ngx_pagespeed安装使用

Ubuntu 14.04使用OpCache提升PHP5.5+程序性能

概述


PHP 5.5以后内建了OpCache,OpCache的加速原理是把编译后的bytecode存储在内存里面, 避免重复编译 PHP 所造成的资源浪费.Ubuntu 14.04默认自带 PHP 5.5.9,已经集成了这个功能。但是默认是不启用的。

启用


修改 php.ini 文件

在文件最后面加入:

重启服务器

效果


加速效果极端明显,强烈建议启用这个功能。

Ubuntu14.04升级到Ubuntu16.04出现错误

Ubuntu14.04升级到Ubuntu16.04出现错误,如下图所示:
from_ubuntu_14_upgrade_ubuntu_16_error
如果机器上安装了postgresql,则是由于postgresql处于升级黑名单中,因此无法升级。
一般建议手工卸载postgresql

卸载完成后继续执行升级命令

具体参考这个BUG的链接:
postgresql packages in the removal blacklist making it hard to upgrade

Ubuntu 14.04编译安装Apache 2.4.20

1.安装开发工具包

2.下载Apache 2.4.20的源代码

3.安装apr依赖库

4.安装pcre

5.解压缩代码

6.配置并编译

参考链接


Ubuntu 14.04(64位)源码编译安装PHP7并配置Apache2支持

下载PHP7源代码


解压缩到当前目录


安装编译需要的依赖


安装libxml2-dev

安装gcc

安装依赖的库

安装apache2-dev,否则无法指定--with-apxs2=/usr/bin/apxs来生成libphp7.so

切换到编译目录

配置并编译


配置开启php-fpm支持,开启多线程支持--enable-maintainer-zts,否则无法使用Apache2Event MPM功能。

配置并安装PHP7


拷贝PHP7的配置文件


设置PHP7的配置文件php.ini


PHP7已经默认加载opcache.so了,因此不需要声明zend_extension=opcache.so.

启用Apache2PHP7模块


启用Apache2Event模块


参考链接


ubuntu 14.04上源码编译安装php7
How to install PHP 7 as PHP-FPM & FastCGI for ISPConfig 3 on Debian 8 (Jessie)

Ubuntu 14.04 关闭PHP服务器上返回的X-Powered-By信息

最近在分析网站性能的时候,发现服务器返回了"X-Powered-By"字段,这个字段中携带了PHP的版本号,系统的版本号。如下图:
X-Powered-By

而出于安全考虑,这两个信息是不应该被返回给客户端的。

Ubuntu 14.04下服务器禁止返回"X-Powered-By"的设置如下:
对于使用Apache2内置PHP的服务器,则需要修改Apache2对应目录下的配置文件

对于使用PHP-FPM调度的服务器,则需要同时修改PHP-FPM,FastCGI对应目录下的配置文件

找到

把其中的expose_php = On调整为:expose_php = Off,调整后的结果如下:

接下来,重启Apache2

重启PHP-FPM,如果配置了的话。

再次请求服务器后,发现"X-Powered-By"已经不会再返回了。

X-Powered-By-Off