一个APACHE服务无法启动的问题,记录一下

     昨天装了个扩展,想开APCHE看一下是否成功,结果运行ApacheMonitor.exe后,发现鼠标左键根本就点不出来,点右键一看,服务都无法启动,启动服务那个按钮变成灰色。晕死。一想,前几天装了XAMPPP,是不是被挤掉了,马上跑到服务项里一看,啥都没,两者的服务都没。试试XAMPP,能启动。原生的APACHE就是启动不了,服务都不存在!
    上网搜资料,都说是80端口被占用,马上netstat -aon|findstr "80",一看1388占用了80,可是这个是火狐浏览器。。。总不能不用浏览器吧。这个明显不对。既然服务都不存在,那解决办法应该是安装服务才对。
    立马,安装服务。
    进入APACHE的BIN目录,命令行界面运行HTTPD,执行httpd -k install -n "apache",安装APACHE服务,命令行给出如下提示:
Could not reliably determine the server's fully qualified domain name, using 192.168.5.201 for ServerName.
    好办,打开httpd.conf配置文件,添加 ServerName localhost:80,再重新运行ApacheMonitor.exe,好了。看了下以前的备份配置文件,这一行被注释掉的。以前为什么行,后来安装了其他集成套件就不行了,原因还不是很清楚。APACHE配置还要熟悉熟悉哈。
----------------------还有一种情况---------------

启动apache。但是启动时候却报错,无法重启。查看apache的错误日志文件,显示Unclean shutdown of previous Apache run?

到网上搜了一下,一般有两种出错的可能性:

第一:[warn] pid file D:/apache2.2/logs/httpd.pid overwritten — Unclean shutdown of previous Apache run?

需要删除对应的apache pid文件。但是大多数人遇到的不是这种情况

第二种情况:php模块添加错误。比如说dll文件没有按照规定放入php/ext目录下,比如说php.ini文件书写错误。如果都没有发现,那就试试把新添加的模块删除掉在试试。最大的可能就是新增加的扩展不兼容php对应的版本,以及扩展找不到等。
可以先运行php.exe来测试下,如果是扩展问题,会弹窗提示的。

随随便便,心有余力,胡乱侃侃

      这几天工作啥也没做,交给我的优化,我也早早做好了,尽管今天下午自己导数据测试发现了问题,用了四个多小时找到BUG并修正了,这半个多月,也没写几行代码,林林总总加起来写了不过四五百行,虽然编码不是全部的工作量。
    闲下来的时间,自己下了很多软件,逐渐体验,更新自己的收藏。逐渐接受了不仅“磨刀不误砍柴工”,也要“工欲善其事必先利其器”。最最从前,我的基础是很好,可一直基于代码,用记事本编程,写HTML,JS,PHP,C。。。用浏览器调试。这样的方式让我的基础是加强了,也敢去论坛吵吵了,但是效率却一直上不去。
     现在开始寻找IDE,体验最好的IDE,提高开发效率。工作和读书不一样,效率为上,赚钱为上。
     JAVA开发最佳软件:ECLIPSE3.6. 体验了免费版的INTEL J(功能垃圾的要死,卡的要死)。收费的据说不错,我体验了一下,感觉也不咋样。
    PHP开发,我用的NETBEAN6.9.1,用起来虽然卡,但是爽死了。phpDesigner 7也很不错,专一。ZEND STUDIO8我是从我U盘工具箱里删除了,爱上了NB和PD。另外一个小巧的开发工具也不错,我以前也常用。
    PHP端的服务器我是手工安装的,干净得很。XAMPP太“脏”了,占据资源,WAMPSERVER还不错,快速开发可以用用。NGNIX的几个套件我也用了,对其不熟悉,暂时只安装不使用。
   MYSQL,SQLITE我用的是Navicat Premium 9,企业版的,功能很全,也满足我的需要,就把另外一款专门的SQLITE管理工具卸载了,太卡,界面丑。
    ORACLE用的是RAPID SQL7.4.2,界面很不满意,plsqldev715用着也不是很满意。
    C++开发我用的还是VC6,不过WIN7下就用不了了,我在学校5块钱买的VS2008的光盘搬家时忘了,去取,又忘了,终于丢了。
     PYTHON开发暂时还没继续。NET也没还开始。

