cygwin:生存指南(简介,安装,使用,技巧)

前言

cygwin是让windows获得unix/linux部分功能的一个神器,本文是个人的一些经验,推荐初学者参考。有一经验的读者也可参阅斧正。

cygwin是什么?

cygwin是运行在windows下的GNU/linux环境,包含了几乎所有的常用Linux软件,使用上跟linux高度一致。由RedHat主导开发。cygwin官网

cygwin安装

到cygwin官网上下载安装程序: setup-x86.exe (32-bit ) or setup-x86_64.exe (64-bit )。双击运行,有安装向导,照做即行。

其中有两个路径一个url,有必要关注一下:[……]

继续阅读

MySQL(csv,text)导入mssql方法参考

分两步处理,第一步是将csv导入到mysql。没有使用mssql自带客户端的导入功能,因为这个功能太坑,尝试N多种方法仍然是报错,因此选择先转换成mysql做中间步骤。

csv/text导入MySQL

一批很大的csv数据(其实并非csv,而是制表符分隔字段),要导入到mssql数据库里。

首先在cygwin下使用awk对数据做预处理,只筛选出字符数正确的行。并且在首行加入列名,以便导入工具自动做列对应。

然后计算各字段最大长度;因为字段数太多(63个),所以计算一下,用于构造create table语句。对于最大长度在255以下的字段使用varchar(n)型,255以上使用[……]

继续阅读

phpmyadmin3.x版在windows下的新版本php里日期显示乱码的补丁方案

> 这个问题应该在php5.5.30 与 7.3.11中不再出现。或许,这是灵异问题。 
因为近年一直使用在apache里以fast-cgi模式开以一个php5.3运行phpmyadmin;
前几天偶然发现这个问题并不存在了,或许以前真的只是灵异现象。
本文所述的phpMyAdmin3.x的版本,托管在github上,随着php的版本有不定期的持续更新 phpMyAdmin3x@github

现象:

一直使用的phpmyadmin3.5版本(RELEASE-DATE-3.5.0,一个做了配置优化的版本 phpMyAdmin_3.5_path8.net),这个版本比较简洁,不[……]

继续阅读

mac osx下apache下的坑: you don’t have permission to access / on this server

max osx下的apache实在别扭,配置文件被拆得支离破碎(虽然有点拆分还是有道理的),这倒可以慢慢适应。无语的是竟然报403错:

apache you don’t have permission to access / on this server. mac

Apache/2.4.16 (Unix) PHP/5.5.29

google后,得知,要在Directory指令里,增加一条 Require all granted,如下示:

<Directory "/Users/jnovack/Sites/">
  Options Indexes MultiVie[......]

继续阅读

一些wordpress插件兼容php7.x后的一些修改

不知算不算手贱,把VPS服务器上的php升级到7.0, 虽然7.x与之前的兼容性是很高的,但移除了一大堆过时用法,而某些老应用仍然在使用。对个人wordpress站点里出现的错误,修正记录如下。全部是插件,wordpress官方程序,是没有问题的。

mysql_escape_string() 函数改为addslashes()

wp-thread-comment插件 wp-content/plugins/wordpress-thread-comment/wp-thread-comment.php  有多处

mysql_* 系列函数在php7里全部移除了,所以建议在所有文件里搜索一下 m[……]

继续阅读

php下数据库持久连接,及apache模块下“数据库并发连接数超限”的潜在风险

php下的多个数据库引擎都提供持久连接的特性,实现了“连接池”的作用,让数据库连接“复用”,目的是减少php引擎连接数据库的消耗。这有类似fastCGI协议的设计初衷:让后端进程复用,节省启动关闭CGI进程的性能开锁。

数据库持久连接的实现方式

这需要从php的运行模式说起。典型的php运行模式是传统CGI、fastCGI、web模块三种。

其中CGI模式不支持持久连接,因为php每次处理请求,都是由一个独立的进程(操作系统的进程)处理,请求处理完毕,进程就销毁了,相应的数据连接之类的资源当然也已不存在,所以CGI本身是不支持持久连接的。

fastCGI模式下,php进程由进程[……]

继续阅读

CGI原理示例,及CGI,FastCGI,php-cgi,php-fpm等的总结

CGI

CGI全名“通用网关接口”(Common Gateway Interface),是一个技术规范,用来动态生成网页html。理论上可以使用任意语言写,只要支持标准输入输出及环境变量即可(标准输入输出概念参考C语言中stdio库的printf函数)。

举例简述一下实现细节,以类C语言伪代码演示(不想了解CGI细节可以跳过)

CGI程序 /usr/local/cgi/hello

printf("Content-type: text/html; charset=UTF-8")
printf("\r\n\r\n")
printf("hello world")

注意两个连续换[……]

继续阅读

mac port 更新报错:Error installing new MacPorts base: command execution failed

核心提示:

回想你是不是更新过xcode,而且更新过后,还没有使用过。如果是,请同意一下命令行版的用户协议,终端里运行

sudo xcodebuild -license

然后按提示输入 agree,完了重试port更新。

如果不是这样,那请转到google搜索,并啃英文资料吧。

其实只需要看到这里就够了,下面是发现这一点的过程,可以认为是废话,不推荐继续阅读;读了也不多,多花费一点时间而已。

[……]

继续阅读