2013年7月

昨天,Apache发布了其2.0系列的最后一个新版本,这距2010/10/18上一次更新2.0.64后,将近三年没发布新的版本了。

这次更新,将是2.0系列最后一次错误和安全漏洞的更新。更新虽然包括了很多错误和安全漏洞的修正,但是并没有完全解决当前的2.4和旧的2.2中发现的全部问题。

本次更新建议所有还在使用2.0系列Apache的用户都更新,或者,建议升级到2.4。

主要的更新内容如下:

  • CVE-2013-1862: mod\_rewrite: 确保客户端写入RewriteLog的数据被正确转义,防止直接放入终端转义码。
  • CVE-2012-0053: 修正了当没有定制的400错误页面时,对httpOnly的cookie的处理。
  • CVE-2012-0031: 修正了计分板错误,它会导致关机时无特权子进程终止导致父进程崩溃的问题。
  • CVE-2011-3368: 拒绝不符合HTTP规范的请求,以防止一些特定的反向代理带来的问题。
  • CVE-2011-3192: core: 修正断点请求的处理以使用更少内存。如果请求的字节范围超过了原文件大小,忽略范围参数,直接发送完整的文件。
  • CVE-2011-3607: 修正 ap\_pregsub() 中的整形溢出,当激活 mod\_setenvif 时,它可能会导致本地用户通过.htaccess获取到权限。
    注意:使用精心构造的.htaccess文件仍然有可能耗尽所有内存,这个问题不会在2.0中得到解决。允许root处理不可信用户的.htaccess本身就是一种安全风险。建议升级到2.2.25及更高版本解决这个问题。

通过下述链接下载:http://httpd.apache.org/download.cgi

完整的修正内容参见: http://www.apache.org/dist/httpd/CHANGES_2.0

安全漏洞方面说明:http://httpd.apache.org/security/vulnerabilities_20.html

最近在玩一个网络游戏,那个游戏里每天固定的时间会有固定的事件发生,所以我一定要在固定的时间上线,要不就错过了那些发生的时间了。所以我需要一个能定时提醒我的闹钟,当然了,是在电脑上的,我可不想在手机上弄好多个闹钟让它定时响。

在 windows 下,我搜了无数次,也试用了很多个说是具有这样功能的软件可是就是不成,我也用过 Outlook 的日程功能,和 OneNote 的提醒,哎,就别提了,就没有一个能简简单单的完成我想要的功能的。我就需要一个能每天多个不同时段提醒我的钟表而已。

好在我还同时使用 Ubuntu ,使用 Ubuntu 就简单了,打开 Ubuntu 软件中心,在搜索框中输入 "alarm clock" 好了, 你会看到下面的软件列表:

我们要安装的就是那个评价最多的那个 alarm-clock-applet 。好了,点击它的名字展开它,并在展开的区域中点击“安装”按钮。

软件很小,很快就安装完成了。好了,在桌面的左侧寻找软件的图标,点击打开它。

相信对于这样一个界面,我不用说太多,大家也都知道怎么使用了,点击那个大大的 + 号图标。

给你的一个闹钟起个名字,然后设置时间,重复,对重复是我需要的,我需要每天都提醒我,我就是要这个功能,周一到周日全都要。设置一个我喜欢的铃声。嗯,下面的启动程序是什么意思?嗯,我也不知道,不管它了,点击关闭。

好了,我的一个时钟已经设置完毕,我还需要第二个,三个,四个……

嗯,差不多了,每天的固定时段都设置出来了。嗯,怎么感觉时间有点怪怪的,哦,我的系统时间有问题,我调调,嗯,怎么,还觉得怪怪的,哦,它用的是倒计时的时间。好了,现在就等着固定时段到了以后它在哪里叫了。

已同步至 linux的微博

Tmux 是一个 C 语言编写的终端,它能够在单一窗口中同时访问和控制多个终端。它是一个类似于 GNU Screen 的工具。使用它,用户可以在 Linux 系统上管理多个任务和命令行程序,而不用同时打开多个终端窗口,Tmux 还可以切换到后台在需要的时候在调用到前台来。

在 Debian 和 Ubuntu 下安装 Tmux 的命令:

