Posts Tagged ‘Wordpress’

给wordpress加上记录Combined格式日志的功能

星期四, 12月 6th, 2007

由于我是合租的web主机,因此开通的ftp里没权限看到站点的access.log,

由于wordpress是通过.htaccess中配置的urlrewrite将http请求重定向到index.php 这个入口,

因此只要在index.php里加上记录日志的操作,基本上大部分请求都可以记录下来,

查了下资料,没看见现成的代码,于是对照着 Combined各式的日志,

自己写了一段代码来实现这个功能.

代码如下:

[code]

<?php
/* Short and sweet */
define(’WP_USE_THEMES’, true);
/**
为我的wordpress增加记录web日志的功能
author: lizongbo
site: http://618119.com
*/

$webaccesslog=”webaccess”.gmdate(”Y-m-d”).”.log”;
$accesslog=$_SERVER['REMOTE_ADDR'].” - - “.gmdate(”[d/M/Y:H:i:s +0800] “);
$accesslog=$accesslog.”\”".$_SERVER["REQUEST_METHOD"].” “.$_SERVER["REQUEST_URI"].” “;
$accesslog=$accesslog.$_SERVER["SERVER_PROTOCOL"].”\”";
$accesslog=$accesslog.” 200 2007 \”";
if(!empty($_SERVER["HTTP_REFERER"])){
$accesslog=$accesslog.$_SERVER["HTTP_REFERER"];
}else{
$accesslog=$accesslog.”-”;
}
$accesslog=$accesslog.”\” \”".$_SERVER["HTTP_USER_AGENT"].”\”".”\r\n”;
$webaccess=fopen($webaccesslog,”a”);
fwrite($webaccess,$accesslog);
/*下面的写法 io 操作太多,被废弃了
fwrite($webaccess,$_SERVER['REMOTE_ADDR']);
fwrite($webaccess,” - - “);
fwrite($webaccess,gmdate (”[d/M/Y:H:i:s +0800] “));//不知道怎么加时区,于是写死了
fwrite($webaccess,”\”");
fwrite($webaccess,$_SERVER["REQUEST_METHOD"]);
fwrite($webaccess,” “);
fwrite($webaccess,$_SERVER["REQUEST_URI"]);
fwrite($webaccess,” “);
fwrite($webaccess,$_SERVER["SERVER_PROTOCOL"]);
fwrite($webaccess,”\”");
fwrite($webaccess,” 200 2007 \”");//强行写死了状态码和内容长度
if(!empty($_SERVER["HTTP_REFERER"])){
fwrite($webaccess,$_SERVER["HTTP_REFERER"]);
}else{
fwrite($webaccess,”-”);
}
fwrite($webaccess,”\” \”");
fwrite($webaccess,$_SERVER["HTTP_USER_AGENT"]);
fwrite($webaccess,”\”");
fwrite($webaccess,”\r\n”);
*/

fclose($webaccess);
require(’./wp-blog-header.php’);
?>

[/code]

这样,记录下来的日志就可以通过ftp下载到本地,然后再用 awstats 进行分析了.

Tags: 618119.com, Apache, log, php, Wordpress

Related posts

参考Google Syntax Highlighter for WordPress 定制纯Javascript实现的代码语法高亮

星期三, 11月 28th, 2007

Google Syntax Highlighter for WordPress. 是代码加亮插件,但是该插件与文章的可视化编辑存在冲突,
参考 : http://www.ajaxgo.org/press/?p=6

并且在 pre标签内如果写 xml代码,在可视化编辑的情况下,就会被SyntaxHighlighter转出一堆转码字符,
而在源代码模式下,如果浏览器禁用了 Javascript,则无法看到完整的xml内容.
加之我喜欢在代码里使用 [ code ] [ /code ] 这样用中括号的标记,
SyntaxHighlighter却只支持 pre标记,于是我根据这个插件,针对自己的博客做了改造.