阅读剩余部分...

新手该学哪门编程语言

在某个论坛上看到有人在问——“Which programming language should I learn first?”,看到了下面的这个回答,有点意思。


Depends.


  • To program in an expressive and powerful language: Python
  • To get a website up quickly: PHP
  • To mingle with programmers who call themselves “rockstars”: Ruby.
  • To really learn to program: C.
  • To achieve enlightenment: Scheme.
  • To feel depressed: SQL
  • To drop a chromosome: Microsoft Visual Basic
  • To get a guaranteed, mediocre, but well paying job writing financial applications in a cubicle under fluorescent lights: Java.
  • To do the same thing with certifications and letters after your name: C#
  • To achieve a magical sense of childlike wonder that you have a hard time differentiating from megalomania: Objective C

I could go on… but I’m not feeling hateful enough today.


翻译如下:


看你的需要了。


  • 如果你想找一门表达力和功能都很强的语言:Python
  • 如果你想更快速地开发WEB程序:PHP
  • 如果你想和那些“摇滚明星”的程序员为伍:Ruby
  • 如果你想学真正的编程:C
  • 如果你想顿入空门的话:Scheme
  • 如果你想压抑的话:SQL
  • 如果你想基因突变成痴呆的话:Microsoft Visual Basic
  • 如果你想要得到一个有保证的,但普普通通的,收入还不错的,在一间小卧室的荧光灯下写一些金融应用的工作:Java
  • 如果你想在你的名字后放上一些认证和证书:C#
  • 如果你想得到一些很难在自大狂和孩子气中区分的那种魔幻般的感觉:Objective C

我还可以再写去,因为今天我还没有足够的愤怒。

阅读剩余部分...

【转】在Android上用PHP编写应用- PFA初探

作者:蒋宇捷(hfahe)

u 发送文字信息

u 扫描条形码

u 获取GPS信息

u 使用语音服务

 随着PFA的出现,在Android上用PHP编写应用和工具变成了现实。它为ASE提供了PHP的支持,官方站点见:http://phpforandroid.net/

        下面我将以Android模拟器为例,介绍在Android平台上实现PHP简单应用的完整过程。

        模拟器安装

        注意:首先需要安装JDK-V5.0以上版本,因为android-sdk使用JAVA语言开发的。

       Android模拟器允许你在电脑上使用Android环境,支持WindowsLinuxMac等平台,下面以Windows平台为例。

        先需要从http://dl.google.com/android/android-sdk_r04-windows.zip下载Android SDK,解压缩并运行里面的SDK Setup.exe,这会打开Android SDK and AVD Manager

        启动后会遇到一个错误,需要在SettingsMisc配置里将“Forcehttps://...sourcesto be fetched usinghttp://”选上


 

        重启Android SDK and AVD Manager,然后在出现的“choose Packages to Install”界面上选择“SDK Platform Android 2.1-update1API 7revision 2”(2.02.1的版本也可以)。记住一定要把其他的选项都双击打上叉,否则从国外网站下载安装所有的Package是非常慢的事情!

  

阅读剩余部分...

在Komodo IDE 5中开发PHP并使用 XDEBUG进行调试

     紧接上文《在NETBEAN6.9.1中使用 XDEBUG调试PHP5.3.x的配置》,本文介绍在Komodo IDE 5中使用 XDEBUG调试PHP5.3.x。
    Komodo是一款基于广受赞誉的、支持多种动态语言的开源开发平台工具。它非常强大,支持Perl、PHP、Python、Ruby、Tcl,以及 JavaScript、CSS、HTML、XML。拥有后台语法检测、颜色匹配、错误捕捉、自动补齐等特性。当前该软件可以运行在windows、 linux和macOS操作系统上。值得一提的是,该IDE为用户提供了丰富的可扩展功能,支持类似firefox的.xpi扩展。
    厌烦了ZENDSTUDIO的蜗牛速度和庞大的身躯以及NETBEAN的狂吃内存的,可以试试这款IDE. Komodo不是一款专门的PHP开发工具,所以对于新手来说可能并不合适
    下载地址:http://www.activestate.com/komodo-edit/downloads,最稳定的Komodo Edit 5.2.4。Komodo是商业软件,但是你可以寻找破解版使用。
    安装Komodo后,新建项目。点击工具→交互式SHELL→配置,打开配置菜单,进入语言→PHP选项,设置PHP的安装路径,PHP.INI文件路径,如果你的XDEBUG配置正确,那么DEBUG检测将会告诉你配置正确的。