sk@sk:~$ sudo apt-get install tmux

在 CentOS 和 RHEL 中,它不存在于官方的软件源中,所以需要添加 EPEL 库。添加命令:

[root@server ~]# rpm -ivh http://dl.fedoraproject.org/pub/epel/6/i386/epel-release-6-8.noarch.rpm

添加完毕后,可以用下面的命令来安装它:

[root@server ~]# yum install tmux

安装完毕后,只需要执行如下命令就可以使用它了:

[root@server ~]# tmux

执行这个命令后,您将会被转移到 Tmux 的会话中。转移到会话中后,您需要先按下 Ctrl+B 才能执行其他的命令。您可以先按下 Ctrl+B 后按 "?" 来查看所有支持的命令。

https://img.linux.net.cn/data/attachment/album/201307/01/220317dodu2dvgugddgdib.png

建立一个新 Tmux 会话命令:

先按下 Ctrl+B 后在按下 "c",您将建立一个新的会话。

https://img.linux.net.cn/data/attachment/album/201307/01/220318tiqeu0a5shiksz7x.png

在新的会话界面,您可以在底部看到绿色的 Tmux 会话记录,* 号标记的会话表示当前的会话。

您可以在所列出的会话之间切换,按下 Ctrl+B 然后在按 "w",然后使用箭头来移动到你需要的会话,然后在回车,就可以切换到相应的会话中。如果要退出当前的会话,只需要键入"exit"命令即可。

https://img.linux.net.cn/data/attachment/album/201307/01/220319wqm3nwoqe7jmupom.png

如果您想拆分两个会话窗口,可以按下 Ctrl+B 后在按下 "%" 来实现。

https://img.linux.net.cn/data/attachment/album/201307/01/220321bb1trtd82bzqd6ft.png

要从会话脱离,可以按下 Ctrl+B 后接着按 "d" 。将脱离所有的会话返回原来的终端屏幕。

如果要恢复脱离的会话,您可以输入如下命令来恢复:

[root@server ~]# tmux attach

这样,你将恢复链接到原来的会话中。

更详细的使用命令,可以查看 Tmux 的 man 来得到。

[root@server ~]# man tmux

试试这个工具吧。

LAMP 是服务器系统中开源软件的一个完美组合。它是 Linux 、Apache HTTP 服务器、MySQL 数据库、PHP(或者 Perl、Python)的第一个字母的缩写代码。对于很多系统管理员来说安装 LAMP 除了是必备的技能外,都已经具有驾轻就熟的操作他们的能力了。不过新手们通常希望有没完没了的这方面的教程来告诉自己怎么做,下面我就和大家说说我的方法步骤。

LAMP 是服务器系统中开源软件的一个完美组合。它是 Linux 、Apache HTTP 服务器、MySQL 数据库、PHP(或者 Perl、Python)的第一个字母的缩写代码。对于很多系统管理员来说安装 LAMP 除了是必备的技能外,都已经具有驾轻就熟的操作他们的能力了。不过新手们通常希望有没完没了的这方面的教程来告诉自己怎么做,下面我就和大家说说我的方法步骤。

现在,很多时候我们需要用 MariaDB 来代替 MySQL 了。在这里我会告诉大家 MariaDB 的安装过程。

我的测试主机名为:server.linux.cn,测试 IP 地址为:192.168.1.200/24

安装 Apache

Apache 是​​一个开源的跨平台的 Web 服务器。它提供了一个全方位的 Web 服务器功能,包括CGI,SSL 和virtual domains (虚拟域)。

安装命令非常简单,只需要打开一个终端,在终端中输入如下命令:

[root@server ~]# yum install httpd -y

安装完毕后,需要设置让 Apache 服务启动,并且在每次服务器重启的时候都自动启动,输入如下命令来完成:

[root@server ~]# /etc/init.d/httpd start
[root@server ~]# chkconfig httpd on

如果您想通过您的防火墙活路由器来远程连接,那么需要允许 Apache 服务接管服务器的 80 端口:

[root@server ~]# vi /etc/sysconfig/iptables
[...]
-A INPUT -p udp -m state --state NEW --dport 80 -j ACCEPT
-A INPUT -p tcp -m state --state NEW --dport 80 -j ACCEPT
[...]

