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

阿里云服务器从Ubuntu 12.04升级到Ubuntu 14.04

阿里云的服务器是Ubuntu 12.04根据Canonical发布的支持路线图,可以看到2017年4月份之后就不再提供支持。因此很有升级导致Ubuntu 14.04的必要,更别说很多软件在Ubuntu 12.04上已经比较过时了。

Ubuntu LTS版本支持路线图如下图:
1_201204291858511OI60

升级的流程如下所示:(执行下面操作之前,请务必先备份重要数据,阿里云服务器推荐使用自带的系统快照功能,非常好用)

1.首先保证当前系统上的软件都是最新的


2.安装系统升级模块


1-do-release-upgrade

3.升级流程


允许系统在升级期间开放1022端口用来处理系统升级异常,当系统升级异常的时候,可以通过这个端口进行某些恢复操作。(实际上没太大作用,出问题就快照回滚了,更快速安全方便)
2-ssh-port-query-yes

输入y,点击回车(Enter)。

3-iptables-add-port-press-enter

点击回车(Enter),允许在iptable上面开放1022端口出来,这个端口在安装完成后会自动关闭,不需要过多关心。

4-rewrite-sources-list-yes

允许升级程序更新sources.list用来获取升级所需要的文件,输入y,点击回车(Enter)。

5-upgrade-confirm

询问是否确认系统升级,输入y,点击回车(Enter)。

6-disable-ssh-password-no

询问是否禁止root用户通过ssh访问系统,这个一定要选择No,否则升级完成后,我们无法远程登陆系统。

7-restart-services-without-asking-yes

询问在升级期间是否允许自动重启需要升级的服务,这个一定要选择Yes,否则会不断的询问你是不是确定重启服务,非常麻烦。

8-serurity-limits-conf-replace-enter

询问是否用新系统的文件替换原系统的/etc/security/limits.conf文件,直接回车(Enter),不允许替换,使用原系统的配置。

9-etc-default-rcS-enter

同上,直接回车(Enter)。

9-etc-default-rcS-enter

同上,直接回车(Enter)。

10-etc-sysctl-conf-enter

同上,直接回车(Enter)。

11-etc-vsftpd-conf-enter

同上,直接回车(Enter)。

12-etc-php5-fpm-php-fpm-conf-enter

同上,直接回车(Enter)。

13-etc-php5-fpm-php-ini-enter

询问是否替换文件,同上,直接回车(Enter),不允许替换。

14-etc-php5-cgi-php-ini-enter

同上,直接回车(Enter)。

15-etc-init-mounted-run-conf-enter

同上,直接回车(Enter)。

16-etc-apache2-mods-available-fcgid-conf-enter

同上,直接回车(Enter)。

17-etc-sv-git-daemon-run-enter

同上,直接回车(Enter)。

18-etc-default-tomcat7-enter

同上,直接回车(Enter)。

19-upgrade-phpmyadmin-enter

询问是否升级数据库,此处选择Yes,回车(Enter)。

20-upgrade-phpmyadmin-password-enter

输入数据库的密码,完成后点击回车(Enter)。

21-remove-obsolete-packages-yes

询问是否删除不再使用的安装包,输入y后点击回车(Enter)。

22-restart-required-yes

升级完成,询问是否重启系统,输入y后点击回车(Enter)。系统会重启,远程连接会断开,需要稍等几分钟后重新连接服务器。

3.恢复被修改后的系统配置信息


安装Apache2PHP扩展libapache2-mod-php5,Ubuntu 12.04版本的库,在升级的过程中被丢弃了,需要重新手动安装。

23-after-restart-install-libapache2-mod-php5

询问是否替换已经存在的PHP配置文件,直接点击回车,不允许替换。

24-after-restart-install-libapache2-mod-php5-php-ini-enter

修改Apache2的配置文件

25-after-restart-vim-apache2-conf

原有Apache 2.2配置为:

发现升级后变更为:

导致PHP无法正常工作,因此需要修改回来。

修改前:
26-after-restart-vim-apache2-conf-IncludeOptional

修改后:27-after-restart-vim-apache2-conf-IncludeOptional-modify-complete

Apache 2.4修改了默认目录位置(这导致2.2版本设置的禁止目录流量功能失效),并且默认开启了目录浏览功能,会导致潜在的安全问题,需要手工关闭.

修改前:29-after-restart-apache2-disable-indexs

修改后:30-after-restart-apache2-disable-indexs-modify

重启Apache2

28-after-restart-apache2-restart

到此,整个系统升级完成,所有功能恢复正常。

从升级的效果来看,服务器的响应明显变快,非常值得升级!

Putty通过SSH无密码登陆Ubuntu12.04

(1)生成公钥/私钥对

注意"-P"后面输入的内容为空的时候代表不需要输入密码。
完成后会在当前用户目录下的.ssh目录下生成id_rsa,id_rsa.pub这两个文件。
(2)拷贝证书到本地机器
.ssh/id_rsa.pub拷贝下来,然后重命名成id_rsa.pub.git也就是Key加上用户名的命名方式,这样在Linux或者执行命令行的时候SSH可以自动进行用户名,密码的对应。
(3)对于Linux复制的id_rsa.pub.git添加到.ssh/authorzied_keys文件里

authorized_keys的权限要是600
(4)对于Windows,则需要把id_rsa这个文件拷贝下来,然后使用TortoiseGit自带的Puttygen转换为被TortoiseGit支持的.ppk文件。

点击"Conversions"菜单中的"Import key"选项,然后导入我们下载到的id_rsa

PuttyKeyGeneratorImportKey

导入后,

SavePPK

由于Puttygen的BUG,导致如果直接点击"Save private key",会导致生产的Public key是不正确的,因此,需要先点击"Save public key",保存为文件后,无视这个文件即可。然后接下来点击"Save private key"按钮,保存为.ppk文件,这个PPK文件才是我们需要的。

(5)修改SSHD的配置文件/etc/ssh/sshd_config
找到

这句,然后去掉注释。然后重启SSH服务

(6)修改登录认证文件,把认证信息导入到需要认证的用户目录下的.ssh/authorized_keys文件中。

以上面添加的用户git为例子,通过命令:

可以看到输出如下信息:

从而找到用户git的工作目录在/share目录下面.

因此执行如下命令:

接下来,需要修改authorized_keys的所有者为用户git,否则git无法通过这个文件进行认证。

而对于管理员root而言,我们不需要执行拷贝操作,只需要修改一下SSH的配置文件,并且执行如下命令即可:

(7)Putty设置使用PPK文件进行登陆认证

左侧栏中选择Connection->SSH->Auth:

LoginPPK
然后点击左侧栏中的Session,点击Save保存设置,然后点击Open连接服务器。
SaveSession

(8)登陆时候,还是需要输入用户名的,因为Ubuntu服务器需要根据用户名来核查证书。输入用户名后,直接回车,会发现不需要再输入密码,就直接登陆了。

putty-7

Ubuntu 12.04安装Jetty

1. 如果没有装JDK的话,安装OpenJDK

2. 安装Jetty,Ubuntu软件源里的是Jetty6

3. 配置Jetty,修改Jetty默认配置文件

然后把

改为

再设置JDK目录

4. 启动Jetty

5. 测试,在浏览器地址栏中输入

http://localhost:8080

Jetty的端口在/etc/default/jetty中也可以设置

参考链接 Ubuntu 12.04安装Jetty