Author: 芳草苑主

  • How to install VMware Server 2 on Fedora 11

    不知道为什么,Fedora 11 自带的 Virtualization Qemu 在我的 Home PC 上就是跑不起来,具体表现是无法添加 guest OS,如 Fedora as guest OS,则在划分磁盘分区时停留不前;如 Ubuntu as guest OS,则在选择语言后就没有下一屏;如 Windows XP as guest OS,则在安装开始后1分钟内随即重启。同样是 Fedora 11 Qemu 在我的 Office PC 上就没问题。难道是因为我的 Home PC 硬件太先进了,跟 Fedora 11 不兼容?

    我还是想回头使用 VMware Server,一直以来我都是用 VMware Server 做虚拟机的,感觉不错。但是为了在 Fedora 11 安装 VMware Server 2.0.1,竟折腾了我一周。主因是 Fedora 11 的内核版本 2.6.29.4,暂未得到 VMware Server 支持。Fedora 和 VMware community 里针对这个新核心的讨论有若干,其中已有人指出正解,可惜我理解错了,依样画瓢却总是画不出,于是跟正解檫肩而过又去求其他方案。

    等我醒悟过来已是一周以后,总算把 VMware Server 2.0.1 装在了 Fedora 11 里,其实过程并不复杂。

    1. 下载 VMware-server-2.0.1-156745.x86_64.tar.gz,不能用 rpm 来安装。
    2. 解压到 vmware-server-distrib 目录
    3. 再下载一个补丁 vmware-server-modules-2629.tar.gz(网上到处有,我就不提供下载了)
    4. 解压出补丁里的 4 个 tar 文件覆盖 vmware-server-distrib/lib/modules/source/ 里的原文件
    5. 运行 vmware-install.pl 安装
  • Microsoft wireless desktop 1000 plug and play on Fedora 11

    Fedora 11 使用起来还有很多不便,比如 vmware server 2 不能按默认方式安装,可能是 Fedora 11 使用的核心还不受 vmware server 2支持;再比如 windows 用得很顺手的 7zip 在 Linux 下还没有 GUI,搞得处理 rar 文件很费时(不过,从此不使用 rar 麻烦就没有了);再比如 file-roller 据说支持 rar,但在我的 Fedora 11 就是打不开,可能还是因为核心太新。

    不过,Fedora 11 给的更多是惊喜,比如,接上 Microsoft wireless desktop 1000以后,我还盘算着去哪里可以去找 driver for Linux,没想一动键鼠,发现已经有响应了,原来微软的设备在 linux 还能即插即用。万一不能识别,我还真不知道上哪里找驱动。

  • vnc vs vino

    我刚刚弄明白,Fedora 有两种远程桌面:VNC 和 Vino,软件包的名称分别是:

    • 服务器端:vnc-server & vino
    • 客户端:vnc & vinagre

    有关 VNC 的介绍很多,以致把 Vino 都湮没了。Vino 随着 GNOME 而来,菜单项的名称就叫 Remote Desktop。我找了一会,没找到 Vino 的配置文件是哪个。如果只有图形界面,我反而会觉得不方便。而且 Vino 使用 5901 端口,我也没找到什么方法修改。

    启用 Vino 后,/etc/sysconfig/vncservers 里就无法使用 Display 1 了,5901 端口被用掉了嘛。这么启动 vncserver 会报错,“A VNC server is already running as :1”。

    VNC 和 Vino 有两大不同。

    1. VNC 进入的虚拟桌面,Vino 进入的是桌面 Session(不知道这样表达妥不妥当?)
    2. VNC 必须设置 password (by running vncpasswd),Vino 则可以不设密码。
  • Easiest way to install Flash Player in Fedora

    Fedora 发行时不带 Flash Player,因为 Fedora 说 Flash is not free。我没去仔细研究这句话的意思,大概是指生成 Flash 的软件不免费吧。我也不喜欢 Flash,但是有那么多的资源得用 Flash Player。虽然 Fedora 推荐了两款 Open Source Flash Player,但播放时还是有七七八八的问题。除非大家都不用 Adobe Flash 制作 Flash,否则我还是离不开 Adobe Flash Player。

    因此,面对现实,怎么在 Fedora Firefox 下安装 Fedora 最简单?今天发现一法,一分钟内搞掂,笔记如下:

    1. 从 http://labs.adobe.com/downloads/flashplayer10.html 下载一个压缩包。
    2. 解压其中的 so 文件 放到 /usr/lib64/mozilla/plugins
    3. 在终端中运行 mozilla-plugin-config -i -g -v
  • Fedora LiveCD installation is not perfect

    Fedora 各版本都制作了 LiveCD, installation DVD, installation CD 等形式方便用户下载。刚接触 Fedora 时,我很难决定该选哪个来下载。既然 Fedora 把 LiveCD 放在下载首页,我就下载来刻成 CD。我用这张 CD 装了好几台机器,主要是用作文件服务器或 local dns 服务器或后备 http 服务器,都没有发现大的问题。在 intel 845 芯片安装过程中遇到困难,但也被我克服了。

    直到最近我用这张 CD 安装了我的 desktop,用了几天,日常使用没有什么问题,但虚拟机总是启动不了。VMWare 的虚拟客户端都是启动到 95% 时报错,Fedora 自带的 xen 或 qemu 也总是连接不上。我查来查去查不出毛病,最后一个指令 remove kernel-xen 就让 Fedora 彻底瘫痪(启动出现 Error 5)。

    我在尝试修复 Fedora 时查阅了很多论坛,我的最后结论是:LiveCD 不适合用来安装,虽然它可以 install to harddisk。我曾认为 LiveCD 和 installation DVD 或 CD 装出来的系统是一样的,但以我的实际情况结合其他人反映的情况(特别相似的一例是有人说用 ubuntu desktop cd 安装后 VMWare 虚拟机启动到95%时出错,改用 ubuntu server cd 安装后问题消除),我再不会用 LiveCD 来装机。

    顺便提一下,LiveCD 对初次接触 Fedora、想先评估后安装的用户确实是个不错的选择。我的系统瘫痪以后,我一时没有找到拯救硬盘文件的最佳途径,就只好用 LiveCD 在无硬盘的条件下工作了两天半,它也出色地帮我完成了两天半的任务。当然还得感谢网络化的办公环境——邮件全在服务器上,文件也在服务器上,真的很少用到本地硬盘了。只是 dns lookup 比较慢,几乎每次访问都要重新 lookup,估计 LiveCD 考虑到内存有限,不缓存 dns lookup result?我用本地另一台已启用 dnsmasq 的机器为我作 dns 代理,这样 LiveCD 访问 internet 速度就正常了。

    回过头来看 Fedora,为什么 Fedora 把 LiveCD 高高推荐在下载的首页?我觉得没有必要,除非 Fedora 对自己没有信心,才拼命拉拢用户来试用(Fedora 应该早就过了这个苦命的阶段了吧)。我没有试过用 Fedora installation DVD 去安装 intel 845 芯片的机子, 我猜 Fedora installation DVD 不会有显卡驱动的问题。现在我也理解了为什么没有 rescue mode、为什么 grub linux 命令无效,因为这些都是 LiveCD 没有的。Fedora 对 LiveCD 的下载用户警告不足,为此走了一圈弯路的用户应该不止我一个吧。

  • How slow is MyBookWorld

    以前只是觉得 MyBookWorld 慢,但也没关心究竟有多慢,今天实测了一下,单个大文件读速率 4.9 MB/s,写速率 3.8 MB/s。这么糟糕的成绩,大概得归咎于 CPU 能力太差。我测的是 MyBookWorld I 版,不知带 Raid 双硬盘配置的 MyBookWorld II 是否使用了更好的芯片,如果同种芯片,II 版不会有比 I 版更好的成绩。

  • Difference of try_files to rewrite in Nginx

    try_files 是 Nginx 自0.6.36 新增的 directive。通常对 try_files 的理解是——它是
    if (!-e $request_filename) {
    rewrite .* /index.php;
    }

    的更简洁的表达。但我发现它们之间还是略有区别,主要表现在两点:

    1. 如使用 rewrite,Nginx 要求 document_root 下必须有一个 index 文件,即使我把另一个目录别名整个 document_root,但因为 Nginx 先校验 document_root 下是否有一个 index 文件,所以得放置一个空 index 文件。try_files 则没有 index 文件校验,直接去第二、第三… document_root 找对应的文件。
    2. 如使用 try_files $uri $uri/ /index.php,index.php 不能取得 get 变量,例如在 Magento 下,对 http://mydomain/catalogname?mode=list 的访问不能起效,Nginx 交付的页面是 http://mydomain/catalogname。这时必须使用 rewrite。这或许是 try_files 的一个 bug。
  • Nice looking wqy fonts

    装 Fedora 时我选 locale 是 United Kingdom,所以中文字体没有装。但能读中文,也能输入中文,大概得感谢 utf-8 之类的标准。

    但英文 Fedora 显示中文的方式太别扭了,一句话里会夹杂几个字黑体,几个字宋体。我不理解为什么会这样,不研究了,用
    yum install wqy*

    把文泉驿字体装上就好看多了。

  • Linux talks to Linux using Windows languages

    MyBook World Edition 基于 Linux,却是面向 Windows 用户的产品。Linux 用户怎么访问它?我一时犯傻了。

    因为我早就破解了我的 MyBook World 的根密码,所以我首先想着用 root 身份、sftp 方式去访问 MyBook World。但是 Windows 用户上载到 MyBook World 的文件所有者是 www-data, root 上载上去的文件 www-data 不可写。我无从得知 www-data 的初始密码,否则我就用 www-data 身份、sftp 方式去访问 MyBook World。如果我强行修改 www-data 初始密码,万一把 MyBook World 搞瘫痪了,一个 network drive 只能当 external drive 用就不值了。

    好长时间以后才想到,Fedora 自带 Connect to server -> Windows share 就可以 samba client 去访问 MyBook World。Samba 本来就是为 Windows 和 Linux 之间的通讯开发的,但现在两台 Linux 的机器,因为要照顾到其他 Windows 用户,所以只能用 Samba 来对话。

    不管怎么说,问题解决了。只留下一个小小的问题—— Windows 下,\\ip address or netbios name 就可以看到所有的共享文件夹,在 Fedora 的 Connect to server -> Windows share 则必须把共享文件夹作为 share 的名字输入后才能连接,如果只输入 ip address or netbios name 则出现 Cannot display location “smb://ip address or netbios name/” ,no application is registered as handling this file. 那怎么查看所有共享文件夹?

  • Finetune 1and1 dedicated server with CentOS

    Although the start with 1&1 was not pleasant, I decided to stay with 1&1 and upgraded from a VPS to a dedicated server. (sadly, this VPS performance is much better than the dedicated server I got.) Now it is time to finetune it. The server came with CentOS, which is not my favourite, but it the best OS I can choose from the list.

    The first thing to do is

    yum update

    I am using Ngnix instead of Apache, so turn off pre-installed Apache. Better to do it as the first thing, as I did not aware that httpd is running which prevented nginx from starting and wasted a lot of time to find the reason.
    service httpd stop
    chkconfig --level 235 httpd off

    CentOS depository is missing lots of packages. I add two 3rd party repositories, epel (to get Nignx) and remi (to get the newest php 5.2.9).
    rpm -Uvh http://download.fedora.redhat.com/pub/epel/5Server/x86_64/epel-release-5-3.noarch.rpm
    rpm -Uvh http://rpms.famillecollet.com/enterprise/5/remi/x86_64/remi-release-5-7.el5.remi.noarch.rpm

    Because I use try_files directive quite often in nginx conf files, but try_files starts from nginx 0.6.36, I can not use nginx 0.6.35 in epel repository. Luckly, epel-testing repository has nginx 0.6.36.
    yum install nginx --enablerepo=epel-testing

    The following commands are straight-forward.
    yum install memcached
    chkconfig --level 235 memcached on

    yum install php-pecl-apc
    yum install phpMyAdmin
    yum install spawn-fcgi

    I encounted difficulty install vim. First try is using yum install vim. It works on other CentOS I installed, aslo works with CentOS on 1&1 VPS, but just does not work on this 1&1 dedicated server. I do not know why. Nevertheless, the below listed command works.
    yum install vim-enhanced

    Because magento requires php 5.2.0 or above, but CentOS current php version is 5.1.6, it must be updated.
    yum update php --enablerepo=remi

    I saw some file conflicts from some mysql packages. To solve this problem,
    cd /var/cache/yum/remi/packages
    rpm -Uvh --force mysql<tab>

    <tab> will automatically fill in the package file name.

    mysql was up and running, but 1&1 did not tell me how to log into it. It took me a couple of hours to try different combinations of possible usernames and passwords before I gave up. Then I stopped mysqld, restarted it with
    mysqld_safe --skip-grant-tables

    Then I could go to user table in mysql database to reset root password. However, I found root as a username was not there. Instead, it is admin with all privileges.

    So, I quitted mysql, restarted it in a normal way, tried to put in admin as username and the same password as server root user, it worked!

    I changed the owner of php session directory (/var/lib/php/session) from apache to nginx, otherwise php could not start session without errors.

    I expected the server would work by now, but it did not. It took me another hour to find out it was because php.ini of 1&1 dedicated server had
    safe_mode default on

    Just turn safe_mode off, because I do not need it. Now my lovely server is fully up.