komoda2.png
注意:最好不要使用调试器配置向导,而是自己配置。
   怎么在PHP.INI中配置XDEBUG,看《在NETBEAN6.9.1中使用 XDEBUG调试PHP5.3.x的配置》,和这里是一模一样的配置。
    调试常用快捷键:
 F5:开始调试
 F11:步进
 SHIFT+F5:停止调试
或者也可以使用菜单操作。基本只要一路默认下去就行了。
截图:
komoda.gif
  
   

在NETBEAN6.9.1中使用 XDEBUG调试PHP5.3.x的配置

     本文主要介绍在NETBEAN6.9.1中使用 XDEBUG调试PHP5.3.x的配置。
上文,我已经介绍过了NETBEAN这款开发工具。
这里,讲一下在NETBEAN6.9.1中使用 XDEBUG调试PHP5.3.x的配置.我的PHP版本为5.3.3,WIN环境。全部使用最新版开发环境。

第一步:安装PHP5.3,使用phpinfo输出信息,确认安装成功。

   注意版本的区别,建议下载VC6版本,并且线程安全的那一个。至于什么是线程安全,可以百度。

第二步,我们要将xdebug配置起来.


1.进行xdebug的官方 http://www.xdebug.org/.

2 进入下载页面选择适合你的版本下载. http://www.xdebug.org/download.php

3.XDEBUG官方默认会把你带入自动配置页面http://www.xdebug.org/find-binary.php,把本机中输出的phpinfo的页面内容复制出来,粘贴到底部的文本区域里。注意是直接在网页中全选复制,而不是复制网页的源代码。Do not paste the raw HTML (from view-source) into the form.

4.
粘贴后,点击 analyse my phpinfo() output提交,Xdebug会根据你的phpinfo的信息,给你如下建议。
如我的:
Summary
    * Xdebug installed: 2.1.0
    * Server API: Apache 2.0 Handler
    * Windows: yes - Compiler: MS VC6 - Architecture: x86
    * Zend Server: no
    * PHP Version: 5.3.3
    * Zend API nr: 220090626
    * PHP API nr: 20090626
    * Debug Build: no
    * Thread Safe Build: yes
    * Configuration File Path: C:\WINDOWS
    * Configuration File: E:\td\php533\php.ini
    * Extensions directory: E:\td\php533\ext
here are the instructions anyway:
   1. Download php_xdebug-2.1.0-5.3-vc6.dll
   2. Move the downloaded file to E:\td\php533\ext
   3. Update E:\td\php533\php.ini and change the line
      zend_extension = E:\td\php533\ext\php_xdebug-2.1.0-5.3-vc6.dll
   4. Restart the webserver 【注意要重启服务器后PHP.INI的变动才会生效】

5.成功下载到适合自己PHP版本的php_xdebug.dll(我下载的为php_xdebug-2.1.0-5.3-vc6.dll)后,我们将它复制到自己的PHP的ext目录中。具体你的PHP的ext目录在哪里,我们可以从phpinfo中获取得到.

6.配置PHP.INI文件。下面是我的配置:
[xdebug]
;用中括号表示出来的是模块名称,它会在你的phpinfo信息中作为大的分隔的标题显示出来.
zend_extension=E:\td\php533\ext\php_xdebug-2.1.0-5.3-vc6.dll
;设置php_xdebug的dll文件路径和名称. 有些老的教程使用zend_extension_ts. 这个在新的XDEBUG中已经改了。千万注意了。
xdebug.auto_trace=On
;Xdebug会将php的对函数调用的监测的信息用文件格式输出来
xdebug.collect_params=On
;Xdebug会将php的对函数调用的参数加入到函数过程调用的监测中
xdebug.collect_return=On
;将函数调用的返回值加入到函数过程调用的监测中
xdebug.trace_output_dir="E:/td/debug"
;设置的函数调用监测信息的输出路径
xdebug.profiler_enable=On
;这是效能监测的设置开关
xdebug.profiler_output_dir="E:/td/debug"
;这是效能监测信息设置为on的情况下,写入到profiler_output_dir设置的路径中,会生成一个相应的文件.
    以上就是基本配置了,更详细的,比如更改XDEBUG输出的颜色啊,样式啊,都可以在phpinfo中查看输出,然后自己添加,覆盖默认值。配置完成后,重启apache,在phpinfo中,你应该能够正常看到xdebug这样的大标题项,以及下面星罗棋布的小项。

