上一周公司几台服务器全部转移成服务器托管
5台Windows Server 2003 1台 Ubuntu 9.04 server
Windows. 很简单. 配置配置就OK. 网站就放在IIS 6.0上面. 访问正常.
Ubuntu就比较麻烦了. 因为没有研究过Linux只是知道,也多少学习了点Linux知识. 不至于到盲的地步.
[color=blue]Linux错误问题:[/color]
[color=red]服务器配置静态IP.网关始终是个*,无法修改. 至今未果. 网关无法ping通.[/color]
而这台服务器上的好几个PHP的正在使用的项目 都放在上面. 项目都在用.
没办法. 想到的解决办法.只有项目移植.
找了一台安装APMServ 绿色环境的 服务器.
PHP的项目真是超级的大. 10G/5G/2G. 里面好多视频,音频文件.只好跑到机房 移动硬盘直接拷贝. 还好服务器在一起. 不然又跑断腿儿了.

项目/数据转移完毕. 开始移植到Windows Server 2003 上的 APMServ
新建虚拟主机->指定项目目录->重启Apache. 完毕.
PHP的项目是用Zend Framework+Smart 模板做的. 框架比较简单. 看起来稍微容易一些
开始总结问题:
[color=blue]Exception 1: Object not found 异常[/color]
[color=red]Zend Framework URL Rewriting 错误. 首页正常. 任何链接都不可用.[/color]
修改${APMServ5.2.6}/Apache/conf/apmserv/[color=red]vhost.conf[/color]文件

<VirtualHost *:80>     ServerName www.test.com   DocumentRoot "E:/test"<Directory "E:/test">   Options FollowSymLinks IncludesNOEXEC IndexesDirectoryIndex index.html index.htm default.htm index.php default.php index.cgi default.cgi index.shtml index.aspx default.aspx    AllowOverride None  //修改None->All  Order Deny,Allow  Allow from all    php_admin_value open_basedir "E:/test/;F:/APMServ5.2.6/tmp/uploadtemp/;F:/tmp"  php_admin_value safe_mode On</Directory></VirtualHost>

[color=blue]Exception 2: PATH_ROOT 路径问题[/color]
[color=red]虚拟目录根目录指定问题[/color]
参考Linux 服务器 apache的配置.
DocumentRoot var/www/project
项目目录结构 var/www/project/
project
>image/文件夹
>name/项目目录
>index.html
name文件夹
>application/
>cache/
>library/Zend、Smart类库
>logs/
>public/
>index.php
>*

APMServ 指定虚拟主机.如果项目根目录指定到 www/project 访问就会报 include_path www/project/library 错误. 很明显少了一个name文件名.
查看源文件获取类库的代码 获得的Path是 DocumentRoot. 即建立虚拟主机时指定的项目根目录. 那样肯定不对. 更改项目根目录 项目整个访问路径都会改变.
采用投机取巧的办法.
在源代码中修改代码

define('PATH_ROOT',$_SERVER['DOCUMENT_ROOT'].'/name');

问题解决.
[color=blue]Exception 3:[/color]
[color=red]Session must be started before any output has been sent to the browser[/color]
感觉这个问题是个十分恶心人的问题. 更何况是对于我这种PHP根本不会的人来说.
困扰了一个下午. 终于在昨晚搞定. 其实问题很简单. 关于PHP文件UTF-8 档案BOM的问题.
在项目根目录下新建*.php文件
拷贝如下代码【代码下有下载】

<?php 

