我爱linux

我是一个linux运维从业者,这个网站记录一些平时调试linux相关文档及生活随笔

Archive for the ‘Programming’ Category

如何让帝国下载实现弹出的页面直接下载txt等格式

without comments

默认帝国下载系统,对RAR或者ZIP是直接弹出真实下载地址,而对txt.pdf等等可读文件格式则直接在线显示

如果实现弹出的页面也能直接下载txt或者pdf格式呢?

 

修改 class/q_functions.php文件

找到 DoTypeForDownurl($downurl,$downurlr['downtype']);  这行

 

前面添加

//trylife add check type 20130509

$type2r=array(“.pdf”,”.txt”,);
if(in_array(GetFiletype($downurl),$type2r))
{
$downurlr['downtype']=2;
}

保存后就能实现了

Written by zhangweibo

五月 9th, 2013 at 2:54 下午

Posted in linux,Php

Tagged with

Discuz 在线升级lang_admincp.php 下载问题解决

without comments

Discuz! X2.5在线升级 大家应该会遇到source/language/lang_admincp.php下载问题,即使你点击n多次也是如此,这个好像已经困惑我好几次升级了

今天在论坛尤为兄弟放出一个补丁,这个问题就解决了

discuz升级补丁

 

 

Written by zhangweibo

一月 7th, 2013 at 1:27 下午

Posted in Php

Tagged with

轻松获取nginx apache mysql php的编译参数

without comments

轻松获取nginx apache mysql php的编译参数

由于工作的需要,有时候需要在一台不是你参与编译的环境调试环境,这就需要知道nginx,apache,mysql,php的编译参数,以下小方法能快速让你了解默认的服务器里的编译参数。

 

查看获取nginx的编译参数

li384-194:~# /usr/local/nginx/sbin/nginx -V
nginx: nginx version: nginx/1.0.8
nginx: built by gcc 4.3.2 (Debian 4.3.2-1.1)
nginx: configure arguments: –user=www-data –group=www-data –prefix=/usr/local/nginx –with-http_stub_status_module –with-http_gzip_static_module

 
查看获取apache的编译参数

[root@www ~]# cat /usr/local/apache2/build/config.nice
#! /bin/sh
#
# Created by configure

“./configure” \
“–prefix=/usr/local/apache2″ \
“–enable-so” \
“–enable-modules=all” \
“–enable-mods-shared=all” \
“–enable-layout=Apache” \
“–enable-ssl=static” \
“–with-ssl=/usr/local/openssl” \
“–enable-rewrite” \
“–enable-suexec” \
“–with-suexec-logfile=/www/logs/suexec.log” \
“–with-suexec-uidmin=500″ \
“–with-suexec-gidmin=100″ \
“–with-suexec-caller=nobody” \
“–with-suexec-docroot=/www” \
“$@”

 
查看获取mysql的编译参数
[root@www ~]# grep configure /usr/local/mysql4/bin/mysqlbug
# This is set by configure
CONFIGURE_LINE=”./configure ‘–prefix=/usr/local/mysql4′ ‘–sysconfdir=/etc’ ‘–enable-assembler’ ‘–without-debug’ ‘–with-client-ldflags=-all-static’ ‘–with-mysqld-ldflags=-all-static’ ‘–localstatedir=/www/mysql’ ‘–with-big-tables’ ‘–with-low-memory’ ‘–with-extra-charsets=all’ ‘–enable-thread-safe-client’ ‘–with-pthread’ ‘–with-unix-socket-path=/tmp/mysql.sock’”

 

 

参看获取php的编译参数

-extra-charsets=all’ ‘–enable-thread-safe-client’ ‘–with-pthread’ ‘–with-unix-socket-path=/tmp/mysql.sock’”
[root@www ~]# /usr/local/php5/bin/php -i |grep configure
Configure Command => ‘./configure’ ‘–prefix=/usr/local/php5′ ‘–enable-exif’ ‘–enable-mbstring’ ‘–with-iconv’ ‘–with-curl=/usr’ ‘–with-gdbm’ ‘–with-gettext’ ‘–enable-calendar’ ‘–enable-magic-quotes’ ‘–enable-wddx’ ‘–enable-ftp’ ‘–enable-inline-optimization’ ‘–with-gd=/usr/local’ ‘–with-zlib’ ‘–enable-gd-native-ttf’ ‘–with-t1lib=/usr/local’ ‘–with-zlib-dir=/usr’ ‘–with-ttf’ ‘–with-freetype-dir=/usr’ ‘–with-gd’ ‘–with-png-dir=/usr’ ‘–with-jpeg-dir=/usr’ ‘–with-mysql=/usr/local/mysql4′ ‘–enable-force-cgi-redirect’ ‘–with-apxs2=/usr/local/apache2/bin/apxs’ ‘–with-pdo-mysql=/usr/local/mysql4′ ‘–enable-sockets’ ‘–with-openssl=/usr/local/openssl’

 

Written by zhangweibo

十二月 19th, 2012 at 8:42 下午

Posted in apache,Mysql,nginx,Php

Tagged with , , , , ,

sed命令详解(一)

without comments

