存档

文章标签 ‘apache’

Apache+PHP+MySql+Wordpress2.7,Zend Studio For Eclipse

2009年1月3日

新年新气象,这几天打算把自己的这个站好好整理下了。一直以来都是做JAVA开发的,对PHP不怎么熟悉,博客的程序一塌糊涂,这里改改,那里补补的,早想好好系统总结下了,现在总算有大段大段时间空出来了,终于可以开工了。

首先是PHP开发环境,Zend Studio For Eclipse是基于Eclipse的,这对我来说就非常便利了,其中的ALT+CTRL+R快捷键去找资源那是相当爽啊,之前用Editplus配合资源管理器真是要累死了。再者,可以用CTRL+H来查找PHP的函数定义,这也是超级实用的,对代码的追踪非常好,只是会发生窗口覆盖问题,稍稍郁闷。还有就是Outline面板里面的信息解析不出来,不知道是怎么回事,拷到其他工程是可以的。

200901031156

关于Zend Studio For Eclipse的网站调试这里也说下:它的调试完全用不到Apache,只是调用了PHP的程序而已,具体的目录在 D:\Zend\Zend Studio for Eclipse - 6.0.0\plugins\org.zend.php.debug.debugger.win32.x86_5.2.12.v20071210\resources\php5,该目录下只有简单的几个执行文件和所要用到的DLL而已
200901070038
我们要让Zend Studio知道要去加载些什么东西,就是在这里修改php.ini的,比如我们这里添加MySQL的连接,php.ini的样貌如图:
200901070044
还有一点要注意的是,在Zend Studio中运行phpinfo(),会显示php.ini在系统的临时文件夹中,这其实就是运行的时候Zend从上面那个目录拷贝过去的。

阅读全文…

大杂烩 , , , , ,

小试Apache,Tomcat集群和负载均衡

2008年4月16日

一 所属软件
1 个Apache
1 个JDK
2 个Tomcat

二 负载均衡
负载均衡,就是apache将客户请求均衡的分给tomcat1,tomcat2….去处理 阅读全文…

服务器 , , , , , , , ,

log4j日志管理重要知识点备忘录

2007年10月22日
#ConversionPattern参数的格式含义
#格式名 含义
#%c 输出日志信息所属的类的全名
#%d 输出日志时间点的日期或时间,默认格式为ISO8601,也可以在其后指定格式,
#   比如:%d{yyy-MM-dd HH:mm:ss },输出类似:
2002-10-18221028
#%F 输出日志信息所属的类的类名
#%l 输出日志事件的发生位置,即输出日志信息的语句处于它所在的类的第几行
#%m 输出代码中指定的信息,如log(message)中的message
#%n 输出一个回车换行符,Windows平台为“ ”,Unix平台为“ ”
#%p 输出优先级,即DEBUG,INFO,WARN,ERROR,FATAL。如果是调用debug()输出
#   的,则为DEBUG,依此类推
#%r 输出自应用启动到输出该日志信息所耗费的毫秒数
#%t 输出产生该日志事件的线程名

## LOGGERS ##
#这里只设置一个logger但是它有很多的appender
log4j.rootLogger
=INFO,console,file,rollfile,dailyrollfile

## APPENDERS ##
# org.apache.log4j.ConsoleAppender 的写法
log4j.appender.console
=org.apache.log4j.ConsoleAppender
log4j.appender.console.layout
=org.apache.log4j.PatternLayout
log4j.appender.console.layout.conversionPattern
=%-40l [%c]:%p -%c- %m%n

# org.apache.log4j.FileAppender 的写法 append属性代表新的日志是否覆盖旧的
# 日志,一般来说当然不用去覆盖,设置为true
log4j.appender.file
=org.apache.log4j.FileAppender
log4j.appender.file.append
=true
log4j.appender.file.file
=d:\logger.txt
log4j.appender.file.layout
=org.apache.log4j.PatternLayout
log4j.appender.file.layout.conversionPattern
=%d{yyyy-MM-dd hh:mm:ss} %F [%c]:%p -%c- %m%n

