Mozz

搭建Typecho本地开发环境 - Mac用户

起步

首先对Typecho开发是需要一定的技术要求的,主要是前端功夫,其次是懂点php

当然如果接触过后端语言,熟悉模板语法,那就轻松许多了,毕竟做主题不能光写cssjs吧,很多地方的后端代码需要挪位置的

环境准备

Mac系统自带了Apache服务器,并默认支持PHP环境,只需要配置Apache服务器和PHP环境即可使用。需要单独安装mysql服务端,具体操作如下:

  • 第一步:备份配置文件 sudo cp /etc/apache2/httpd.conf /etc/apache2/httpd.conf.bak
  • 第二步:让Apache支持PHP配置:
# 到mac自带的apache服务器目录下
cd /etc/apache2

# 打开文件夹
sudo open .

# 打开 httpd.conf,推荐用vscode
# Mojave用户是php7,我是Sierra,默认是php5
# 找到 #LoadModule php5_module libexec/apache2/libphp5.so 删除注释
# 重启apache服务
sudo apachectl start

# 浏览器打开 localhost ,稍等几秒,看见 it works 说明apache服务已启了

# 到apache默认的web目录下
cd /Library/WebServer/Documents

# 新建一个test.php文件
sudo touch test.php

# 打开文件夹
sudo open .

# 打开 test.php 输入 <?php phpinfo(); ?> 保存

# 浏览器访问 localhost/test,如果现实一堆PHP Version 信息则成功

下载typecho正式版源码

到这里,我们的web服务环境已经好了,这时候去下载Typecho源码

下载好,解压,把build重命名为typecho,复制到/Library/WebServer/Documents

如图1:

图1

安装typecho

此时,typecho程序已经在Apache服务里跑起来啦!

浏览器访问http://localhost/typecho或者http://localhost/typecho/install.php

会看见安装画面,如图2:

图2

配置mysql数据库

接下来是配置数据库

mac安装mysql数据不难的,到处都是教程

例如最舒服的brew install mysql

也可以去我的雪白法典

搜索一下,里面有mac配置各种环境的记录

假定你已经安装好了Mysql数据库

然后:

  • 选择pdo驱动Mysql适配器,这里面有坑的,用mysql原生驱动可能会报错
  • 填写数据库密码,一般大家设置都是root
  • 然后在mysql数据库里面新建一个名为typecho的数据库,方法如下:
#打开终端
mysql -uroot -p
# 输入密码登录Mysql
# 创建数据库
CREATE DATABASE `typecho` CHARACTER SET utf8 COLLATE utf8_general_ci;
# 检查一下是否创建成功
show databases;

如果没出错,操作正确

你会看见,图3:

创建数据库

然后我们回到网页,再填写一个admin账户的管理面密码,就可以点击确认开始安装了,然后发现,报错啦!

对不起,无法连接数据库,请先检查数据库配置再继续进行安装

这时候,请把数据库地址:Localhost改成127.0.0.1,再点击开始安装,哈哈,又有新情况了

如图4:

图4

人性化的typecho居然给了提示:

安装程序无法自动创建 config.inc.php 文件,您可以在网站根目录下手动创建 config.inc.php 文件, 并复制如下代码至其中

<?php
/**
 * Typecho Blog Platform
 *
 * @copyright  Copyright (c) 2008 Typecho team (http://www.typecho.org)
 * @license    GNU General Public License 2.0
 * @version    $Id$
 */

/** 定义根目录 */
define('__TYPECHO_ROOT_DIR__', dirname(__FILE__));

/** 定义插件目录(相对路径) */
define('__TYPECHO_PLUGIN_DIR__', '/usr/plugins');

/** 定义模板目录(相对路径) */
define('__TYPECHO_THEME_DIR__', '/usr/themes');

/** 后台路径(相对路径) */
define('__TYPECHO_ADMIN_DIR__', '/admin/');

/** 设置包含路径 */
@set_include_path(get_include_path() . PATH_SEPARATOR .
__TYPECHO_ROOT_DIR__ . '/var' . PATH_SEPARATOR .
__TYPECHO_ROOT_DIR__ . __TYPECHO_PLUGIN_DIR__);

/** 载入API支持 */
require_once 'Typecho/Common.php';

/** 载入Response支持 */
require_once 'Typecho/Response.php';

/** 载入配置支持 */
require_once 'Typecho/Config.php';

/** 载入异常支持 */
require_once 'Typecho/Exception.php';

/** 载入插件支持 */
require_once 'Typecho/Plugin.php';

/** 载入国际化支持 */
require_once 'Typecho/I18n.php';

/** 载入数据库支持 */
require_once 'Typecho/Db.php';

/** 载入路由器支持 */
require_once 'Typecho/Router.php';

/** 程序初始化 */
Typecho_Common::init();

/** 定义数据库参数 */
$db = new Typecho_Db('Pdo_Mysql', 'typecho_');
$db->addServer(array (
  'host' => '127.0.0.1',
  'user' => 'root',
  'password' => 'root',
  'charset' => 'utf8',
  'port' => '3306',
  'database' => 'typecho',
), Typecho_Db::READ | Typecho_Db::WRITE);
Typecho_Db::set($db);

那咱就照做,再次打开终端

# 到安装根目录下
cd /Library/WebServer/Documents/typecho/
# 新建 config.inc.php
sudo touch config.inc.php
# 打开文件夹
sudo open .
# 编辑 config.inc.php,使用vscode或者其他什么编辑器,把上面那大坨代码复制进去,保存

然后点击创建完毕,继续安装,又炸了,超气人,一点不慌得,稳住,胜利就喜欢藏在在黎明前的黑暗

又炸了

据说这个正式版的bug,有两种方法解决:

  • vscode或者其他编辑器,打开/Library/WebServer/Documents/typecho/目录下install.php文件,在第56行加入 ob_start();
  • 或者修改php.ini文件,加入 output_buffering =on [不推荐]

加入 ob_start()

完成

好啦!再次回到刚才卡在的报错页面,刷新,Done!

胜利

结语

一路走来,你也许花费了1个多小时,其实笔者花了3个小时

也许这就是代码路上的乐趣,探索=>跳坑=>爬坑,傻人的快乐

剩下来就是如何构建一个完善的开发体系了,回头有空再写,本人也还是在寻求,摸索更高效的开发模式当中...

仅有一条评论

  1. pzb · 22d

    不错