实现简洁方便的语法高亮,既不影响后台对文章的编辑效果,也不影响文章在启用javascript和禁用 Javascript两种情况下的显示.

实现的思路如下.

在显示文章的页面里,
通过Javascript动态查找到 class为entry的div,这个就是显示文章内容的地方了,
然后操作innerHtml,将[ code ]与 [ /code ]之间的html内容进行解析替换,
自动识别代码类型然后将其转换为 pre 标记,再调用dp.SyntaxHighlighter.HighlightAll(’code’),进行代码高亮.

我的具体操作步骤如下:

1.下载 http://downloads.--escaped_anchor:514bf1cb49cdb8c6451b5e8c6d9d8e64--.org/plugin/google-syntax-highlighter.1.5.1.zip
(也可以直接下载 http://syntaxhighlighter.googlecode.com/files/SyntaxHighlighter_1.5.1.rar,不过需要调整一下相关目录
上传到服务器之后保持google-syntax-highlighter目录即可.)
2.解压上传到 http:///618119.com/wp-content/plugins/
(后台管理中不要启用插件)
3.编写三个js文件,并上传到服务器.
highlighter.js  http://618119.com/wp-content/plugins/google-syntax-highlighter/Scripts/highlighter.js
mySyntaxHighlighter.js http://618119.com/wp-content/plugins/google-syntax-highlighter/Scripts/mySyntaxHighlighter.js
doSyntaxHighlighter.js http://618119.com/wp-content/plugins/google-syntax-highlighter/Scripts/doSyntaxHighlighter.js

4.在wp-content/themes/default/single.php中加上

<script class=”javascript” src=”/wp-content/plugins/google-syntax-highlighter/Scripts/highlighter.js”></script>

这行加在 <?php get_footer(); ?> 的前面.

这样就实现了纯js的 语法高亮,且不对现有的可视化编辑造成影响,也支持用户在禁止了 Javascript的情况下正常浏览.
由于使用的动态增加css和js,因此对于禁止Javascript的情况下,浏览速度非常快,和没启用语法高亮一样.

我写的js代码大致有:

[code]

