主要是因为linux对大小写很敏感,对文件、文件夹是否可写、可修改有严格的限制。
在linux调试php能使开发的php代码有更好的适用性。
当然,如果开发的php代码仅供windows下使用,也可以不在linux调试的。
② linux命令怎么运行php文件
在安装完PHP和Apache2后,我们需要安装PHP命令行解释器。
# apt-get install php5-cli [Debian 及类似系统]
# yum install php-cli [CentOS 及类似系统]
接下来我们通常要做的是,在/var/www/html(这是 Apache2 在大多数发行版中的工作目录)这个位置创建一个内容为 <?php phpinfo(); ?>,名为 infophp.php 的文件来测试(PHP是否安装正确),执行以下命令即可。
# echo '<?php phpinfo(); ?>' > /var/www/html/infophp.php
然后,将浏览器访问 http://127.0.0.1/infophp.php ,这将会在网络浏览器中打开该文件。
不需要任何浏览器,在Linux终端中也可以获得相同的结果。在Linux命令行中执行/var/www/html/infophp.php,如:
# php -f /var/www/html/infophp.php
由于输出结果太大,我们可以通过管道将上述输出结果输送给 less 命令,这样就可以一次输出一屏了,命令如下:
# php -f /var/www/html/infophp.php | less
检查所有PHP信息
这里,‘-f‘选项解析并执行命令后跟随的文件。
③ 如何在linux下调试PHP
你的代码最好写成下面形式
<html><head></head>
<body>
<?php
echo "hello world!\n";<!-最好加个空格,编程序要有好习惯-->
?>
</body></html>
不出结果的原因应该是因为php文件需要URL连接,应该查看你的文件放置的位置是否正确
④ 怎么在linux运行php文件
1、打开我们的linux命令行,准备好。
2、找到php的安装目录,主要是找到linux环境下,php可执行文件的目录。如图所示。笔者的目录为/opt/lampp/bin/php,将此目录记下,备用。
3、找到要运行的php文件所在的目录,随便写点php代码就可以,在此笔者已经准备好。/opt/lampp/htdocs/wechat/xjtest-web_browser/pcntl_test.php,将此目录记下,接下来就要正式开始运行了。
4、打开刚刚第一步打开的linux命令行,输入/opt/lampp/bin/php /opt/lampp/htdocs/wechat/xjtest-web_browser/pcntl_test.php(即依次输入刚刚的两个目录)注意两个目录中间有空格。
5、按下回车,可以看到,php文件已经正确执行了。
⑤ linux下怎么测试php
WIN下:
安装配置PHP
1.解压缩PHP压缩包到C:PHP(这个路径可以随意,不过以下要是用到这个路径,请相应的修改)。
2.复制C:PHP目录下的php4ts.dll及C:PHPdlls目录下的所有文件到windows的系统文件夹里,文件夹视Windows版本的不同而不同
如果是Windows 9x/ME 则为c:windowssystem
如果是Windows NT/2000 则为c:winntsystem32
如果是Windows XP/server2003 则为c:windowssystem32
其中C:为你现在所使用的操作系统的系统盘,如果你目前操作系统不是安装在C:windows下,请相应做出修改。
复制php.ini-dist到C:windows(XP/2003/9x/Me)或C:Winnt(2000/nt)下,并将其改名为php.ini。用记事本打开,修改一下信息:
搜索extension_dir = ./ 这行,并将其路径指到你的PHP目录下的extensions目录,比如:
extension_dir = C:PHPextensions
如若想支持更多模块,请接下面去做,如果不想的话,直接保存php.ini文件即可.
PHP所支持模块很多,不过有些dll不是免费的,所以没有随PHP的压缩包一起发布,不过dlls文件夹里带的就非常多了,刚才我们已经把它们复制到system32文件夹下了,现在我们测试看它支持多少模块。以下是我测试的结果,仅供参考,如果安装完毕后,弹出不支持xxx.dll模块的话,直接将前面分号加上去就可以了,搜索:
;Windows Extensions
;Note that MySQL and ODBC support is now built in, so no dll is needed for it.
;
下面都用分号在前面注释掉了支持的扩展模块,如果你想PHP支持某个模块,请将前面的“;”去掉即可,下面是我测试后的结果,一般按照下面那样去掉注释后没什么问题的:
extension=php_bz2.dll
extension=php_cpdf.dll
extension=php_crack.dll
extension=php_curl.dll
extension=php_db.dll
extension=php_dba.dll
extension=php_dbase.dll
extension=php_dbx.dll
extension=php_domxml.dll
extension=php_exif.dll
extension=php_fdf.dll
extension=php_filepro.dll
extension=php_gd2.dll
extension=php_gettext.dll
extension=php_hyperwave.dll
extension=php_iconv.dll
;extension=php_ifx.dll
;extension=php_iisfunc.dll
extension=php_imap.dll
extension=php_interbase.dll
extension=php_java.dll
extension=php_ldap.dll
extension=php_mbstring.dll
;extension=php_mcrypt.dll
extension=php_mhash.dll
extension=php_mime_magic.dll
extension=php_ming.dll
extension=php_mssql.dll
extension=php_msql.dll
;extension=php_oci8.dll
extension=php_openssl.dll
;extension=php_oracle.dll
extension=php_pdf.dll
extension=php_pgsql.dll
;extension=php_printer.dll
extension=php_shmop.dll
extension=php_snmp.dll
extension=php_sockets.dll
;extension=php_sybase_ct.dll
extension=php_w32api.dll
extension=php_xmlrpc.dll
extension=php_xslt.dll
extension=php_yaz.dll
extension=php_zip.dll
修改完成后,保存php.ini,到此完成PHP的安装和配置。
LINUX:
到网上载一份php的for linux的代码,文件名大概如php-4.0.3pl1.tar.gz。下载完毕以后,用tar zxf php-4.0.x.tar.gz解开压缩包,进入解开后的目录,运行./configure,make,make install就可以了,如果想进行更为复杂的安装请参阅目录下的INSTALL文档
⑥ 如何在linux控制台运行php程序,就像运行shell脚本一样
如果只是单独测试一个PHP文件,可以不用建立站点,不用配置apache的虚拟配置文件,使用php的命令行模式可以直接调式:
如测试:/home/usrname/mysite/test.php
<?php
function greeting(){
print "this page is writen in the Vi!";
echo "<br/>";
echo "another web page!";
echo "<br/>";
print "this is edited by Vim!";
echo "<br/>";
}
greeting();
?>
可以使用下列命令:
php -f /home/usrname/mysite/test.php
可以在终端下看到类似的输出:
this page is writen in the Vi!<br/>another web page!<br/>this is edited by Vim!<br/>
⑦ 怎么在linux的CLI下运行php文件
准备:已安装PHP运行环境的Linux系统。
步骤:
打开Linux命令行,输入whereis php找到PHP文件所在目录(我的在/usr/bin/php);
回车,这时可以看到PHP文件成功执行了。
⑧ 如何搭linux测试环境+php
您好,这样的:
Apache 安装
1、下载 httpd-2.2.11.tar.gz
2、解压
tar zxvf httpd-2.2.11.tar.gz
在执行tar指令的路径下,会产生一个httpd-2.2.11目录
3、查看一下编译的配置信息
切换到解压之后的httpd-2.2.11目录
./configure --help
通过本步骤可以了解有那些可以安装的模块,以及安装配置信息需要设置
进一步查看手册,也可以了解相关信息
4、进行编译配置
$ ./configure --prefix=/usr/local/apache2 \ 指定安装目录
--enable-so \ 允许使用外部so模块
--with-mpm=prefork url请求跳转策略
5、编译:
$ make
6、安装:(使用sudo是因为要安装的路径/usr/local/apache2不属于个人路径)
$ sudo make install
《安装完毕》
7、测试
修改httpd.conf。
将 #ServerName www.example.com:80 修改为 ServerName 127.0.0.1:80(localhost:80)
启动 sudo ./apachectl -k start
停止 sudo ./apachectl -k stop
重新起动 sudo ./apachectl -k restart (该命令有时无效,用stop+start代替)
****************************************
PHP安装
1、下载php-5.2.8.tar.gz
2、解压tar zxvf php-5.2.8.tar.gz
3、查看一下编译的配置信息
切换到解压之后的httpd-2.2.11目录
./configure --help
通过本步骤可以了解有那些可以安装的模块,以及安装配置信息需要设置
进一步查看手册,也可以了解相关信息
4、编译配置
./configure --prefix=/home/guandl/webenv/php528 \
--enable-mbstring \
--with-apxs2=/usr/local/apache2/bin/apxs
5 编译
make
6、安装
sudo make install
《安装完毕》
7、复制php.ini
因为一般安装后的php目录$php/lib下没有php的配置文件,需要把解压目录下的php.ini-recommended复制到php的lib目录
sudo cp php.ini-recommended /home/guandl/webenv/php528/lib/php.ini
8、修改apache 的配置文件 httpd.conf
增加一下内容
LoadMole php5_mole moles/libphp5.so 安装php时候已经自动生成
AddType application/x-httpd-php .php
9、测试
编写一个php文件,如any.php
phpinfo();
?>
放到apache的htdocs目录下
重新启动apache。
⑨ 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是一个可伸缩地、高速地在HTTP server和动态脚本语言间通信的接口。多数流行的HTTP server都支持FastCGI,包括Apache、Nginx和lighttpd等,同时,FastCGI也被许多脚本语言所支持,其中就有PHP。
FastCGI接口方式采用C/S结构,可以将HTTP服务器和脚本解析服务器分开,同时在脚本解析服务器上启动一个或者多个脚本解析守护进程。当HTTP服务器每次遇到动态程序时,可以将其直接交付给FastCGI进程来执行,然后将得到的结果返回给浏览器。这种方式可以让HTTP服务器专一地处理静态请求或者将动态脚本服务器的结果返回给客户端,这在很大程度上提高了整个应用系统的性能。
【原理】
1)Web Server启动时载入FastCGI进程管理器(IIS ISAPI或Apache Mole);
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一起启动的。
Apache是如何加载模块的呢?我们以前面提到的mod_php5模块为例。首先我们需要在Apache的配置文件httpd.conf中添加一行:
LoadMole php5_mole moles/mod_php5.so
这里我们使用了LoadMole命令,该命令的第一个参数是模块的名称,名称可以在模块实现的源码中找到。第二个选项是该模块所处的路径。如果需要在服务器运行时加载模块,可以通过发送信号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请求之后并不立即退出,而是停留在计算机中等待下次请求。对于客户浏览器的请求反应更快,性能较高。
⑩ 如何通过Linux命令行使用和运行PHP脚本
1.在安装完PHP和Apache2后,需要安装PHP命令行解释器。
2.可以直接在Linux命令行使用 phpinfo()
这个十分有价值的调试工具而不需要从文件来调用,只需执行以下命令:
3. 以交互模式运行PHP并做一些数学运算。这里,‘-a‘ 选项用于以交互模式运行PHP。
4. 可以仅仅将PHP脚本作为shell脚本来运行。首先,创建在当前工作目录中创建一个PHP样例脚本。
5. 可以完全靠自己通过交互shell来创建简单函数。