`

Zend Framework Smart PHP 项目 移植 APMServ

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

项目/数据转移完毕. 开始移植到Windows Server 2003 上的 APMServ
新建虚拟主机->指定项目目录->重启Apache. 完毕.
PHP的项目是用Zend Framework+Smart 模板做的. 框架比较简单. 看起来稍微容易一些
开始总结问题:
Exception 1: Object not found 异常
Zend Framework URL Rewriting 错误. 首页正常. 任何链接都不可用.
修改${APMServ5.2.6}/Apache/conf/apmserv/vhost.conf文件
<VirtualHost *:80>
 	ServerName www.test.com
 	DocumentRoot "E:/test"
<Directory "E:/test">
 	Options FollowSymLinks IncludesNOEXEC Indexes
DirectoryIndex 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>

Exception 2: PATH_ROOT 路径问题
虚拟目录根目录指定问题
  参考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');

问题解决.
Exception 3:
Session must be started before any output has been sent to the browser
感觉这个问题是个十分恶心人的问题. 更何况是对于我这种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文件.
结果访问又报Session must be started before any output has been sent to the browser无奈再次执行取出BOM的代码. 正常.

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

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

相关推荐

    APMServ_php运行环境

    5. 将PHP项目文件放入APMServ的www目录下,通过浏览器访问相应的URL即可运行PHP程序。 APMServ为初学者和专业开发者提供了一个方便的开发和测试平台,使他们能够专注于编写PHP代码,而无需担心底层环境的配置问题。...

    APMServ5.2.6php集成环境

    APMServ 5.2.6 是一款拥有图形界面的快速搭建Apache 2.2.9、PHP 5.2.6、MySQL 5.1.28 &4.0.26、Nginx 0.7.19、Memcached 1.2.4、phpMyAdmin 2.11.9.2、OpenSSL、SQLite、 ZendOptimizer,以及ASP、CGI、Perl网站...

    APMServ5.2.6_php_5.3.0

    总的来说,APMServ5.2.6_php_5.3.0是针对Windows用户的便捷Web开发环境解决方案,尤其适合那些希望快速启动项目而不需要深入学习服务器配置的用户。然而,为了保持系统的安全性和最佳性能,用户应该定期检查更新并...

    APMServ快速搭建php asp源码网站服务器平台软件

    APMServ 5.2.6 是一款拥有图形界面的快速搭建Apache 2.2.9、PHP 5.2.6、MySQL 5.1.28 &4.0.26、Nginx 0.7.19、Memcached 1.2.4、phpMyAdmin 2.11.9.2、OpenSSL、SQLite、 ZendOptimizer,以及ASP、CGI、Perl网站...

    绿色PHP+apache+mysql服务器APMServ5.2.0

    APMServ 5.2.0 是一款拥有图形界面的快速搭建Apache 2.2.3、PHP 5.2.0、MySQL 5.0.27 &4.0.26、SQLite、ZendOptimizer、OpenSSL、phpMyAdmin、SQLiteManager,以及ASP、CGI、 Perl网站服务器平台的绿色软件。...

    APMServ--PHP本地测试服务器

    APMServ是一款专门为开发者设计的PHP本地测试服务器软件,它为用户提供了一个便捷的环境来运行和测试PHP项目,而无需在线或在复杂的服务器配置中进行操作。这款工具集成了Apache服务器、MySQL数据库、PHP解释器以及...

    APMServ5.2.6 php的服务器

    虽然APMServ为初学者提供了极大的便利,但在大型项目或高并发场景下,可能需要更专业的服务器解决方案,如WAMP(Windows + Apache + MySQL + PHP)或XAMPP(跨平台的Apache套件)。然而,对于学习和小型项目,...

    APMServ 5.2.6

    APMServ 5.2.6 是一款拥有图形界面的快速搭建Apache 2.2.9、PHP 5.2.6、MySQL 5.1.28&4.0.26、Nginx、Memcached、phpMyAdmin、OpenSSL、 SQLite、ZendOptimizer,以及ASP、CGI、Perl网站服务器平台的绿色软件。 1...

    APMServ5.2.0

    APMServ 5.2.6 是一款拥有图形界面的快速搭建Apache 2.2.9、PHP 5.2.6、MySQL 5.1.28 &4.0.26、Nginx 0.7.19、Memcached 1.2.4、phpMyAdmin 2.11.9.2、OpenSSL、SQLite、 ZendOptimizer,以及ASP、CGI、Perl网站...

    《APMServ 5.2.6》:一键快速搭建Apache+PHP+MySQL+Nginx+Memcached+ASP平台的绿色软件

    APMServ 5.2.6 是一款拥有图形界面的快速搭建Apache 2.2.9、PHP 5.2.6、MySQL 5.1.28&4.0.26、Nginx 0.7.19、Memcached 1.2.4、phpMyAdmin 2.11.9.2、OpenSSL、SQLite、ZendOptimizer,以及ASP、CGI、Perl网站...

    apmserv安装包,apache,mysql,php

    apmserv安装包,apache,mysql,php

    APMServ5.2.6.zip

    APMServ 5.2.6 是一个专为Windows 2000、XP和2003操作系统设计的集成式Web服务器环境。这个压缩包文件"APMServ5.2.6.zip"包含了所有必要的组件,使得用户能够在本地计算机上快速搭建并运行Web应用程序,特别是基于...

    强烈推荐APMServ5.2.6

     APMServ 5.2.6 是一款拥有图形界面的快速搭建Apache 2.2.9、PHP 5.2.6、MySQL 5.1.28&4.0.26、Nginx 0.7.19、Memcached 1.2.4、phpMyAdmin 2.11.9.2、OpenSSL、SQLite、ZendOptimizer,以及ASP、CGI、Perl网站...

    APMServ-ASP 服务器

    APMServ是一款功能强大的Windows平台下的Web服务器集成环境,专为ASP(Active Server Pages)应用程序设计,它将Apache、MySQL、PHP和Perl等组件整合在一起,使得开发者能够在本地环境中快速搭建一个用于测试和开发...

    APMServ5.2.6(分三个包)

    APMServ文件采用7-Zip压缩,比用WinRAR压缩减少了10M体积,请运行APMServ5.2.6_zip.exe 自解压包,将APMServ解压缩到一个路径中不含有汉字和空格的分区或目录即可。 ---------------------------------------------...

    apmserv5.2.6

    APMServ 5.2.0 是一款拥有图形界面的快速搭建Apache 2.2.3、PHP 5.2.0、MySQL 5.0.27&4.0.26、SQLite、ZendOptimizer、OpenSSL、phpMyAdmin、SQLiteManager,以及ASP、CGI、Perl网站服务器平台的绿色软件。...

    APMServ使用说明教程

    ### APMServ使用说明教程知识点详解 #### 一、概述 **APMServ 5.2.6**是一款集成了多种Web服务器组件的绿色软件包,适用于快速搭建和配置一个功能全面的Web服务器环境。这款软件包包含了Apache 2.2.9、PHP 5.2.6、...

    APMServ5.2.6

    1. **环境配置**:理解如何在APMServ中配置Apache、PHP和MySQL的参数,以满足特定电商项目的需求。 2. **安全设置**:保障服务器环境的安全性,如设置强密码、更新软件补丁、启用防火墙等。 3. **数据库设计**:熟悉...

    apmserv5.26

    【标题】"apmserv5.26"是一款集成了多种服务器环境的开发工具,尤其适合于ASP和PHP项目的开发工作。它为开发者提供了一站式的解决方案,无需手动配置各个组件,大大简化了开发环境的搭建过程。 【描述】"很好用的...

Global site tag (gtag.js) - Google Analytics