//如果存在code标记,则加载语法高亮的JavaScript
var codeTag=”code”;//code标记名
var highlighterUriPerfix=”/wp-content/plugins/google-syntax-highlighter/”;
var postElement=null;
//找到class 为 entry的对象进行处理
var tags=document.getElementsByTagName(”div”); // class 为 entry
for(var i = 0; i < tags.length; i++)
if(tags[i].className.indexOf(”entry”) >=0)
postElement= tags[i];
if(postElement!=null && postElement.innerHTML.indexOf(”["+codeTag+"]“)>0){
document.write(”<script class=\”javascript\” src=\”"+highlighterUriPerfix+”Scripts/mySyntaxHighlighter.js\”><\/script>”);
}

[/code]

不过代码中对html标记过滤掉处理还不够完善,,对代码的类型自动识别没怎么处理,但基本够用了.

Google Syntax Highlighter for WordPress 在: http://wordpress.org/extend/plugins/google-syntax-highlighter/
SyntaxHighlighter在 : http://code.google.com/p/--escaped_anchor:2bbb1db14b6d5abb3de938295f877875--/

Tags: javascript, SyntaxHighlighter, Wordpress

Related posts

在Apache Tomcat上安装Wordpress 2.3

星期一, 10月 22nd, 2007

Apache Tomcat上安装Wordpress 2.3

借助quercus这个纯Java PHP引擎,我们可以在Tomcat上安装Wordpress.

1.首先下载

JDK: jdk-6u3-windows-i586-p.exe http://www.mnidc.net/software/java_se/jdk-6u3-windows-i586-p.exe

mysql 5.0.45: http://ftp.ntu.edu.tw/pub/--escaped_anchor:eb0ea675fbb8e7d924e684d322873a93--/Downloads/MySQL-5.0/mysql-noinstall-5.0.45-win32.zip

Tomcat 6.0.14: http://www.--escaped_anchor:3470e7efc9d2fc0f6a96039a71c7a880--.org/dist/tomcat/tomcat-6/v6.0.14/bin/apache-tomcat-6.0.14.zip

quercus 3.1.3: http://quercus.caucho.com/download/quercus-3.1.3.war

Wordpress 2.3: http://wordpress.org/latest.zip

Wordpress 2.3 简体中文语言包 第二版: http://wpcn.googlecode.com/files/--escaped_anchor:514bf1cb49cdb8c6451b5e8c6d9d8e64---2-3-zh_CN-po-mo.zip

mysql jdbc: http://ftp.ntu.edu.tw/pub/--escaped_anchor:eb0ea675fbb8e7d924e684d322873a93--/Downloads/Connector-J/mysql-connector-java-5.1.0.zip

javamail

2.安装:
运行jdk-6u3-windows-i586-p.exe安装 JDK 到D:\Java\jdk1.6.0_03
配置环境变量JAVA_HOME=D:\Java\jdk1.6.0_03
环境变量Path中加入D:\Java\jdk1.6.0_03\bin;

解压mysql-noinstall-5.0.45-win32.zip为:E:\mysql-5.0.45-win32

解压pache-tomcat-6.0.14.zip到为:D:\Java\apache-tomcat-6.0.14

解压quercus-3.1.3.war为:D:\Java\apache-tomcat-6.0.14\webapps\quercus

解压latest.zip为D:\Java\apache-tomcat-6.0.14\webapps\quercus\wordpress

解压wordpress-2-3-zh_CN-po-mo.zip到 D:\Java\apache-tomcat-6.0.14\webapps\quercus\wordpress\wp-content\language

解压mysql-connector-java-5.1.0.zip得到mysql-connector-java-5.1.0.jar,将其复制到D:\Java\apache-tomcat-6.0.14\webapps\quercus\WEB-INF\lib

将activation.jar和mail.jar复制到D:\Java\apache-tomcat-6.0.14\webapps\quercus\WEB-INF\lib。

4.配置:

将 D:\Java\apache-tomcat-6.0.14\webapps\quercus\wordpress\下的wp-config-sample.php重命名为wp-config.php
编辑后的wp-config.php的内容如下:

<?php
// ** MySQL settings ** //
define(’DB_NAME’, ‘wordpress’); // The name of the database
define(’DB_USER’, ‘root’); // Your MySQL username
define(’DB_PASSWORD’, ”); // …and password
define(’DB_HOST’, ‘localhost’); // 99% chance you won’t need to change this value
define(’DB_CHARSET’, ‘utf8′);
define(’DB_COLLATE’, ”);

// You can have multiple installations in one database if you give each a unique prefix
$table_prefix = ‘wp_’; // Only numbers, letters, and underscores please!

// Change this to localize WordPress. A corresponding MO file for the
// chosen language must be installed to wp-content/languages.
// For example, install de.mo to wp-content/languages and set WPLANG to ‘de’
// to enable German language support.
define (’WPLANG’, ‘zh_CN’);

/* That’s all, stop editing! Happy blogging. */

define(’ABSPATH’, dirname(__FILE__).’/');
require_once(ABSPATH.’wp-settings.php’);
?>

5.启动:

运行E:\mysql-5.0.45-win32\bin\mysqld.exe
运行D:\Java\apache-tomcat-6.0.14\bin\startup.bat

6.安装设置Wordpress

打开浏览器,访问 http://localhost:8080/quercus/wordpress/wp-admin/install.php

进行安装。

(Tomcat后台此时会报很多异常,这是因为wordpress在检测相关的表是否已经创建)

7.访问

http://localhost:8080/quercus/wordpress/ 可以看到内容显示正常。

(more…)

Tags: mysql, php, quercus, Tomcat, Wordpress

Related posts