月度归档:2015年06月

在Ubuntu服务器上部署一个网站(Apache2)

服务器环境:Ubuntu 15.04 x64    权限:root

1、安装Apache2

~# apt-get install apache2

安装完成后,得到一下几个文件夹:

网站默认目录:

/var/www/    #如果部署多个网站则在此目录下新建子目录
/var/www/html/    #网站默认根目录

Apache2配置目录:

/etc/apache2/
/etc/apache2/mods-available
/etc/apache2/mods-enable
/etc/apache2/sites-available
/etc/apache2/sites-enable

此时访问localhost(或者直接在外部用IP访问)可以看到It Works!的提示页面

2、网站部署(tool.zivers.com)

在解析商处添加A解析到服务器IP地址

在网站默认目录www/下新建文件夹,例如tool.zivers.com

~# cd /var/www/
~# mkdir tool.zivers.com

在Apache的配置目录下的sites-available目录下加入新网站的配置信息,此处可以借鉴Apache2的默认配置:

~# cd /etc/apache2/sites-available
~# cp 000-default.conf tool.zivers.com.conf

修改conf:

~# vi tool.zivers.com.conf

将网站信息改为新网站信息:

ServerName tool.zivers.com
DocumentRoot /var/www/tool.zivers.com

切换到sites-enabled目录,创建软链接启用网站

~# cd ../sites-enabled
~# ln -s ../sites-available/tool.zivers.com.conf tool.zivers.com.conf

重启Apache2

~# service apache2 restart

此时tool.zivers.com已经可以访问

3、开启rewrite-mod和AllowOverride

部分网站系统,例如Wordpress,需要开启rewrite功能,这里一并描述

进入mods-enabled目录,创建软链接启用rewrite-mod

~# cd /etc/apache2/mods-enabled
~# ln -s ../mods-available/rewrite.load rewrite.load

在需要开启AllowOverride的网站中写入配置信息

~# vi /etc/apache2/sites-available/tool.zivers.com

加入AllowOverride属性

<Directory /var/www/tool.zivers.com>
    Options Indexes FollowSymLinks MultiViews
    AllowOverride All
    Order allow,deny
    allow from all
</Directory>

WordPress提示“建立数据库连接时出错”解决办法

今早起来看自己的网站,突然发现网站崩了,提示只有一行:建立数据库连接时出错。搜索了以下并解决了。具体过程如下:

先重启mysql,确定不是因为没有启动mysql进程导致

~# service mysql start

重启后如果网站正常了,那不妨添加一个mysql服务的开机启动

~# update-rc.d -f mysql defaults

如果不是进程未启动,那一般就是wp_option这张表损坏了,需要修复。于是我登录phpMyAdmin想要修复这张表,结果phpMyAdmin也无法登录了,错误号#2002。解决这个错误并不复杂,进入phpMyAdmin目录,修改配置文件:

~# cd /usr/share/phpmyadmin/
~# vi config.inc.php

$cfg['Servers'][$i]['host'] = 'localhost';

改为

$cfg['Servers'][$i]['host'] = '127.0.0.1';

重启mysql服务,刷新phpMyAdmin页面。

这时候就可以进入phpMyAdmin对数据库进行管理了,找到wp_option这张表,勾选,并选择”修复表“,执行完后,重新访问网站。修复完成~

使用awk命令打印九九乘法表

神TM的awk!

[root@localhost ~]# awk 'BEGIN{for(i=1;i<10;i++) {for(j=1;j<=i;j++) {printf "%d%s%d%s%d\t",j,"*",i,"=",i*j;}printf "\n"}}'
1*1=1
1*2=2   2*2=4
1*3=3   2*3=6   3*3=9
1*4=4   2*4=8   3*4=12  4*4=16
1*5=5   2*5=10  3*5=15  4*5=20  5*5=25
1*6=6   2*6=12  3*6=18  4*6=24  5*6=30  6*6=36
1*7=7   2*7=14  3*7=21  4*7=28  5*7=35  6*7=42  7*7=49
1*8=8   2*8=16  3*8=24  4*8=32  5*8=40  6*8=48  7*8=56  8*8=64
1*9=9   2*9=18  3*9=27  4*9=36  5*9=45  6*9=54  7*9=63  8*9=72  9*9=81

其实也还好,就是用bash写了个双循环而已