php命令行模式(php 无法调用 windows命令行运行,)
本文目录
- php 无法调用 windows命令行运行,
- 服务器linux环境运行php,如何配置
- 如何在cmd命令行下运行php
- thinkphp 命令行模式执行,如何才能执行数据库的操作
- linux服务器上运行PHP,除了PHP-FPM还有其他的方式吗
- phpstudy怎么在命令行中操作php
- php 服务器变量$_SERVER 服务器环境变量 $_ENV
- 如何让PHP能够读取系统环境变量
php 无法调用 windows命令行运行,
a/ 试试变成绝对路径或 a/d.txt 这种形式 另外,你到底是在linux还是windows运行的? windows下没有cp命令,如果你在windows下还可以尝试 system("cmd.exe /c copy d:\\d.txt d:\\a\\d.txt"); 如果只是要完成复制文件的功能,完全可以使用 php自带的copy("源文件","目标文件")函数
服务器linux环境运行php,如何配置
单机下Linux下部署PHP环境
说白了就是在Linux系统上安装apche或者nginx和mysql数据库以及php运行环境
这些都可以在网上单独下载安装包去安装
但是需要自己去一个一个下载安装设置调试等
傻瓜式的有lnmp和lamp一键安装包
大多是基于命令行模式
如果是需要图形化的
则推荐宝塔和wdcp等图形化操作面板
几乎是按照Windows的那种点几下安装
通过直接上传或者ftp把php代码传到服务器上
域名解析好即可访问了
另外现在推荐php7.2以上+mysql5.7或者8.0组合
效率比老版本又更上一层楼
如何在cmd命令行下运行php
进入你的php安装目录
假设安装在D:\server\php
在cmd命令行下输入:
D:
cd D:\server\php
php.exe -f E:\czjx\a.php(假设php文件放在 E:\czjx)
又是文字,又是图,还带图片例子,够详细了吧。请采纳!
thinkphp 命令行模式执行,如何才能执行数据库的操作
在本地创建新的Git仓库(连接别人的代码和创建自己的代码库)mkdir andbasecd andbasegit inittouch README.mdgit add README.mdgit commit -m ’hello world’git remote add origin git@github.com:Liutos/foobar.git将主分支修改推送到服务器
linux服务器上运行PHP,除了PHP-FPM还有其他的方式吗
运行模式关于PHP目前比较常见的五大运行模式:1)CGI(通用网关接口/ Common Gateway Interface)2)FastCGI(常驻型CGI / Long-Live CGI)3)CLI(命令行运行 / Command Line Interface)4)Web模块模式(Apache等Web服务器运行的模式) 5)ISAPI(Internet Server Application Program Interface)备注:在PHP5.3以后,PHP不再有ISAPI模式,安装后也不再有php5isapi.dll这个文件。要在IIS6上使用高版本PHP,必须安装FastCGI 扩展,然后使IIS6支持FastCGI。1.1、CGI模式CGI即通用网关接口(Common Gateway Interface),它是一段程序,通俗的讲CGI就象是一座桥,把网页和Web服务器中的执行程序连接起来,它把HTML接收的指令传递给服务器的执行程序,再把服务器执行程序的结果返还给HTML页。CGI 的跨平台性能极佳,几乎可以在任何操作系统上实现。CGI已经是比较老的模式了,这几年都很少用了。 每有一个用户请求,都会先要创建CGI的子进程,然后处理请求,处理完后结束这个子进程,这就是Fork-And-Execute模式。 当用户请求数量非常多时,会大量挤占系统的资源如内存,CPU时间等,造成效能低下。所以用CGI方式的服务器有多少连接请求就会有多少CGI子进程,子进程反复加载是CGI性能低下的主要原因。 如果不想把 PHP 嵌入到服务器端软件(如 Apache)作为一个模块安装的话,可以选择以 CGI 的模式安装。或者把 PHP 用于不同的 CGI 封装以便为代码创建安全的 chroot 和 setuid 环境。这样每个客户机请求一个PHP文件,Web服务器就调用php.exe(win下是php.exe,linux是php)去解释这个文件,然后再把解释的结果以网页的形式返回给客户机。 这种安装方式通常会把 PHP 的可执行文件安装到 web 服务器的 cgi-bin 目录。CERT 建议书 CA-96.11 建议不要把任何的解释器放到 cgi-bin 目录。 这种方式的好处是把Web Server和具体的程序处理独立开来,结构清晰,可控性强,同时缺点就是如果在高访问需求的情况下,CGI的进程Fork就会成为很大的服务器负担,想 象一下数百个并发请求导致服务器Fork出数百个进程就明白了。这也是为什么CGI一直背负性能低下,高资源消耗的恶名的原因。1.2、FastCGI模式FastCGI是CGI的升级版本,FastCGI像是一个常驻 (long-live)型的 CGI,它可以一直执行着,只要激活后,不会每次都要花费时间去 Fork 一次 (这是 CGI 最为人诟病的 fork-and-execute 模式)。 ***隐藏网址***FastCGI接口方式采用C/S结构,可以将HTTP服务器和脚本解析服务器分开,同时在脚本解析服务器上启动一个或者多个脚本解析守护进程。当HTTP服务器每次遇到动态程序时,可以将其直接交付给FastCGI进程来执行,然后将得到的结果返回给浏览器。这种方式可以让HTTP服务器专一地处理静态请求或者将动态脚本服务器的结果返回给客户端,这在很大程度上提高了整个应用系统的性能。 【原理】 1)Web Server启动时载入FastCGI进程管理器(IIS ISAPI或Apache Module); 2)FastCGI进程管理器自身初始化,启动多个CGI解释器进程 (可见多个php-cgi.exe或php-cig)并等待来自Web Server的连接; 3)当客户端请求到达Web Server时,FastCGI进程管理器选择并连接到一个CGI解释器。Web server将CGI环境变量和标准输入发送到FastCGI子进程php-cgi; 4)FastCGI子进程完成处理后将标准输出和错误信息从同一连接返回Web Server。当FastCGI子进程关闭连接时,请求便告处理完成。FastCGI子进程接着等待并处理来自FastCGI进程管理器(运行在 WebServer中)的下一个连接。在正常的CGI模式中,php-cgi.exe在此便退出了。 在CGI模式中,你可以想象 CGI通常有多慢。每一个Web请求PHP都必须重新解析php.ini、重新载入全部dll扩展并重初始化全部数据结构。使用FastCGI,所有这些都只在进程启动时发生一次。一个额外的好处是,持续数据库连接(Persistent database connection)可以工作。 备注:PHP的FastCGI进程管理器是PHP-FPM(PHP-FastCGI Process Manager) 【优点】 1)从稳定性上看,FastCGI是以独立的进程池来运行CGI,单独一个进程死掉,系统可以很轻易的丢弃,然后重新分配新的进程来运行逻辑; 2)从安全性上看,FastCGI支持分布式运算。FastCGI和宿主的Server完全独立,FastCGI怎么down也不会把Server搞垮; 3)从性能上看,FastCGI把动态逻辑的处理从Server中分离出来,大负荷的IO处理还是留给宿主Server,这样宿主Server可以一心一意作IO,对于一个普通的动态网页来说, 逻辑处理可能只有一小部分,大量的是图片等静态。 【缺点】 说完了好处,也来说说缺点。从我的实际使用来看,用FastCGI模式更适合生产环境的服务器。但对于开发用机器来说就不太合适。因为当使用 Zend Studio调试程序时,由于 FastCGI会认为 PHP进程超时,从而在页面返回 500错误。这一点让人非常恼火,所以我在开发机器上还是换回了 ISAPI模式。对某些服务器的新版本支持不好,对分布式负载均衡没要求的模块化安装是否是更好的选择。目前的FastCGI和Server沟通还不够智能,一个FastCGI进程如果执行时间过长会被当成是死进程杀掉重起,这样在处理长时间任务的时候很麻烦,这样做也使得FastCGI无法允许联机调试。因为是多进程,所以比CGI多线程消耗更多的服务器内存,PHP-CGI解释器每进程消耗7至25兆内存,将这个数字乘以50或100就是很大的内存数。 1.3 CLI模式 PHP-CLI是PHP Command Line Interface的简称,如同它名字的意思,就是PHP在命令行运行的接口,区别于在Web服务器上运行的PHP环境(PHP-CGI,ISAPI等)。 也就是说,PHP不单可以写前台网页,它还可以用来写后台的程序。 PHP的CLI Shell脚本适用于所有的PHP优势,使创建要么支持脚本或系统甚至与GUI应用程序的服务端,在Windows和Linux下都是支持PHP-CLI模式的。 【优点】 1)使用多进程,子进程结束以后,内核会负责回收资源; 2)使用多进程,子进程异常退出不会导致整个进程Thread退出,父进程还有机会重建流程; 3)一个常驻主进程,只负责任务分发,逻辑更清楚。 我们在Linux下经常使用"php –m"查找PHP安装了那些扩展就是PHP命令行运行模式;有兴趣的同学可以输入"php –h"去深入研究该运行模式。 1.4 模块模式 模块模式是以mod_php5模块的形式集成,此时mod_php5模块的作用是接收Apache传递过来的PHP文件请求,并处理这些请求,然后将处理后的结果返回给Apache。如果我们在Apache启动前在其配置文件中配置好了PHP模块(mod_php5), PHP模块通过注册apache2的ap_hook_post_config挂钩,在Apache启动的时候启动此模块以接受PHP文件的请求。 除了这种启动时的加载方式,Apache的模块可以在运行的时候动态装载,这意味着对服务器可以进行功能扩展而不需要重新对源代码进行编译,甚至根本不需要停止服务器。我们所需要做的仅仅是给服务器发送信号HUP或者AP_SIG_GRACEFUL通知服务器重新载入模块。但是在动态加载之前,我们需要将模块编译成为动态链接库。此时的动态加载就是加载动态链接库。 Apache中对动态链接库的处理是通过模块mod_so来完成的,因此mod_so模块不能被动态加载,它只能被静态编译进Apache的核心。这意味着它是随着Apache一起启动的。 ***隐藏网址***LoadModule php5_module modules/mod_php5.so 这里我们使用了LoadModule命令,该命令的第一个参数是模块的名称,名称可以在模块实现的源码中找到。第二个选项是该模块所处的路径。如果需要在服务器运行时加载模块,可以通过发送信号HUP或者AP_SIG_GRACEFUL给服务器,一旦接受到该信号,Apache将重新装载模块,而不需要重新启动服务器。 该运行模式是我们以前在windows环境下使用apache服务器经常使用的,而在模块化(DLL)中,PHP是与Web服务器一起启动并运行的。(它是apache在CGI的基础上进行的一种扩展,加快PHP的运行效率)。1.5 ISAPI模式 ISAPI(Internet Server Application Program Interface)是微软提供的一套面向Internet服务的API接口,一个ISAPI的DLL,可以在被用户请求激活后长驻内存,等待用户的另一个请求,还可以在一个DLL里设置多个用户请求处理函数,此外,ISAPI的DLL应用程序和WWW服务器处于同一个进程中,效率要显著高于CGI。(由于微软的排他性,只能运行于windows环境) PHP作为Apache模块,Apache服务器在系统启动后,预先生成多个进程副本驻留在内存中,一旦有请求出现,就立即使用这些空余的子进程进行处理,这样就不存在生成子进程造成的延迟了。这些服务器副本在处理完一次HTTP请求之后并不立即退出,而是停留在计算机中等待下次请求。对于客户浏览器的请求反应更快,性能较高。
phpstudy怎么在命令行中操作php
你要在命令行运行php 跟phpstudy没多大关系你要把php目录路径加入到系统环境变星 在 我的电脑上右击 选择属性 然后选择高级 ——》环境变量
选择Path 点击下面的,然后把你php的安装目录加入到最后面
php 服务器变量$_SERVER 服务器环境变量 $_ENV
PHP $_SERVER 变量 $_SERVER 是一个包含诸如头信息(header)、路径(path)和脚本位置(script locations)的数组。它是 PHP 中一个超级全局变量,我们可以在 PHP 程序的任何地方直接访问它。 $_SERVER 包含着众多的信息,你可以尝试直接打印它: print_r($_SERVER); $_SERVER 数组元素 更多情况下,我们只需要 $_SERVER 数组中的某些元素(数组单元)。$_SERVER 数组包含的元素如下: 页面程序相关 $_SERVER:相对于网站根目录的路径及 PHP 程序名称,与 document root 相关。 $_SERVER:链接到当前页面的前一页面的 URL 地址。 $_SERVER:相对于网站根目录的路径及 PHP 程序文件名称 。 $_SERVER:访问此页面所需的 URI 。 $_SERVER:当前运行 PHP 程序的绝对路径及文件名。 $_SERVER:当前 PHP 程序所在文件系统(不是文档根目录)的基本路径。 $_SERVER:查询(query)的字符串(URL 中第一个问号 ? 之后的内容但不包括 # 后面的内容)。 $_SERVER:传递给当前 PHP 程序的参数。 $_SERVER:命令行模式下,包含传递给程序的命令行参数的个数。 $_SERVER:请求开始时的时间戳,从 PHP 5.1.0 起有效。 $_SERVER:访问页面时的请求方法,例如:“GET”、“HEAD”,“POST”或“PUT”。 $_SERVER:当前请求的 Accept: 头信息的内容。 $_SERVER:当前请求的 Accept-Charset: 头信息的内容。例如:“iso-8859-1,*,utf-8”。 $_SERVER:当前请求的 Accept-Encoding: 头信息的内容。例如:“gzip”。 $_SERVER:当前请求的 Accept-Language: 头信息的内容。例如:“zh-cn”。 $_SERVER:当前请求的 Connection: 头信息的内容。例如:“Keep-Alive”。 $_SERVER:当前请求的 Host: 头信息的内容。 $_SERVER:如果 PHP 程序是通过 HTTPS 协议被访问,则被设为一个非空的值。 $_SERVER:当作为 Apache 模块运行时,进行 HTTP Digest 认证的过程中,此变量被设置成客户端发送的“Authorization”HTTP 头内容(以便作进一步的认证操作)。 $_SERVER:当 PHP 运行在 Apache 或 IIS(PHP 5 是 ISAPI)模块方式下,并且正在使用 HTTP 认证功能,这个变量便是用户输入的用户名。 $_SERVER:当 PHP 运行在 Apache 或 IIS(PHP 5 是 ISAPI)模块方式下,并且正在使用 HTTP 认证功能,这个变量便是用户输入的密码。 $_SERVER:当 PHP 运行在 Apache 模块方式下,并且正在使用 HTTP 认证功能,这个变量便是认证的类型。 服务器端相关 $_SERVER:当前运行 PHP 程序所在的文档根目录,在服务器配置文件中定义。 $_SERVER:服务器使用的 CGI 规范的版本,例如:“CGI/1.1”。 $_SERVER:当前运行 PHP 程序所在的服务器的 IP 地址。 $_SERVER:当前运行 PHP 程序所在的服务器的名称。 $_SERVER:Apache 服务器配置文件中的 SERVER_ADMIN 参数。 $_SERVER:服务器所使用的端口。如果使用 SSL 安全连接,则这个值为用户设置的 HTTP 端口。 $_SERVER:包含服务器版本和虚拟主机名的字符串。 $_SERVER:服务器标识的字串,在响应请求时的头信息中给出。 $_SERVER:请求页面时通信协议的名称和版本,例如:“HTTP/1.0”。 其他杂项 $_SERVER:当前请求的 User-Agent: 头信息的内容,该字符串表明了访问该页面的用户代理的信息。 $_SERVER:正在浏览当前页面用户的 IP 地址。 $_SERVER:正在浏览当前页面用户的主机名。 $_SERVER:用户连接到服务器时所使用的端口。 注意,如果以命令行方式运行 PHP,上面列出的元素几乎没有有效的(或是没有任何实际意义的)。PHP $_ENV 变量 $_ENV 是一个包含服务器端环境变量的数组。它是 PHP 中一个超级全局变量,我们可以在 PHP 程序的任何地方直接访问它。 $_ENV 只是被动的接受服务器端的环境变量并把它们转换为数组元素,你可以尝试直接打印它: print_r($_ENV); 限于篇幅,在此不再列出打印的结果,且不同的服务器上,打印出的结果可能是完全不同的。 $_ENV 数组元素 $_ENV 数组中的元素(数组单元)随服务器环境不同而有较大差异,所以无法像 $_SERVER 那样列出完整的列表。以下是 $_ENV 数组包含的比较通用的元素: $_SERVER:环境变量 PATH 路径。 $_SERVER:系统 CLASSPATH 路径。 $_SERVER:系统 LIB 库路径。 $_SERVER:系统 Include 路径,注意与 PHP 的包含路径是不一样的。 $_SERVER:操作系统类型。 $_SERVER:系统语言,如 en_US 或 zh_CN。 $_SERVER:当前工作目录。 $_SERVER:系统 TEMP 路径。 $_SERVER:当前进程 ID 号。 $_SERVER:系统 CPU 数目。 $_ENV 为空的原因及解决办法 如果打印输出 $_ENV 为空,可以检查一下 php.ini 的配置: variables_order = "EGPCS" 上述配置表示 PHP 接受的外部变量来源及顺序,EGPCS 是 Environment、Get、Post、Cookies 和 Server 的缩写。如果 variables_order 的配置中缺少 E ,则 PHP 无法接受环境变量,那么 $_ENV 也就为空了。
如何让PHP能够读取系统环境变量
一般情况下,都能实现显示phpinfo()的页面。就从能够显示该页面之后出现的问题说起。 php的问题都会显示在phpinfo()页面上。 首先查看自己的php.ini的路径是否正确。 Q:我已经配置了php.ini文件,但重新启动服务器后为什么没有任何效果? A:这个问题主要有这几种情况。 第一个原因是由于系统所读取的php.ini文件与你当时修改的php.ini文件不一致造成的 1、 可以通过phpinfo()的Configuration File (php.ini) Path选项查看当前PHP服务器读取的是哪一个php.ini 2、 如果你要更改php.ini的文件存取位置,可参考php.ini的搜索顺序,如下所示: a) SAPI 模块所指定的位置(Apache 2 中的 PHPIniDir 指令,CGI 和 CLI 中的 -c 命令行选项,NSAPI 中的 php_ini 参数,THTTPD 中的 PHP_INI_PATH 环境变量) b) HKEY_LOCAL_MACHINESOFTWAREPHPIniFilePath(Windows 注册表位置) c) PHPRC 环境变量 d) 当前工作目录(对于 CLI) e) web 服务器目录(对于 SAPI 模块)或 PHP 所在目录(Windows 下其它情况) f) Windows 目录(C:windows 或 C:winnt),或 --with-config-file-path 编译时选项指定的位置 3、 一般做法:通过设置PHPRC 环境变量, a) 操作:右击我的电脑-》属性-》高级-》环境变量 b) 在系统变量下新建一个“变量名为PHPRC ,变量值为你的php.ini文件所地文件路径”的环境变量 第二个原因是:PHP没有找到相应的扩展库 1、 查看PHP找到的扩展库位置:在phpinfo()的extension_dir选项可以看到 2、 在php.ini更改extension_dir文件 第三个原因:没有完全重启IIS 1、 对php.ini的修改必须完全重启IIS才能起作用,而不能只是对当前站点进行重启。 2、 进入cmd,停止服务器:net stop iisadmin;启动服务器:net start w3svc Q:我的PHP怎么没有办法激活MySql扩展库 A:在PHP5.0以上版本,MySQL 默认未启用,因此需要咱们进行手工激活。 1、 在PHP运行MySql,必须在 php.ini 中激活 php_mysql.dll 动态连接库,另外还需要访问 MySQL 客户端连接库即libmysql.dll文件 2、 可以通过php.ini中的extension激活 php_mysql.dll 动态连接库;而libmysql.dll文件必须放在Windows 的系统路径 PATH才能访问,可以通过把libmysql.dll复制到system32目录下,也可以在PATH环境变量中新增一个路径。 3、 建议做法:通过设置PATH,方便以后的php升级,在系统环境变量中的PATH后增加“libmysql.dll”所在的文件夹即可。记得通过“;”号隔开 4、 最近,服务器总是找不到MySql扩展库,导致程序无法运行。因此,把所有文件删除后重新配置PHP服务器。但最后在安装MySql的时候,却始终无法激活MySql扩展库。 在phpinfo()中找到的信息如下: PATH:c:php PHPRC:C:php extension_dir:c:phpext 另外,我测试了将其它的库激活,如msql、gd2、xml,在phpinfo()都可以正常显示 证明PHP能找到php_mysql.dll 动态连接库,而MySql的运行的另一个条件是能够讯问MySQL 客户端连接库即libmysql.dll文件,看来问题就在这里了。 我对C盘搜索libmysql.dll文件,发现在system32和php文件夹各有一个文件,做好备份后,我尝试删除system32的libmysql.dll文件,发现被锁死,无法删除,却可以重新命名,我随便修改了名称,再重新启动IIS,服务器运行正常。 补充一点:如果Configuration File (php.ini) Path 显示为C:Windows 就说明,php.ini文件没有读取到。 另外,我发现,在用IIS整合php时,有两种方式:ISAPI与CGI模式 这两种方式,我们都可以看到phpinfo页面 但是使用ISAPI模式,无法读取环境变量,所以通过环境变量PHPRC设置的php.ini路径无法找到。 使用CGI就可以,这样就不必把好多文件拷到系统文件下。
更多文章:
QQ飞车手游玉面狐介绍 宠物玉面狐怎么样新手卡之家?《斗兽战棋》进阶挑战狮鹫怎么过新手卡之家手机版
2024年8月8日 21:50
国外cdn加速节点怎么加速国内资源?国内外CDN加速有何区别
2024年6月29日 07:39
table与chart的区别(英语二的大作文图表类型有哪几种呢)
2024年6月29日 11:34
ironpython是什么软件(初学Python推荐使用Linux还是windows)
2023年5月7日 09:00
java虚拟机可以实现什么效果(JAVA 虚拟机有什么用一定要装吗)
2024年7月15日 22:41
mysql insert语法(MySQL 关于表复制 insert into 语法的详细介绍)
2024年7月23日 22:04
matlab vpa(matlab代码计算后输出还是个算式怎么解决,用vpa也不行)
2024年5月16日 22:10
hacknet80端口(hacknet nortron安全网络服务器怎么破)
2024年8月6日 03:55
小苏打加什么可以去除顽固污渍(小苏打加什么可以去除顽固污渍)
2024年7月24日 14:14
瘜肉(polyp) 和 瘤(tumor) 有什么分别?tumor名词解释
2024年9月8日 17:05