重新启动 iptables :

[root@server ~]# /etc/init.d/iptables restart

打开您的浏览器访问 http://localhost/ 或者 http://server-ip-address/ 测试 Apache 安装是否成功。

[
点击查看原始大图](https://img.linux.net.cn/data/attachment/album/201307/01/000741vj5w5u6lvmvz2m53.png)

安装 MariaDB

MariaDB 是一个替换 MySQL 的产品。功能强大而可靠。安装前,如果您的服务器中安装有 MySQL ,那么您需要删除它。删除命令:

[root@server ~]# yum remove mysql* mysql-server mysql-devel mysql-libs

为了让 MariaDB 同时兼容 MySQL,我们需要安装 REMI 库来解决兼容性和安装 MariaDB 时软件包依赖性问题。安装命令:

[root@server ~]# rpm -ivh http://rpms.famillecollet.com/enterprise/remi-release-6.rpm

安装兼容 mysql55 包命令:

[root@server ~]# yum --enablerepo=remi-test --disablerepo=remi install compat-mysql55

为 MariaDB 创建一个 repository 文件,并在其中输入如下代码:

32 位系统:

[root@server ~]# vi /etc/yum.repos.d/mariadb.repo

MariaDB 5.5 CentOS repository list - created 2013-06-06 07:42 UTC

http://mariadb.org/mariadb/repositories/

[mariadb]
name = MariaDB
baseurl = http://yum.mariadb.org/5.5/centos6-x86
gpgkey=https://yum.mariadb.org/RPM-GPG-KEY-MariaDB
gpgcheck=1

64 位系统:

[root@server ~]# vi /etc/yum.repos.d/mariadb.repo

MariaDB 5.5 CentOS repository list - created 2013-06-06 07:53 UTC

http://mariadb.org/mariadb/repositories/

[mariadb]
name = MariaDB
baseurl = http://yum.mariadb.org/5.5/centos6-amd64
gpgkey=https://yum.mariadb.org/RPM-GPG-KEY-MariaDB
gpgcheck=1

保存并退出该文件,并运行 yum update 命令:

[root@server ~]# yum update

现在开始安装 MariaDB :

[root@server ~]# yum install MariaDB-devel MariaDB-client MariaDB-server -y

安装完毕后,启动 MariaDB 服务,并让它在每次重启服务器后自动启动。

[root@server ~]# /etc/init.d/mysql start
Starting MySQL... SUCCESS!
[root@server ~]# chkconfig mysql on

为 MySQL 的 root 设置密码,默认情况下,MySWL root 密码是空的。为了防止未经授权的用户访问 MySQL 我们需要设置 root 用户密码:

[root@server ~]# /usr/bin/mysql\_secure\_installation
/usr/bin/mysql\_secure\_installation: line 379: find\_mysql\_client: command not found

NOTE: RUNNING ALL PARTS OF THIS SCRIPT IS RECOMMENDED FOR ALL MariaDB
SERVERS IN PRODUCTION USE! PLEASE READ EACH STEP CAREFULLY!

In order to log into MariaDB to secure it, we'll need the current
password for the root user. If you've just installed MariaDB, and
you haven't set the root password yet, the password will be blank,
so you should just press enter here.

Enter current password for root (enter for none):
OK, successfully used password, moving on...

Setting the root password ensures that nobody can log into the MariaDB
root user without the proper authorisation.

You already have a root password set, so you can safely answer 'n'.

Change the root password? [Y/n] y
New password:
Re-enter new password:
Password updated successfully!
Reloading privilege tables..
... Success!

By default, a MariaDB installation has an anonymous user, allowing anyone
to log into MariaDB without having to have a user account created for
them. This is intended only for testing, and to make the installation
go a bit smoother. You should remove them before moving into a
production environment.

Remove anonymous users? [Y/n]
... Success!

Normally, root should only be allowed to connect from 'localhost'. This
ensures that someone cannot guess at the root password from the network.

Disallow root login remotely? [Y/n]
... Success!

By default, MariaDB comes with a database named 'test' that anyone can
access. This is also intended only for testing, and should be removed
before moving into a production environment.

Remove test database and access to it? [Y/n]

  • Dropping test database...

ERROR 1008 (HY000) at line 1: Can't drop database 'test'; database doesn't exist
... Failed! Not critical, keep moving...

  • Removing privileges on test database...
    ... Success!

Reloading the privilege tables will ensure that all changes made so far
will take effect immediately.

Reload privilege tables now? [Y/n]
... Success!

Cleaning up...

All done! If you've completed all of the above steps, your MariaDB
installation should now be secure.

Thanks for using MariaDB!

安装 PHP

PHP(PHP 是:Hypertext Preprocessor 的缩写)是一种广泛使用的开放源码的通用脚本语言,适合于 Web 开发,可嵌入到 HTML 中。

安装 PHP 命令:

[root@server ~]# yum install php -y

创建一个的 “testphp.php” 的文件在 Apache 的文档根目录文件夹,在其中如入如下代码。命令:

[root@server ~]# vi /var/www/html/testphp.php
phpinfo();
?>

重新启动 httpd 服务:

[root@server ~]# /etc/init.d/httpd restart

用浏览器打开 http://server-ip-address/testphp.php 。它会显示关于 PHP 的详细信息,比如版本,建立日期等。

[
点击查看原始大图](https://img.linux.net.cn/data/attachment/album/201307/01/000744ov9lcv692nb6ilui.png)

如果您需要安装所有的 PHP 模块,可以输入 yum install php* -y 来安装,安装完毕后重启 httpd 服务。重启服务后,您可以用浏览器打开 http://server-ip-address/testphp.php 来查看您刚才安装的模块情况。

安装 nstall phpMyAdmi

根据您的情况来选择是否安装 nstall phpMyAdmin 。

phpMyAdmin 是一个免费开源的 MySQL 管理工具。默认情况下 CentOS/RHEL/Scientific Linux 官方库中没有 phpMyAdmin。所以我们需要从 EPEL 库中安装。

首先,我们需要添加 EPEL 库:

[root@server ~]# rpm -ivh http://dl.fedoraproject.org/pub/epel/6/i386/epel-release-6-8.noarch.rpm

现在我们可以安装 phpMyAdmin 了。安装命令:

[root@server ~]# yum install phpmyadmin -y

安装完毕后,我们需要配置的 phpMyAdmin。打开 phpmyadmin.conf 的文件。查找以“<Directory” 开头到 包含的部分,如下命令所示:

[root@server ~]# vi /etc/httpd/conf.d/phpMyAdmin.conf

Alias /phpMyAdmin /usr/share/phpMyAdmin
Alias /phpmyadmin /usr/share/phpMyAdmin

Comment the following Section

Apache 2.4

Require ip 127.0.0.1

Require ip ::1

Apache 2.2

Order Deny,Allow

Deny from All

Allow from 127.0.0.1

Allow from ::1

打开 config.inc.php 文件,将 cookie 改为 http。

[root@server ~]# cp /usr/share/phpMyAdmin/config.sample.inc.php /usr/share/phpMyAdmin/config.inc.php
[root@server ~]# vi /usr/share/phpMyAdmin/config.inc.php
[...]
/* Authentication type */
$cfg['Servers'][$i]['auth\_type'] = 'http';
[...]

重新启动 Apache 服务:

[root@server ~]# /etc/init.d/httpd restart

现在,您可以访问 phpmyadmin 控制太来管理 MySQL 了。打开一个浏览器,访问:http://server-ip-address/phpmyadmin/ 。需要输入您的 MySQL 用户名和密码,如果您按前面的步骤设置了密码的话。我设置的是 “root” 和 “centOS”。

[
点击查看原始大图](https://img.linux.net.cn/data/attachment/album/201307/01/000746ha6gi1gahyjygjeh.png)

您将被重定向到 phpMyAdmin 的 Web 主界面:

[
点击查看原始大图](https://img.linux.net.cn/data/attachment/album/201307/01/000749sda7a7f6d6ujtdfj.png)

现在,您能够通过 phpMyAdmin 管理您的 MariaDB 数据库了。

好了,您的 LAMP 服务器已经安装完毕并运行起来了。