折腾 Ubuntu 服务器手记


发布于

|

分类

折腾Ubuntu服务器手记

Background and 悲剧Ground

由于实在厌烦了服务器每天被攻击、一星期就得重启一次、远程连接莫名其妙连不上、apache莫名其妙不能提供服务、用户帐户里面发现5个隐藏账户、一直出现 Findpassword 之类的软件和 nc.exe 这样的知名软件,一怒之下把服务器做成了Ubuntu。

Why Ubuntu ?

当时在和丁延鹏商量,用什么 Linux 。首选肯定是 Cent OS 了,有图形界面,各种支持也都不错。然后就在他的虚拟机上安了一个。默认安装方式下来——没桌面……

那好,重新安一下吧。选择“带有桌面环境的Web服务器”。20分钟,好了。进入系统,没有发现Apache、Mysql……败了……(我可不想自己安装然后再配置……我懒……)

然后就下载了 Ubuntu 14.04 LTS 。 这次竟然是 LTS 。记得上一个 LTS 是 12.04 吧。一路比较顺利。而且我也知道 Ubuntu 安出来没桌面环境——去年就做过这方面的铺垫了。只是当时 VNC 一直搞不定,于是就放弃了。

虚拟机测试正常,就去服务器那儿安装了。

Install

制作了启动U盘。插上去……嘀~ Windows Server 2003正在启动……

不对啊~换到自己的笔记本上试试? Ubuntu Installer ……

难道是启动U盘有问题?换个格式写入,USB-ZIP+ 还是不行。

逼我去买CD的节奏啊这是……幸好一个 Ubuntu Server 的大小是500MB,不像 Ubuntu Desktop 那样一张 CD 刚刚好刻录不下。

刻录好,放进CD,立刻熟悉的 Installer 展现在眼前。

使用整个磁盘。由于不知道下面的几个选项都是啥意思,又懒得自己分区,所以选择这个。

后面……检测网络的时候按ESC,手动配置网络。

再后面……选择安装什么组件。SSH肯定是需要的了,然后Lamp,然后没了。一是用不到,二是不会配置。

Over。

一看能启动了,能登录了,走人。网络中心里面快动成冰棍了。

Configuration

网站

回去下了PuTTy和Filezilla。

PuTTy连接。首先 apt-get update,然后apt-get upgrade。由于是教育网,速度不错。

apt-get install unzip zip wget rsync 7z 7zip unrar vsftpd

然后就是上传个demo页面进去。 /var/www竟然没有权限。sudo chmod -Rf 777 www或者sudo chowm -Rf me:me www就好了。实在不忍心给777权限。上传个PhpMyAdmin先,毕竟喜欢图形。

Ubuntu 下 Apache启用/禁用配置文件的方法如下表:

项目 语法
启用模块 a2enmod XXX
禁用模块 a2dismod XXX
启用站点 a2ensite XXX
禁用站点 a2dissite XXX
启用配置文件 a2enconf XXX
禁用配置文件 a2disconf XXX

很方便是吧。实际上它是做了 XX-available 到 XX-enabled 的一个软连接。自己写也可以。看喜好。

做完这些之后,service apache2 reload或者servica apache2 restart都可以。restart可能造成外网访问突然中断一下……但是好像比较彻底吧,各种错误Restart的时候都能检测出来。

去配置/etc/apache2/apache2.conf。好像没有什么要配置的。

去配置 etv/apache2/conf-available/security.conf。设置如下:

项目
ServerTokens Prod
ServerSignature Off

去配置 /etc/apache2/conf-available/charset.conf。写上AddDefaultCharset UTF-8,保存退出。

/etc/apache2/sites-available 写一份模板出来:

# <Directory /var/www/Example >
#             Options FollowSymLinks
#             AllowOverride All
#             Require all granted
# </Directory>
<VirtualHost *:80>

        ServerName www.example.com
        # ServerAdmin [email protected]
        DocumentRoot /var/www/Example

        # ErrorLog ${APACHE_LOG_DIR}/error_Example.log
        # CustomLog ${APACHE_LOG_DIR}/access_Example.log combined

        <Directory /var/www/Example >
            Options FollowSymLinks
            AllowOverride All
        </Directory>

</VirtualHost>

上面那个Directory是为了避免以后将网站数据放在其他地方导致Apache不能访问(403)。

MySQL

默认的MySQL是不能远程访问的,即使你新建一个%的用户也不行。

需要修改 /etc/mysql/my.cnf,找到bind-address,后面的值改成本机IP即可。

FTP

上面用apt-get install vsftpd安装了vsftpd了,下面看一下是否在监听21端口。

查看端口占用 netstat -nat
查看vsFTPd状态 ps -ef |grep vsftpd

开启本地登录,开启本地用户写入,开启监牢,关闭匿名登录。

service vshttpd restart

有了这些就好办了。useradd XXX,新建用户,在 /home/XXX里面新建 www文件夹,当作这个用户的网站文件夹。

当然,更推荐的是adduser XXX的方式然后手动给他创建home。 adduser出来的用户是个“三无”用户,感觉更安全一点。当然,用useradd方便。

设置/home/xxx的权限为655,不用递归。

新建一个www文件夹存放这个用户的网站。权限任意。

然后,为了让这些“准FTP用户”只能登录FTP不能登陆ssh,需要用usermod -s /sbin/nologin ExampleUser来不准他登陆。但这样会导致ftp也无法登录。

这时候需要这样做: sudo vi /etc/shells,然后添加/usr/bin/nologin。Over。

上传一大堆网站数据……建议打包上传然后用命令解压。会快一点。或者,上传个php在线解压的东西也很方便。

复制Vhosts模板文件,稍加修改,然后a2ensite XXX,一个站点就启用了。

其他小设置

安装桌面:

sudo apt-get install –no-install-recommends ubuntu-desktop

下面的远程桌面服务我没成功过。就不写了。

后记

看着简单是吧?整整一个星期。

首先是权限。权限折腾了三天,终于理清思路了。

然后是FTP的问题。归根到底还是权限的问题。实在没办法,开启监牢,禁止ssh,Over。花了三天。

无数次尝试sudo,无数次尝试chmod,chown,ll。

BTW:这些命令都是刚刚学会的。

我,一个轻度使用Ubuntu四年,只会使用 apt-get 的人。正式使用Ubuntu是这个暑假,发上一个“在Ubuntu里安装Theano和CUDA”博文的时候。vim是那天中午在高中机房里面看了半小时学会的,能当记事本用了。其他的,都是临时找的。

给网络中心一同学说想把服务器换成Linux,“吓死我了,有人敢挑战linux,大神……”

在群里面问如何设置,直接被骂死:“擦擦什么都不会还敢实体配置Ubuntu Server?是不是以后所有命令都需要我一个一个教你?”

是的,就是这么不靠谱。

总之,一星期,忙碌、纠结、快乐。


评论

  1. liu 的头像

    hen hao hen qiang da!!!

  2. php程序员 的头像

    页面好像都看不见文字。

    1. 小金鱼儿 的头像
      小金鱼儿

      那是因为Google字体的原因。。。。现在没时间换主题,等等,等等。。。

  3. LL 的头像
    LL

    看看头像在不在

  4. leisure 的头像
    leisure

    …两个小时前还不能访问。。

    二级域名映射虚拟目录的配置有空了给分享一下 。。。

回复 liu 取消回复

您的电子邮箱地址不会被公开。 必填项已用*标注