自荐文章
工具由官方提供,支持winxp及以上版本,i下载地址:
http://www.microsoft.com/downloads/details.aspx?familyid=e59c3964-672d-4511-bb3e-2d5e1db91038
wget http://apache.freelamp.com/httpd/httpd-2.2.14.tar.gz
tar zxvf httpd-2.2.14.tar.gz
./configure --prefix=/usr/local/apache2/ --enable-proxy --enable-ssl --enable-cgi --enable-rewrite --enable-so --enable-module=so
make
make install
/usr/local/apache2/bin/apachectl start
wget mysql-server*.rpm
wget mysql-client*.rpm
wget mysql-devel*.rpm
wget mysql-share*.rpm
rpm -ivh 这三个
wget http://cn2.php.net/get/php-5.2.12.tar.gz/from/cn.php.net/mirror
tar zxvf php-5.2.12.tar.gz
./configure --prefix=/usr/local/php5 --with-apxs2=/usr/local/apache2/bin/apxs --disable-ctype --with-gd --enable-mbstring --with-mysql=/usr
make
make install
/apache2/modules/libphp5.so into server: /usr/local/apache2/modules/libphp5.so: cannot restore segment prot after reloc: Permission denied
这是由于selinux引起的,所以需要这样一下:
chcon -t textrel_shlib_t libphp5.so
php make的时候会去找/usr/lib/mysql/libmysqlclient.so,而这个文件位置其实是在 /usr/lib/libmysqlclient.so.16.0.0
ln -s /libmysqlclient.so /usr/lib/libmysqlclient.so.16.0.0
安装php的时候包含 mysql,如果mysql是使用rpm安装的,则--with-mysql=/usr
--with-apxs2=/usr/local/apache2/bin/apxs 这个是apache2的安装路径,一开始使用 ./configure --help 居然用--with-apache,害的费了好半天的劲,原来是一个过了时的参数。
最后在httpd.conf 中加入:
#
<FilesMatch \.php$>
SetHandler application/x-httpd-php
</FilesMatch>
<FilesMatch "\.ph(p[2-6]?|tml)$">
SetHandler application/x-httpd-php
</FilesMatch>
<FilesMatch "\.phps$">
SetHandler application/x-httpd-php-source
</FilesMatch>
RewriteEngine On
RewriteRule (.*\.php)s$ $1 [H=application/x-httpd-php-source]
用到的网站
http://www.php.net/manual/en/install.unix.apache2.php
http://dev.mysql.com/downloads/
http://www.apache.org/
* SQLCODE -991, Error: CALL ATTACH WAS UNABLE TO ESTABLISH AN IMPLICIT CONNECT OR OPEN TO DB2. RC1= RC2=
* SQLCODE -981, Error: THE SQL STATEMENT FAILED BECAUSE THE RRSAF CONNECTION IS NOT IN A STATE THAT ALLOWS SQL OPERATIONS, REASON
* SQLCODE -950, Error: THE LOCATION NAME SPECIFIED IN THE CONNECT STATEMENT IS INVALID OR NOT LISTED IN THE COMMUNICATIONS DATABASE
* SQLCODE -948, Error: DISTRIBUTED OPERATION IS INVALID
* SQLCODE -947, Error: THE SQL STATEMENT FAILED BECAUSE IT WILL CHANGE A TABLE DEFINED WITH DATA CAPTURE CHANGES, BUT THE DATA CANNOT BE PROPAGATED
* SQLCODE -939, Error: ROLLBACK REQUIRED DUE TO UNREQUESTED ROLLBACK OF A REMOTE SERVER
* SQLCODE -929, Error: FAILURE IN A CHANGED DATA CAPTURE EXIT:
* SQLCODE -927, Error: THE LANGUAGE INTERFACE (LI) WAS CALLED WHEN THE CONNECTING ENVIRONMENT WAS NOT ESTABLISHED. THE PROGRAM SHOULD BE INVOKED UNDER THE DSN COMMAND
* SQLCODE -926, Error: ROLLBACK NOT VALID IN IMS OR CICS ENVIRONMENT
* SQLCODE -925, Error: COMMIT NOT VALID IN IMS OR CICS ENVIRONMENT
* SQLCODE -924, Error: DB2 CONNECTION INTERNAL ERROR, , ,
* SQLCODE -923, Error: CONNECTION NOT ESTABLISHED: DB2 , REASON , TYPE , NAME
* SQLCODE -922, Error: AUTHORIZATION FAILURE: ERROR. REASON
* SQLCODE -919, Error: A ROLLBACK OPERATION IS REQUIRED
* SQLCODE -918, Error: THE SQL STATEMENT CANNOT BE EXECUTED BECAUSE A CONNECTION HAS BEEN LOST
* SQLCODE -917, Error: BIND PACKAGE FAILED
* SQLCODE -913, Error: UNSUCCESSFUL EXECUTION CAUSED BY DEADLOCK OR TIMEOUT. REASON CODE , TYPE OF RESOURCE , AND RESOURCE NAME
* SQLCODE -911, Error: THE CURRENT UNIT OF WORK HAS BEEN ROLLED BACK DUE TO DEADLOCK OR TIMEOUT. REASON , TYPE OF RESOURCE , AND RESOURCE NAME
* SQLCODE -910, Error: THE SQL STATEMENT CANNOT ACCESS AN OBJECT ON WHICH A DROP OR ALTER IS PENDING
* SQLCODE -909, Error: THE OBJECT HAS BEEN DELETED OR ALTERED
* SQLCODE -908, Error: ERROR USING AUTHORITY. BIND, REBIND, OR AUTO-REBIND OPERATION IS NOT ALLOWED
* SQLCODE -906, Error: THE SQL STATEMENT CANNOT BE EXECUTED BECAUSE THIS FUNCTION IS DISABLED DUE TO A PRIOR ERROR
* SQLCODE -905, Error: UNSUCCESSFUL EXECUTION DUE TO RESOURCE LIMIT BEING EXCEEDED, RESOURCE NAME = LIMIT = CPU SECONDS ( SERVICE UNITS) DERIVED FROM
* SQLCODE -904, Error: UNSUCCESSFUL EXECUTION CAUSED BY AN UNAVAILABLE RESOURCE. REASON , TYPE OF RESOURCE , AND RESOURCE NAME
* SQLCODE -902, Error: POINTER TO ESSENTIAL CONTROL BLOCK(RDA/CT) HAS VALUE 0, REBIND REQUIRED
* SQLCODE -901, Error: UNSUCCESSFUL EXECUTION CAUSED BY A SYSTEM ERROR THAT DOES NOT PRECLUDE THE SUCCESSFUL EXECUTION OF SUBSEQUENT SQL STATEMENTS
* SQLCODE -900, Error: THE SQL STATEMENT CANNOT BE EXECUTED BECAUSE THE APPLICATION PROCESS IS NOT CONNECTED TO AN APPLICATION SERVER
* SQLCODE -882, Error: SAVEPOINT DOES NOT EXIST
* SQLCODE -881, Error: A SAVEPOINT WITH NAME ALREADY EXISTS, BUT THIS SAVEPOINT NAME CANNOT BE REUSED
* SQLCODE -880, Error: SAVEPOINT DOES NOT EXIST OR IS INVALID IN THIS CONTEXT
* SQLCODE -879, Error: CREATE OR ALTER STATEMENT FOR CANNOT DEFINE A COLUMN, DISTINCT TYPE, FUNCTION OR STORED PROCEDURE PARAMETER AS MIXED OR GRAPHIC WITH ENCODING SCHEME
* SQLCODE -878, Error: THE PLAN_TABLE USED FOR EXPLAIN CANNOT BE ASCII
* SQLCODE -877, Error: CCSID ASCII IS NOT ALLOWED FOR THIS DATABASE OR TABLE SPACE
* SQLCODE -876, Error: CANNOT BE CREATED, REASON
* SQLCODE -875, Error: CANNOT BE USED WITH THE ASCII DATA REFERENCED
* SQLCODE -874, Error: THE ENCODING SCHEME SPECIFIED FOR THE MUST BE THE SAME AS THE CONTAINING TABLE SPACE OR OTHER PARAMETERS
* SQLCODE -873, Error: DATA ENCODED WITH DIFFERENT CCSIDS CANNOT BE REFERENCED IN THE SAME SQL STATEMENT
* SQLCODE -872, Error: A VALID CCSID HAS NOT YET BEEN SPE
继续阅读其余的 59214 字
突然要配个ssl服务器,忘记证书怎么配了,这个东西很久以前就配过了,但是很久不动就忘记了,又需要重复学习一下了。就和配ftp和邮件服务器一样,每次配置都需要重新学习一遍。。。
要做类似的事情,还是得要写一下笔记的。
以下内容为转载,作为参考完全可以用。
基于的Ubuntu版本Edgy,在Ubuntu下面安装配置Apache都比较简单。相应的配置文件位置如下:
默认站点在 /var/www/
配置文件在 /etc/apache2/
日志在 /var/log/apache/
启动脚本是 /usr/sin/apache2ctl 或者 /etc/init.d/apache2
1,安装Apache
$sudo apt-get install apache2
2,开启SSL模块
$sudo a2enmod ssl
3,创建证书
可以使用apache内置的工具创建默认的证书,通过-days指定有效期。
$sudo apache2-ssl-certificate
另外我们可以使用openssl来创建
$sudo openssl req -x509 -newkey rsa:1024 -keyout apache.pem -out apache.pem -nodes -days 999
注:在要求输入Common Name (eg, YOUR name) 时,输入你的主机名。
4,编辑SSL的配置
我们可以将当前的默认站点配置文件拷贝一份,然后进行修改
#vi /etc/apache2/sites-enabled/001-ssl
把端口改为443
加入SSL认证配置
其它的根据需要自己定制 与普通配置无异
NameVirtualHost *:443
ServerSignature On
SSLEngine On
SSLCertificateFile /etc/apache2/ssl/apache.pem
ServerAdmin webmaster@localhost
#[......]
修改普通http方式的配置
#vi /etc/apache2/sites-enabled/000-default
把端口改为80
NameVirtualHost *:80
ServerAdmin webmaster@localhost
#[......]
编辑Apache端口配置,加入443端口(SSL的)
#vi /etc/apache2/ports.conf:
Listen 80
Listen 443
重新载入Apache的配置
#/etc/init.d/apache2 force-reload
或者重新启动Apache2
#/etc/init.d/apache2 restart
還有一種情況
一、激活模块(有两种方法)
1.运行命令
a2enmod ssl
这条命令相当于
sudo ln -s /etc/apache2/mods-available/ssl.load /etc/apache2/mods-enabled
sudo ln -s /etc/apache2/mods-available/ssl.conf /etc/apache2/mods-enabled
然后Include /etc/apache2/mods-enabled/*.load
2.或直接在apache2.conf中加入模块引导
LoadModule ssl_module /usr/lib/apache2/modules/mod_ssl.so
二、安装openssl
然后执行命令生成证书
openssl req -x509 -newkey rsa:1024 -keyout apache.pem -out apache.pem -nodes -days 999
其中999是证书的有效期
回答一些问题,比如:
Country Name (2 letter code) [AU]:CN
State or Province Name (full name) [Some-State]:gd
Locality Name (eg, city) []:gz
Organization Name (eg, company) [Internet Widgits Pty Ltd]:XXX
Organizational Unit Name (eg, section) []:YYY
Common Name (eg, YOUR name) []:server2 这里是授权的主机名
Email Address []:111@gmail.com
运行之后会在/etc/apache2下面生成一个apache.pem
为了方便管理。在/etc/apache2下面建立一个ssl的文件夹。把apache.pem放进去
三、加入侦听端口
在apache2.conf中加入Listen 443或Include /etc/apache2/ports.conf
四、配置站点文件
把默认端口改为443
在<Virtualhost>下面加入
SSLEngine on
SSLCertificateFile /etc/apache2/ssl/apache.pem
例:
NameVirtualHost *:443
<VirtualHost *:443>
SSLEngine on
SSLCertificateFile /etc/apache2/ssl/apache.pem
ServerAdmin webmaster@localhost
DocumentRoot /var/www
ServerName 192.168.60.131
<Directory />
Options FollowSymLinks
AllowOverride All
</Directory>
<Directory /var/www/>
Options FollowSymLinks MultiViews
AllowOverride None
Order allow,deny
allow from all
# This directive allows us to have apache2's default start page
# in /apache2-default/, but still have / go to the right place
#RedirectMatch ^/$ /apache2-default/
</Directory>
重启apache服务
测试https://localhost/,ie会弹出security alert,ff会显示是否添加exception的信息
生成证书请求文件(CSR)
进入OpenSSL安装的目录,运行如下命令生成私钥:
openssl genrsa -des3 1024 -out server.key
Loading 'screen' into random state - done
Generating RSA private key, 1024 bit long modulus
..........++++++
........++++++
e is 65537 (0x10001)
Enter pass phrase:
Verifying - Enter pass phrase:
如果使用-des3参数,将会需要输入一个密码对私钥进行加密,如不需要对私钥加密请不要使用-des3选项。
输入两次密码后,将会生成server.key私钥文件
运行如下命令生成证书请求文件(CSR)
openssl req -new -key server.key –out server.csr
http://wiki.ubuntu.org.cn/UbuntuHelp:Forum/server/apache2/SSL
#coding=utf-8
from win32com import client as wc
word = wc.Dispatch('Word.Application')
doc = word.Documents.Open('d:/labs/math.doc')
doc.SaveAs('d:/labs/math.html', 8)
doc.Close()
word.Quit()
关键的就是doc.SaveAs(’d:/labs/math.html’, 8)这一行,网上很多文章写成:doc.SaveAs(’d:/labs/math.html’, win32com.client.constants.wdFormatHTML),直接报错:
AttributeError: class Constants has no attribute ‘wdFormatHTML’
当然你也可以用上面的代码将word文件转换成任意格式文件(只要office 2007支持,比如将word文件转换成PDF文件,把8改成17即可),下面是office 2007支持的全部文件格式对应表:
wdFormatDocument97 = 0
wdFormatDocumentDefault = 16
wdFormatDOSText = 4
wdFormatDOSTextLineBreaks = 5
wdFormatEncodedText = 7
wdFormatFilteredHTML = 10
wdFormatFlatXML = 19
wdFormatFlatXMLMacroEnabled = 20
wdFormatFlatXMLTemplate = 21
wdFormatFlatXMLTemplateMacroEnabled = 22
wdFormatHTML = 8
wdFormatPDF = 17
wdFormatRTF = 6
wdFormatTemplate = 1
wdFormatTemplate97 = 1
wdFormatText = 2
wdFormatTextLineBreaks = 3
wdFormatUnicodeText = 7
wdFormatWebArchive = 9
wdFormatXML = 11
wdFormatXMLDocument = 12
wdFormatXMLDocumentMacroEnabled = 13
wdFormatXMLTemplate = 14
wdFormatXMLTemplateMacroEnabled = 15
wdFormatXPS = 18
照着字面意思应该能对应到相应的文件格式,如果你是office 2003可能支持不了这么多格式。word文件转html有两种格式可选wdFormatHTML、wdFormatFilteredHTML(对应数字 8、10),区别是如果是wdFormatHTML格式的话,word文件里面的公式等ole对象将会存储成wmf格式,而选用 wdFormatFilteredHTML的话公式图片将存储为gif格式,而且目测可以看出用wdFormatFilteredHTML生成的HTML 明显比wdFormatHTML要干净许多。
当然你也可以用任意一种语言通过com来调用office API,比如PHP.
Tiobe公布了2009年9月的编程语言排行榜,PHP首次进入前三,C++下降一位,排名第四。PHP的份额增长0.91%,达到10.156%,名次上升了2位。
前20名的排名如下:
再来看看排名前十位的编程语言-4年、5年、25年前的对比:
已经研究几天了,主要是英文不好,查资料比较费劲。而python的中文相关文档不太全,只能看官方的英文,进度太慢了~python的API 比较丰富,不过在web browser这一块比PHP 还是差很多。
程序比较简单,就是获取用户输入的用户名和密码,然后存放到 文件系统中去。
#-*-coding=utf-8-*-
import cgi
print 'Content-Type: text/plain'
form = cgi.FieldStorage()
userName = form["user_name"].value
password = form["password"].value
try:
f = open("/tmp/python.login.log", "r+")
f.read()
print f.tell()
f.write(userName+"\t"+password+"\n")
except:
pass
finally:
f.close()