第三步:让netbean和xdebug结合起来.

在php.ini文件中加入
xdebug.remote_enable=on
xdebug.remote_handler=dbgp
xdebug.remote_host=localhost
xdebug.remote_port=9000
    以上信息可以在进行netbean调试时,弹出的警告对话框中获取,用来设置xdebug对netbean的支持.
重启apache,此时你的netbean的调试器已经和xdebug关联起来了,可以对php程序进行调试.

第四步:xdebug的其他使用。

    生成的效率调试文件,我们可以使用wincachegrind来进行详细读取和分析。不过这个软件很老了。在变量分析阶段,我们也可以使用xdebug自带的函数来帮助分析。
    我们可以在netbean中调试文件,F7逐行的来跟踪文件运行的每一步,看到系统的每一步时候的输出. F7(步入),ctrl+F7 (步出),F8(步过) 常用的这几个键. 在想中断调试的地方我们可以下断点进行调试。
下面是我的一个截图。
2010-09-26_144103.png

netbean官方xdebug使用指南地址:http://wiki.netbeans.org/HowToConfigureXDebug

转:如果我说的是假话,那么我说的是假话

在准备一份数理逻辑的材料时,我创作了下面 10 个逻辑推理问题。在每个问题中,甲、乙、丙三人各说了一句话,你需要判断出每个人说的究竟是真话还是假话。每个问题都有唯一解。注意,与传统的逻辑推理题目不同,没有任何条件告诉你究竟有多少人在说真话,有多少人在说假话。解决问题时尽量避免用枚举法试遍所有 8 种可能,否则这将失去“逻辑推理”的意义。

 
(1) 甲:乙说的是假话
     乙:丙说的是假话
     丙:甲要么说的是真话,要么说的是假话

答案:显然,丙说的是真话。
        因此,乙说的是假话。
        因此,甲说的是真话。


 
(2) 甲:我们三个人当中有人说真话
     乙:我们三个人当中有人说假话
     丙:我们三个人当中没有人说假话

答案:乙和丙说的互相矛盾,他俩的话一真一假。
        这就表明,三个人当中既有人说真话,又有人说假话。
        因此,甲和乙都说的真话,丙说的是假话。

 
 
(3) 甲:我们三个人都说的真话
     乙:我们三个人都说的假话
     丙:我们三个人当中,有些人在说真话,有些人在说假话

答案:这三句话互相矛盾,却又涵盖了所有情况。
        因此,三句话中有且仅有一句话为真。
        因此,甲、乙说的是假话,丙说的是真话。

 
 

阅读剩余部分...

那些糟糕的 PHP 代码

摘录自:http://www.devtheweb.net/blog/2010/08/18/php-bad-code-examples/

我非常愿意相信,那些糟糕的 PHP 代码远比让人觉得舒服的代码多得多 -- 当然,他们的共同 点是一样的,就是都能让人“眼前一亮”。

下面例子中的些代码,能告诉我们如何能让事情更加糟糕。


Example 1.


if (file_exist('../../../../etc/passwd')) {    include('../../../../etc/passwd');}

谁知道你的 PHP 代码会被 SA 扔到服务器的哪个位置?如果你真的想这么干,那么定义个常量吧。 好吧、好吧,我说过不止一次了…


define('BASE_PATH', '../');if ($include_file = realpath(BASE_PATH . 'passwd')) {    include($include_file);}

PS,尤其需要当心的是,这样的代码往往会留下安全漏洞。


Example 2.


if (!isset($_GET['month'])) {    ...} else {    if (isset($_POST['submit_fin'])) {        ...    }}

那么多参数我怎么能记得住,同时让脚本接收$_GET参数往往是混乱的开始。同时,那 么多的“一坨”的看起来就让人感到不适,如果控制语句块嵌套超过 3 层,那么可以 考虑是否可以换个思路了。

阅读剩余部分...

    Page :
  1. 1
  2. 2
  3. 3