# org.apache.log4j.RollingFileAppender 的写法  这个appender很实用,
# 有些日志文件使用过于频繁,会使文件变的很庞大,需要分割
# maxFileSize 可以写 KB MB GB 一般我们设置100MB就可以了
# maxBackupIndex 设置备份文件的数目,一般我们设置2个,加上在用的,也就是全部利用满
# 总是有3个日志文件,用的时候用1KB做个小实验就可以了

log4j.appender.rollfile
=org.apache.log4j.RollingFileAppender
log4j.appender.rollfile.file
=d:\rolllogger.txt
log4j.appender.rollfile.maxFileSize
=1KB
log4j.appender.rollfile.maxBackupIndex
=2
log4j.appender.rollfile.layout
=org.apache.log4j.PatternLayout
log4j.appender.rollfile.layout.conversionPattern
=%d{yyyy-MM-dd hh:mm:ss} [%c]:%p -%c- %m%n

# org.apache.log4j.DailyRollingFileAppender 的写法,这个是在上面的appender的基础上更改进了一步
#  yyyy-MM,按月生成,生成时间为每月最后一天午夜过后,例如test.txt在2005年7月31日午夜过后会被更名为test.txt
.2005-07,然后重新生成。
#  yyyy-ww,按周生成,生成时间为每周六午夜过后,例如test.txt在2005年8月13日午夜过后会被更名为test.txt
.2005-33,33表示当年第33周。
#  yyyy-MM-dd,按天生成,生成时间为每天午夜过后,例如2005年8月16日午夜过后,test.txt会被更名为test.txt
.2005-08-16
#  yyyy-MM-dd-a,也是按天生成,但每天会生成两次,中午12:00过后一次,午夜过后一次,例如test.txt在2005年8月16 日12:00过后会被更名为test.txt
.2005-8-16-上午,午夜过后会被更名为test.txt.2005-8-16-下午。
#  yyyy-MM-dd-HH,按小时生成,例如test.txt在2005年8月16日12:00过后会被更名为test.txt
.2005-8-16-11
#  yyyy-MM-dd-HH-mm,按分钟生成,例如test.txt在2005年8月16日12:00过后会被更名为test.txt
.2005-8-16-11-59

log4j.appender.dailyrollfile
=org.apache.log4j.DailyRollingFileAppender
log4j.appender.dailyrollfile.file
=d:\dailyrolllogger.txt
log4j.appender.dailyrollfile.datePattern
=yyyy-MM-dd-HH-mm
log4j.appender.dailyrollfile.layout
=org.apache.log4j.PatternLayout
log4j.appender.dailyrollfile.layout.conversionPattern
=%d{yyyy-MM-dd hh:mm:ss} [%c]:%p -%c- %m%n


log4j.logger.org.apache.struts2
=DEBUG
log4j.logger.org.springframework
=INFO

import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;

import org.apache.log4j.PropertyConfigurator;

public class Log4jServlet extends HttpServlet {

    
private static final long serialVersionUID = -5101132572746345807L;
    
    
// Initialize global variables
    public void init() throws ServletException {
        String prefix 
= this.getServletContext().getRealPath("/");
        String file 
= this.getInitParameter("log4j");
        System.out.println(
"载入log4j配置文件" + prefix + file);
        
if (file != null{
            PropertyConfigurator.configure(prefix 
+ file);
        }

    }


    
// Clean up resources
    public void destroy() {
    }

}

    <servlet>
        
<servlet-name>log4j</servlet-name>
        
<servlet-class>
            hdu.management.library528.log4j.Log4jServlet
        
</servlet-class>
        
<init-param>
            
<param-name>log4j</param-name>
            
<param-value>WEB-INFclasseslog4j.properties</param-value>
        
</init-param>
        
<load-on-startup>1</load-on-startup>
    
</servlet>

import org.apache.log4j.Logger;

import com.opensymphony.xwork2.ActionSupport;

public class CommonAction extends ActionSupport {


    
private static final long serialVersionUID = -8805271658849961866L;

    
private static final Logger log = Logger.getLogger(CommonAction.class);
    
    
public String execute(){
        log.debug(
"这里是日志");
        
return "success";    
    }


}

自己总结了log4j的常用方法,直接可以使用,其他还有以socket、telnet、邮件等形式,用到了再查其他资料好了

工作相关 , , , ,