if (isset ( $_GET ['dir'] )) { //config the basedir   $basedir = $_GET ['dir']; } else {   $basedir = '.'; } $auto = 1; checkdir ( $basedir ); 

function checkdir($basedir) {   if ($dh = opendir ( $basedir )) {     while ( ($file = readdir ( $dh )) !== false ) {       if ($file != '.' && $file != '..') {         if (! is_dir ( $basedir . "/" . $file )) { // 如果是文件           echo "filename: $basedir/$file " . checkBOM ( "$basedir/$file" ) . " <br>";         } else {           $dirname = $basedir . "/" .$file; // 如果是目录           checkdir ( $dirname ); // 递归         }       }     }     closedir ( $dh );   } } 

function checkBOM($filename) {   global $auto;   $contents = file_get_contents ( $filename );   $charset [1] = substr ( $contents, 0, 1 );   $charset [2] = substr ( $contents, 1, 1 );   $charset [3] = substr ( $contents, 2, 1 );   if (ord ( $charset [1] ) == 239 && ord ( $charset [2] ) == 187 && ord ( $charset [3] ) == 191) { // BOM 的前三个字符的ASCII 码分别为 239 187 191     if ($auto == 1) {       $rest = substr ( $contents, 3 );       rewrite ( $filename, $rest );       return ("<font color=red>BOM found, automatically removed.</font>");     } else {       return ("<font color=red>BOM found.</font>");     }   } else     return ("BOM Not Found."); } 

function rewrite($filename, $data) {   $filenum = fopen ( $filename, "w" );   flock ( $filenum, LOCK_EX );   fwrite ( $filenum, $data );   fclose ( $filenum ); } ?>

执行:http://www.test.com/*.php
会在网页看到如下输出

…略filename: ./name/cache/zxtx/zxtx_2010-03-18.txt BOM Not Found. filename: ./name/common.php BOM found, automatically removed. filename: ./name/index.php BOM Not Found. filename: ./name/library/.svn/entries BOM Not Found. filename: ./name/library/.svn/format BOM Not Found.…略

访问项目是不是没有错误了. 呵呵.
否则,关闭浏览器重新打开,再次访问.

Ps. 有时候问题确实很诡异. 我只不过是稍微用记事本修改了一下PHP文件.
结果访问又报[color=red]Session must be started before any output has been sent to the browser[/color]无奈再次执行取出BOM的代码. 正常.

[color=blue]Exception 4: [/color]
[color=red]php生成image/png 显示红X 问题.[/color]
可能也是Exception 3的问题哦. 至少我的是..

这些问题. 对于PHP程序员来说. 或许是小KISS.
但对于我这个搞Java的来说. 有点抓头了. 所以值得记录一下.
具体碰到的移植问题就这些啦.

Zend Framework Smart PHP 项目 移植 APMServ相关推荐

  1. 专业级智能PHP IDE Zend Studio教程:Zend Framework 2集成(1/3)——创建和部署新的ZF2项目

    Zend Studio是新一代的专业级智能PHP IDE(应用程序开发环境).它旨在帮助开发人员提高工作效率,创造出高品质的PHP应用程序!它包含了PHP开发所必须的部件,通过一整套的编辑.调试.分析 ...

  2. php创建表设置编码,教您在Zend Framework里如何设置数据库编码以及怎样给数据表设定前缀!...

    当我们在开发项目时..大家都会遇到一个问题就是:数据库的编码问题.当然我们不用Zend Framework做为项目开发的框架时..我们可以很快,很容易搞定这个小问题..但是当我们要使用Zend Fra ...

  3. 使用命令行建立Zend Framework项目

    Zend Framework的项目结构比较复杂,但是有既定的结构.Zend Framework提供了使用Command命令行生成项目结构的工具,使用非常方便,初学者可以不用为了复杂的结构而Orz. 配 ...

  4. vs项目移植到linux运行,VS2008项目移植到Linux

    不少人都遇到过这种情况:在Windows下用Visual Studio工具开发的程序需要移植到Linux系统中,做成Linux版本的,但程序比较大,在Linux上又离不开Make,手动编写Makefi ...

  5. Zend Framework 2 中,定制error 的layout

    为什么80%的码农都做不了架构师?>>>    404页面在我们平常浏览网页的时候并不会经常碰到,也因此很容易被忽略,在Zend Framework 2中,项目的结构已经默认提供了4 ...

  6. Zend Framework一

    很久没有写东西了,有点懒了.最近做了一个PHP的项目,使用的框架是Zend Framework 1.8.第一次做PHP的项目,也是第一次使用Zend Framework.在网上找它的教程,发现中文教程 ...

  7. php zend框架入门,Zend Framework 入门——快速上手

    1. 安装 从 Zend Framework 的网页上下载最新版本.解压后,把整个目录拷贝到一个理想的地方,比如:/php/library/Zend. 打开 php.ini 文件,确认包含 Zend ...

  8. zend framework1.12 没找到php.exe,请加一个zend framework的有关问题

    请加一个zend framework的问题 我在用phpunit测试zend项目里的model, 这个model是这样的: PHP codeclass Application_Model_AdminG ...

  9. 【转】主流PHP框架间的比较(Zend Framework,CakePHP,CodeIgnit...

    2019独角兽企业重金招聘Python工程师标准>>> [转]主流PHP框架间的比较(Zend Framework,CakePHP,CodeIgniter,Symfony,Think ...

最新文章

  1. 样式集(八)弹窗,规则弹窗,半透明弹窗
  2. MNIST 训练测试
  3. java支持泛型_Java自学-泛型 支持泛型的类
  4. RxJava初级解析(一)
  5. 关于DataGrid数据绑定后对字段进行替换的问题与办法
  6. java.nio.file 找不到_java - 断言该错误:无法访问路径(找不到java.nio.file.Path) - 堆栈内存溢出...
  7. HTML5 API详解(16):web socket 全双工通信
  8. 艾为数字ic面试题_秋招 应聘FPGA/数字IC笔试面试经验分享(简单列举FPGA/数字IC公司)...
  9. python matplotlib数据可视化教程_Python使用matplotlib实现数据可视化教程
  10. FBI或被允许隐瞒解锁iPhone技术 不向苹果公开
  11. django配置文件
  12. Python数据分析(二): Numpy技巧 (3/4)
  13. python读取图片信息_笔记整理4——python实现提取图片exif信息
  14. Captain Flint and Crew Recruitment
  15. 国庆长假来啦!这些消遣目的地最适合程序员
  16. 以漫画的形式描述联邦学习
  17. 做好大型项目的五个关键
  18. 关于重装Win10系统卡死在PIN码设置步骤
  19. 移动硬盘 Windows-延缓写入失败:无法为某文件保存所有数据,数据已经丢失
  20. 懂户型图 如何选择好户型

热门文章

  1. 牛客:爬塔(STL)
  2. C/C++ __builtin 超实用位运算函数总结
  3. 显卡T600和RTX3050哪个好
  4. JavaFX入门(五):使用CSS样式美化你的UI控件
  5. XILINX DMA/Bridge Subsystem for PCI Express (XDMA)笔记1(基于VU250 board)
  6. 计算机专业英语期末考试,《计算机专业英语》期末试卷
  7. 希尔贝壳荣获“北京市创新型中小企业”称号
  8. 【泛函分析】巴拿赫空间
  9. 解决方案:集团型施工企业安全生产数字化管理系统
  10. 韶音骨传导耳机怎么样?南卡和韶音在线评测对比