Twitter Subscribe to PHP Blog RSS Feed Email RSS

Windows 10 上的 PHP 开发环境

没有评论 2015年8月31日

windows-10-php这里有标题党之嫌,其实也就是原本在 Windows 7 上安装好的开发环境,升级到 Windows 10 后发生的一点点变化,真正的环境配置请移步 Windows 上的 PHP 开发环境

其实如果之前的 Windows 上按标准安装好了开发环境,升级后基本上只需要停止默认的 Web 服务即可,操作如下

在底部搜索框键入 services 以打开服务窗口,停止并禁用以下服务

Windows Process Activation Service
World Wide Web Publishing Service
Net.Pipe Listener Adapter
Net.Msmq Listener Adapte

然而我在更新 Windows 10 之前先做了完全备份,然后吧开发环境的整个文件夹做备份操作时剪切到了别的位置,所以更新后,发现 Apache、MySQL 的相关服务都没有安装,所以还原文件夹后,需要安装服务。

以管理员身份打开 CMD,定位到 Apache 安装目录,执行

.\bin\httpd.exe -k install
.\bin\mysqld --install MySQL --defaults-file=C:\Server\data\my.ini

参数解释

–install MySQL 安装一个名称为 MySQL 的服务
–defaults-file=C:\Server\data\my.ini 指定启动服务使用的配置文件

然后开发环境恢复如初了。

BTW:
Windows 10 比起之前的版本操作效率大大提升了,系统级搜索真正是个像样的搜索了,程序、设置基本都是可以通过搜索打开,而且反应迅速;不好之处是程序兼容方面还是有点问题,开机速度不佳或许跟程序有关,估计新安装的系统会好些。另外升级之后,建议查看事件查看器里的“Windows 日志”,启动时加载的服务有问题的会在这里列出,逐条解决。

PHP cURL 登入与获取页面

1 条评论 2015年8月22日

PHP 使用的 cURL 依靠 libcurl 库,libcurl 很好的支持 http、https,因而在登入和获取页面时完全可以充当浏览器的角色。

下面介绍一下我常用到的登入和获取页面代码,功能上,记录了登入 cookie,可以一次登入后免登入直至 cookie 过期。

应用场景:某些小型服务网站没有提供 API,但是要经常性的获取某些登入后的数据。

首先是登入函数

function curl_login($url, $ch, $cookie_jar, $loginvars) {

if (is_null($ch))
    $ch = curl_init();

curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_REFERER, $url);
//curl_setopt($ch, CURLOPT_AUTOREFERER, 1); //某些场景同上
curl_setopt ($ch, CURLOPT_USERAGENT, "Mozilla/5.0 (Windows NT 6.1; WOW64; rv:38.0) Gecko/20100101 Firefox/38.0");
//curl_setopt($ch, CURLOPT_NOBODY, 1);
curl_setopt($ch, CURLOPT_COOKIEFILE, $cookie_jar);
curl_setopt($ch, CURLOPT_COOKIEJAR, $cookie_jar);
// 将curl_exec()获取的信息以文件流的形式返回,而不是直接输出
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt ($ch, CURLOPT_SSL_VERIFYPEER, 0);
curl_setopt($ch, CURLOPT_POSTFIELDS, http_build_query($loginvars));
//$httpCode = curl_getinfo($ch, CURLINFO_HTTP_CODE);
$content = curl_exec($ch);
if ($error = curl_error($ch)) {
    echo "Curl error: $error";
    return false;
}
return $ch;
}


继续阅读…

Vimwiki 语法高亮

没有评论 2015年7月26日

几年前开始用的 SyntaxHighlighter2 插件来给代码语法高亮,由于懒一直没有更换,今天实在看不下去,而且又发现 PRISM 的简洁耐看,于是决定将 Blog 和 Wiki 页面都替换过来。

WordPress 的话很简单,可以使用插件,或者如下:

  1. 这里按需求下载
  2. 加载 prism.js 与 prism.css
  3. 需要高亮的代码用 <pre><code class=”language-xxx”></code></pre> 包围

但是我使用的 Vimwiki 生成 pre 标签的语法下不能再加生成 code 标签的语法,所以我尝试用我粗陋的 jQuery 技能来实现一下。

