资讯专栏INFORMATION COLUMN

ZendServer下安装Typecho需要注意问题

caohaoyu / 2350人阅读

摘要:想基于给自己的公司做一个企业宣传站,个人上的开发部署采用的说实话用作为部署环境确实挺方便无需做过多的配置修改利用自带的工具在完成应用的配置然后生成打包文件直接在后台上传仅通过简单的可视化界面就可以轻松完成应用的部署包括版本等的配置都不需要做

想基于typecho给自己的公司做一个企业宣传站,个人MACBOOK上的PHP开发部署采用的Zend Server Develop Edition. 说实话用Zend Server作为部署环境确实挺方便, 无需做过多的配置修改, 利用自带的zdpack工具,在development.xml完成应用的配置,然后生成打包文件.zpk.直接在后台上传,仅通过简单的web可视化界面就可以轻松完成应用的部署,包括vhost,PHP版本,mysql等的配置都不需要做过多的操作.

直接在typecho官方网站上下载了最新的版本1.0(14.10.10).然后通过打包,代码上传,在install.php的引导下完成了数据库,管理员,邮箱,站点URL等的配置. 比较顺利,提示安装完成.不过接下来当我通过提示的链接,访问控制台时,浏览器直接调到了空白页.

访问站点主页:http://localhost:10088/typecho(zend server默认采用10088端口自主安装app的访问).

接下来问题来了, 站点主页中除了首页链接点击访问正常, 其余链接皆无法正常访问.通过浏览器查看源码发现. 除首页外的所有链接均变为: http://localhost:10088:10088/typecho/***.

那么问题就来了,在站点设置中自定义的站点url在这里怎么就成了这样?

只能追代码了....

1.首先查看默认主题中的 /usr/themes/default/header.php
发现

">
">

主题中的CSS链接正常.关于的链接在line 60

is("page", $pages->slug)): ?> class="current" href="permalink(); ?>" title="title(); ?>">title(); ?>

这里的$pages->permalink()返回的结果异常.全局搜索:permalink, 结果太多,无从下手.

想到关于typecho的库表中有一个option表,会不会是URL设置错误.结果siteUrl是正常的, 其余相关的URL设置也均无异样.

没办法, 直接通过传统的输出调试吧. 不知怎么的突然想到在 header.php中直接打印$this来寻找下眉目.


结果不出所料, 从$this的打印结果中看到了这样一个选项 [rootUrl] => "http://localhost:10088:10088/typecho".好了,接下只要定位rootUrl在何处生成的就可以了.

通过rootUrl定位查找, 确定/var/Widget/Options.php中的line 373:

$this->rootUrl = $this->request->getRequestRoot();

然后找到request相关代码:/var/Typecho/Request.php中的

/**
 * 获取url前缀 
 * 
 * @access public
 * @return string
 */
public static function getUrlPrefix()
{
    if (empty(self::$_urlPrefix)) {
        self::$_urlPrefix = (self::isSecure() ? "https" : "http") 
            . "://" . (isset($_SERVER["HTTP_HOST"]) ? $_SERVER["HTTP_HOST"] : $_SERVER["SERVER_NAME"])
            . (in_array($_SERVER["SERVER_PORT"], array(80, 443)) ? "" : ":" . $_SERVER["SERVER_PORT"]);
    }

    return self::$_urlPrefix;
}

这里关于端口有限制为80或443, 问题的根源找到了. 根据个人的需求,添加上10088的支持, OK了. 突然发现Typecho的框架很大, 源码理解起来工作量很大. 有时间想进一步学习其中的开发思想. 不错的一次体验, 记载以供自己日后回顾此时的处理问题思路, 说不定也可以给其他遇到类似问题的朋友一点帮助

文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/31926.html

相关文章

  • docker安装typecho建立自己得博客系统(1)dockerfile篇

    摘要:需求说明使用一款软件在环境下构建运行自己得博客系统,并安装证书。参数是必须的,他指定我们去挂载网站得根目录到容器内部的网络上。 需求说明 使用typeecho一款php软件在docker环境下构建运行自己得博客系统,并安装ssl证书。 博客软件typecho http://typecho.org/ Step1:拥有一台包含docker软件的linux操作系统 [root@oeynet ...

    CoreDump 评论0 收藏0
  • docker安装typecho建立自己得博客系统(1)dockerfile篇

    摘要:需求说明使用一款软件在环境下构建运行自己得博客系统,并安装证书。参数是必须的,他指定我们去挂载网站得根目录到容器内部的网络上。 需求说明 使用typeecho一款php软件在docker环境下构建运行自己得博客系统,并安装ssl证书。 博客软件typecho http://typecho.org/ Step1:拥有一台包含docker软件的linux操作系统 [root@oeynet ...

    陈江龙 评论0 收藏0
  • docker安装typecho建立自己得博客系统(1)dockerfile篇

    摘要:需求说明使用一款软件在环境下构建运行自己得博客系统,并安装证书。参数是必须的,他指定我们去挂载网站得根目录到容器内部的网络上。 需求说明 使用typeecho一款php软件在docker环境下构建运行自己得博客系统,并安装ssl证书。 博客软件typecho http://typecho.org/ Step1:拥有一台包含docker软件的linux操作系统 [root@oeynet ...

    cuieney 评论0 收藏0
  • typecho插件编写教程5 - 核心代码

    摘要:此文原本发表于我的博客老高的技术博客,欢迎和老高交流之前啰嗦了很多,现在开始写核心代码。至此我们已经拿到了文章的永久链接,下一步就是给百度服务器发送数据了本节完 此文原本发表于我的博客 老高的技术博客 ,欢迎和老高交流! 之前啰嗦了很多,现在开始写核心代码。 分析一下,发布文章的时候,我们需要的信息就是当前文章的URL,我们需要想办法从$contents、 $class中拿到他。...

    GraphQuery 评论0 收藏0
  • typecho插件编写教程3 - 保存配置

    摘要:完善信息,使其更接地气插件安装成功,请进入设置填写准入密钥插件卸载成功如何保存配置准入密钥在哪里保存当然是数据库了。 此文原本发表于我的博客 老高的技术博客 ,欢迎和老高交流! 上一节我们制作了一个裸插件,下面我们开始让我们的插件开始工作! 完善方法 两个方法 我们实现activate和deactivate方法 php public static function...

    HmyBmny 评论0 收藏0

发表评论

0条评论

最新活动
阅读需要支付1元查看
<