1.简介
sed是非交互式的编辑器。它不会修改文件,除非使用shell重定向来保存结果。默认情况下,所有的输出行都被打印到屏幕上。
sed编辑器逐行处理文件(或输入),并将结果发送到屏幕。具体过程如下:首先sed把当前正在处理的行保存在一个临时缓存区中(也称为模式空间),然后处理临时缓冲区中的行,完成后把该行发送到屏幕上。sed每处理完一行就将其从临时缓冲区删除,然后将下一行读入,进行处理和显示。处理完输入文件的最后一行后,sed便结束运行。sed把每一行都存在临时缓冲区中,对这个副本进行编辑,所以不会修改原文件。
2.定址
定址用于决定对哪些行进行编辑。地址的形式可以是数字、正则表达式、或二者的结合。如果没有指定地址,sed将处理输入文件的所有行。地址是一个数字,则表示行号;是“$”符号,则表示最后一行。如1,3表示1,2,3行,美元符号($)表示最后一行。范围可以通过数据,正则表达式或者二者结合的方式确定 。

sed -n ’3p’ filename
只打印第3行

sed -n ’1,4p’ filename
打印第1行到第4行

sed -n ‘$p’ filename
打印最后一行

地址是逗号分隔的,那么需要处理的地址是这两行之间的范围(包括这两行在内)。范围可以用数字、正则表达式、或二者的组合表示。例如:
sed ’2,5d’ filefile
删除第二到第五行

sed ‘/My/,/You/d’ filefile
删除包含”My”的行到包含”You”的行之间的行

sed ‘/My/,10d’ filefile
删除包含”My”的行到第十行的内容

sed ’2,$d’ filename
删除第2行到最后一行的内容

 

3.基本操作

[地址范围]/p 打印 打印[指定的地址范围]
[地址范围]/d 删除 删除[指定的地址范围]
s/pattern1/pattern2/ 替换 将指定行中, 将第一个匹配到的pattern1, 替换为pattern2.
[地址范围]/s/pattern1/pattern2/ 替换 在地址范围指定的每一行中, 将第一个匹配到的pattern1, 替换为pattern2.
[地址范围]/y/pattern1/pattern2/ transform 在地址范围指定的每一行中, 将pattern1中的每个匹配到pattern2的字符都使用pattern2的相应字符作替换. (等价于tr命令)
g 全局 在每个匹配的输入行中, 将每个模式匹配都作相应的操作. (译者注: 不只局限于第一个匹配)
实例:

sed 8d filename
删除输入的第8行.

sed /^$/d filename
删除所有空行.

sed 1,/^$/d filename
从输入的开头一直删除到第1个空行(第一个空行也删除掉).

sed -n /Jones/p filename
只打印那些包含”Jones”的行(使用-n选项).

sed s/Windows/Linux/ filename
在每个输入行中, 将第一个出现的”Windows”实例替换为”Linux”.

sed s/BSOD/stability/g filename
在每个输入行中, 将所有”BSOD”都替换为”stability”.

sed s/ *$// filename
删除掉每行结尾的所有空格.

sed s/00*/0/g filename
将所有连续出现的0都压缩成单个的0.

sed s/GUI//g filename
将所有”GUI”都删除掉, 并保持剩余部分的完整性.
删除:d命令
$ sed ’2d’ example

删除example文件的第二行。

$ sed ’2,$d’ example
删除example文件的第二行到末尾所有行。

$ sed ‘$d’ example
删除example文件的最后一行。

$ sed /GUI/d filename
删除掉所有包含”GUI”的行.

$ sed ‘/test/’d example
删除example文件所有包含test的行。

替换:s命令
$ sed ‘s/test/mytest/g’ example
在整行范围内把test替换为mytest。如果没有g标记,则只有每行第一个匹配的test被替换成mytest。

$ sed -n ‘s/^test/mytest/p’ example
(-n)选项和p标志一起使用表示只打印那些发生替换的行。也就是说,如果某一行开头的test被替换成mytest,就打印它。

$ sed ‘s/^192.168.0.1/&localhost/’ example
&符号表示替换换字符串中被找到的部份。所有以192.168.0.1开头的行都会被替换成它自已加localhost,变成192.168.0.1localhost。

$ sed -n ‘s/\(love\)able/\1rs/p’ example
love被标记为1,所有loveable会被替换成lovers,而且替换的行会被打印出来。

$ sed ‘s#10#100#g’ example
不论什么字符,紧跟着s命令的都被认为是新的分隔符,所以,“#”在这里是分隔符,代替了默认的“/”分隔符。表示把所有10替换成100。

 

有在命令行上给出多个指令时才需要用-e选项。它告诉sed将下一个参数解释为指令。当只有1个指令时,sed可以自己做决定

例如:下面2个命令等价

sed ‘s/MA/Massa/;s/PA/Pennsy/’ list
sed -e ‘s/MA/Massa/’ -e ‘s/PA/Pennsy/’ list
sed的默认操作是输出每个输入行。-n选项可以阻止自动输出。当指定该选项时,没个要生成输出的指令都必须包含打印命令p

sed -n -e ‘s/MA/Massa/p’ list

 

Written by zhangweibo

十一月 20th, 2012 at 8:55 上午

Posted in sed+awk

Tagged with