$("#content pre").each(function() {
    var language = $(this).attr('class');
    $(this).wrapInner("<code class='" + language + "'></code>");
});

在 default.tpl 模板文件中,头部加载 prism.css,然后在</body>标签前加入 jQuery 的 js 文件,然后代码如下:

接下来加载 prism.js

在 Vimwiki 中使用

{{{class="language-php"
echo "Hello World!";
}}}

Ubuntu Server 破壳漏洞修复

没有评论 2014年10月1日

2014 年 9 月 24 日,Bash 惊爆严重安全漏洞,编号为 CVE-2014-6271,该漏洞将导致远程攻击者在受影响的系统上执行任意代码。破壳漏洞(ShellShock)的严重性被定义为 10 级(最高)。

GNU Bash 4.3 及之前版本在评估某些构造的环境变量时存在安全漏洞,向环境变量值内的函数定义后添加多余的字符串会触发此漏洞,攻击者可利用此漏洞改变或绕过环境限制,以执行 Shell 命令。某些服务和应用允许未经身份验证的远程攻击者提供环境变量以利用此漏洞。此漏洞源于在调用 Bash Shell 之前可以用构造的值创建环境变量。这些变量可以包含代码,在 Shell 被调用后会被立即执行。

查询 Bash 版本

$bash -version
继续阅读…

Ubuntu Server 上的安全 OpenSSL 版本及更新

没有评论 2014年4月13日

