一直以来极少在百度知道上提问,因为碰到什么问题基本只要动动鼠标就能搜出答案,鉴于此,基本也没怎么把自己日常碰到的小问题的解决方案写下来,因为觉得其他人应该也可以用同样的方法搜索到答案。不过现在想想,如果大家都不写,那可供后人参考的解决方法也就不会增长,所以还是动动手写下一点吧,人人为我,我为人人。

  最近因为工作需要,要在一台Windows 2003服务器上架设一个网站,因为要运行一些Unix下编写的程序,因此直接用IIS是不合适的;开始是打算用cygwin,但折腾了半天才发现cygwin和Windows 2003存在兼容性上的问题,没办法只能用虚拟机了。

  首先安装好VMware,然后到fedoraproject.org下载Fedora的拷贝,用700M的桌面版即可。虚拟机加载光盘启动进入桌面系统,然后将Fedora安装到虚拟硬盘。

  以往的安装办法是一个个从源代码编译然后修改配置文件,以前我也是那么干的,不过Fedora本身提供了软件管理的图形界面,所以现在可以不必折腾一大堆乱糟糟的源代码了。安装好Linux以后,根据以下“傻瓜式”步骤架设LAMP服务器:

  1. 打开“添加/删除软件”,或者用yum命令,将Apache、PHP和MySQL分别安装,注意要将诸如php-apache等小模块也装上去,否则无法成功整合;
  2. 我还要使用Perl脚本,因此再装一个mod_perl;
  3. 修改httpd.conf文件,在Module段落处手动添加libphp5.so和mod_perl,注意Module名称一定要写对,不然启动httpd的时候会出现找不到模块的错误,perl要加入AddHandler指令中,CGI文件夹也要进行必要的设置,不然php可能会返回premature end of script headers的错误(其实我还是弄得不大明白这个CGI和php到底是什么关系);
  4. 确定SELinux已经关闭或作出必要的更改,不然服务器无法正常工作;
  5. 在虚拟机中输入localhost看看能否访问;
  6. 如果出现问题,打开error_log看看是什么错误,再上网搜搜看前人的解决方法,一般都会有结果的;
  7. 如果执行perl出现no such file的错误,可试试看将perl脚本改为unix编码看看(用VI打开之,输入:set ff=unix之后存盘);
  8. 如果php脚本中含有图像函数,则不仅需要安装gd库,而且需要安装php-gd模块,否则无法工作;
  9. 如果localhost可以正常访问,则在VMware的“编辑虚拟网络”中,修改NAT settings,将主机的端口映射到虚拟机里面,注意此时需要给虚拟机一个固定的IP;
  10. 可以输入主机的IP+映射端口,看看能否实现正常访问了。

  如果还有疑问,可以再参考:

  • http://cache.baidu.com/c?m=9d78d513d9d437ad4f9a9f697c10c011194381132ba7a0020ba78448e2732d405016e2ac56290773d5d13b275fa0131aacb22173441e3df2de8d9f4aaaedcf6e73df6172274d9141658244f0d617789d66c706afb81990e9b170d9b9d3a7840244cb2505708bf58c580017c96ef212&p=93769a459e840ec308e2957a4b4c&user=baidu#baidusnap0
  • http://apps.hi.baidu.com/share/detail/10775678
  • http://forums.fedoraforum.org/archive/index.php/t-19175.html