以下为修复漏洞的 Ubuntu 发行版本中最低的版本要求

  • Ubuntu 10.04: 此发行版本的 OpenSSL 不受影响
  • Ubuntu 12.04: 1.0.1-4ubuntu5.12
  • Ubuntu 12.10: 1.0.1c-3ubuntu2.7
  • Ubuntu 13.04: 官方支持已经过期,有必要升级系统
  • Ubuntu 13.10: 1.0.1e-3ubuntu1.2
  • 查看目前版本

    dpkg -l | grep openssl
    

    安全更新

    鉴于 Ubuntu 系统中版本库的依赖关系,不建议手工更新 OpenSSL 1.0.1g

    sudo apt-get update && sudo apt-get upgrade

    为了确保 SSH 连接不受影响,更新完成后,断开目前的连接前,先新开登录窗口尝试

    单独更新受影响的 OpenSSL

    sudo apt-get install --only-upgrade openssl
    sudo apt-get install --only-upgrade libssl1.0.0
    

    用 PHP 简单的输出 Google Reader Json

    没有评论 2013年9月17日

    离 Google Reader 逝去两个来月了,此文仅作个纪念

    下载 user@gmail.com-takeout 文件并解压后,得到的是 json 文件,用 json_decode() 函数做一下解码 json 的操作

    date_default_timezone_set('Asia/Chongqing');
    $handle = fopen("GR/starred.json", "rb");
    $content = stream_get_contents($handle);
    fclose($handle);
    $content = json_decode($content);
    


    继续阅读…

    WordPress 修改自动间隔与禁用修订版本

    没有评论 2012年12月23日

    wordpress-code-imageWordPress: Modify autosave interval and disable post revisions

    打开 WordPress 主配置文件 wp-config.php 添加下述代码

    // 更改自动保存间隔
    define('AUTOSAVE_INTERVAL', 6000 ); // seconds
    

    将自动保存间隔增加到一定时间,就无需在 wp-admin/post.php 和 wp-admin/post-new.php 文件内注释 wp_enqueue_script(‘autosave’); 因为每次自动更新 WordPress 就必须将修改过的代码重来一次。

    Notice: 不管是上述何种修改自动保存的方法,经测试(WordPress 3.x),在一种情况下不起作用,就是新添加文章时标题栏空白,不做任何保存操作即离开编辑页面,将会保存一篇标题为自动草稿的文章到数据库,而且在 WordPress 的控制面板中不会显示出来,同时输入的内容不会存储在数据库。
    继续阅读…

    Mac 神器之 Time Machine

    没有评论 2012年12月20日

    Time Machine

    伴随着进入 Time Machine,一个华丽的时光隧道映入眼帘,这是一个既华丽又务实的备份工具,也是我觉得为什么程序员要使用Mac OS X的原因之一,因为有她,节约生命!

    想起 Windows XP 的时代,计算机系的同学都有过无数次给别人装系统的经历,安装完毕之后的驱动、优化、程序,那都是噩梦,用上 Ghost 之后,轻松了一大截,然而 Ghost,只是个单一的镜像,相当于完全备份,你无法做增量备份,恢复之后,镜像点后的事情,你还是得重新来过。而且 Ghost 只解决了系统备份的问题,文件备份呢?鲜有人将整个硬盘做 Ghost 镜像,现在硬盘的容量之大,等待的时间都不会让你想这样做的。所以会有用过 Mac OS X 的人说,Windows 浪费生命。
    继续阅读…

    我使用的 Dropbox VS Google Drive

    没有评论 2012年12月3日

    自从2010年开始使用Dropbox,便爱不释手,U盘什么的立刻被贬到了光盘的地位,这也算是我第一个使用的云服务。Dropbox 的主要工作就是同步文件,但于此同时,也可以和某些特定用户分享文件,也可以将某些文件公共分享,但文件不能直接是PHP,JSP,JS等可执行脚本,如果这些文件包含在压缩包内,便可行了。

    刚开始Dropbox 的文件传输速度还是很客观的,但随着大陆网络的“日新月异”,目前的速度凑合着使用。有一次上传某个几GB文件时只用了几分钟的速度,当时惊了,而后知道某些常出现的文件在服务端有文件对比,如果别的用户有此完全一样的文件,那么就复制一份给你,无需占用上传带宽了

    Google Drive 发布的第一天就意料之中的被挂了,只能通过修改Host 或者其他方式使用,刚发布时的速度也是可观,直至今日,由于Google 大量的IP处于 Blacklist,国内的速度已然跟不上来,使用起来也较为麻烦,然而,这仍然没有阻止我的使用。
    继续阅读…

    会话处理:一个简单的登入登出

    没有评论 2012年3月8日

    关于会话处理

    HTTP 是一种无状态的协议,说明每次请求的处理都与之前或之后的 请求无关,但是为了能够调整用户特有的行为和首选项,出现了一种在客户端存储少量信息(常称为cookie)的实践,但由于 cookie 大小的限制、所允许的 cookie 数量以及 cookie 的实现上的各种不一致,出现了另外一种解决方案:会话处理。

    会话处理的实现方式是为每位网站访问者分配一个称之为会话 ID(SID)的唯一标识属性,然后将此 SID 与任意数量的数据关联。

    继续阅读…

    雪纷飞,心曼舞

    2 条评论 2012年2月28日

    自然的美丽,总是奇特,让人心旷神怡,雪景就是其中一种。没有亲见雪的人一直期待着与雪的相遇,就像等待一场恋爱一样。

    这还是前年的雪景,一夜而成,十分厚重。早上起来一发现,即便要赶去上班,但我还是拿起了相机,一路小跑着拍,像个看到新奇事情的孩子一般快乐,大雪纷飞,我心曼舞,这时的我很希望自己是一个舞者,用身体的律动,释放心绪的节奏。
    继续阅读…

    琵琶语

    没有评论 2011年7月31日

    深夜,用耳朵翻阅了林海的《琵琶相》,最喜欢的曲子是《琵琶语》和《欢沁》。

    第一次听到《欢沁》还是在看孙科的舞蹈《孔乙己》时,这支优秀的古典舞加上这首神奇的琵琶配乐,欢乐就像雪花一样洒满全身。

    琵琶语,不知道用英文怎么表达,URL里是写的pipa-says,因为随着音符流出,感觉琵琶向你走来,竟是一个异常美丽的女人,在寂静的,月光皎洁的深夜,细细的吐露着忧伤。

    然而如是,忧伤也是一种美丽,竟看你如何去品味。

    给《琵琶语》的配词有很多首,其中之一我觉得最贴切姜文、徐静蕾主演的《一个陌生女人的来信》,自然乐曲也是电影的插曲和片尾曲:
    继续阅读…

    第 1 页,共 5 页12345