PHP实现调用Linux脚本(php调用linux脚本)

在当今高度信息化的时代,自动化处理已经成为组织或公司日常工作的基本需求。而Linux系统和PHP编程语言都是广泛应用于自动化处理的两个重要工具。本文将着重介绍如何使用的功能。

十余年的章丘网站建设经验,针对设计、前端、开发、售后、文案、推广等六对一服务,响应快,48小时及时工作处理。全网整合营销推广的优势是能够根据用户设备显示端的尺寸不同,自动调整章丘建站的显示方式,使网站能够适用不同显示终端,在浏览器中调整网站的宽度,无论在任何一种浏览器上浏览网站,都能展现优雅布局与设计,从而大程度地提升浏览体验。创新互联建站从事“章丘网站设计”,“章丘网站推广”以来,每个客户项目都认真落实执行。

1. Linux脚本介绍

Linux脚本是在Linux系统中执行的一系列命令。与命令行命令不同,Linux脚本可以包含多个命令,并且可以通过执行脚本来一次性执行所有命令。Linux脚本可以大大简化一些繁琐的Linux操作。

Linux脚本通常是由自定义函数、条件语句、循环结构等组成,可以完成诸如配置管理、自动化部署、备份维护等各种自动化任务。在大多数情况下,Linux脚本都需要在终端中手动执行。但是,当需要频繁重复执行某个脚本时,手动执行就变得比较麻烦了。这个时候,我们可以使用PHP编程语言来编写一个调用Linux脚本的脚本。

2. PHP介绍

PHP是一种脚本语言,主要用于在Web服务器上创建动态Web页面。PHP能够处理HTML表单、连接数据库、管理Cookies和sessions等。PHP具有易学、免费、兼容多种操作系统等优点,在Web应用程序开发中被广泛使用。

PHP可以嵌入到HTML页面中,以及与其他编程语言一起工作,例如JavaScript、CSS、HTML、MySql等。使用PHP,我们可以提供动态内容,例如生成HTML表单、动态图像、PDF文件等。PHP还可以在Linux系统中,与Linux脚本一起工作,实现更多更复杂的操作。

3. 实现php调用linux脚本

接下来,我们来介绍一些使用PHP调用Linux脚本的方法。

(1)使用exec函数

exec函数是PHP提供的一个执行外部命令的函数,我们可以在其中传递需要执行的Linux脚本。exec函数返回的是脚本执行后的输出,我们可以利用这个特性来获取脚本的返回值。

我们可以使用以下示例来测试:

“`php

// shell脚本文件路径

$shell = “/var/www/html/script.sh”;

// 执行脚本命令

$result = exec($shell, $output, $code);

// 输出脚本返回结果

echo $result;

“`

在以上示例中,我们使用exec函数调用名为script.sh的脚本,并将执行结果存储在变量$result中。同时,我们也将输出结果存储在变量$output中并将错误代码存储在变量$code中。

(2)使用system函数

system函数是和exec函数一样用于执行命令的函数,但是和exec函数不同的是,system函数只返回脚本的最后一行输出,也就是说,其他输出都会被忽略。

我们可以使用以下示例来测试:

“`php

// shell脚本文件路径

$shell = “/var/www/html/script.sh”;

// 执行脚本命令

$result = system($shell, $code);

// 输出脚本返回结果

echo $result;

“`

在以上示例中,我们使用system函数调用名为script.sh的脚本,并将执行结果存储在变量$result中。同时,我们也将错误代码存储在变量$code中。

(3)使用passthru函数

passthru函数与exec函数和system函数的区别在于,passthru函数将脚本的输出直接输出到浏览器中。我们可以使用以下示例来测试:

“`php

// shell脚本文件路径

$shell = “/var/www/html/script.sh”;

// 执行脚本命令

passthru($shell, $code);

“`

在以上示例中,我们使用passthru函数调用名为script.sh的脚本,并将错误代码存储在变量$code中。passthru函数会将脚本的所有输出直接输出到浏览器。

(4)使用shell_exec函数

shell_exec函数和exec函数的使用方式相似,但是不同的是,shell_exec函数只返回输出,而不返回执行码。

我们可以使用以下示例来测试:

“`php

// shell脚本文件路径

$shell = “/var/www/html/script.sh”;

// 执行脚本命令

$result = shell_exec($shell);

// 输出脚本返回结果

echo $result;

“`

在以上示例中,我们使用shell_exec函数调用名为script.sh的脚本,并将执行结果存储在变量$result中。

4.

在本文中,我们介绍了如何使用PHP调用Linux脚本的方法,包括使用exec函数、system函数、passthru函数和shell_exec函数等。这些方法都具有各自的特点和使用场景,可以根据需要选择适合的方法来实现自动化处理。同时,搭建一个Linux系统的开发环境也是非常重要的。只有在一个良好的开发环境下,才能更好地完成我们的工作目标。

相关问题拓展阅读:

  • ASP.NET 如何调用linux下的Shell脚本程序?

ASP.NET 如何调用linux下的Shell脚本程序?

Apache+Mysql+PHP(含GD,libpng,jpeg,zlib,freetype,freeTDS,awstats)安装与配置

作者:swingcoder(at)msn(dot)com

日期:

一、前言

安装的问题很多人都之一次要面对的,既简单又麻烦。很多老鸟都对如何安装的问题不屑,说:问来问去都是安装的问题。

希望这的贴子对新手能有点帮助,老鸟的话,就不用看了,免得拍砖。谢谢~~

本文所有软件均使谈和缓用最新版(至发布日期),但是又有人说了,什么版本不稳定啦,这不好那不好啦。Cut!就此打住,我也不想为这些问题纠缠不清了,此文仅仅是安装。先让大家用起来,具体的优化安全以后再说,应了一句话“先让一部分人先富起来!“。

虽然仍然是重复劳动,但至少是含模自己的经验,不想丢了,写完后自己以后也可以看棚派看,顺便整理整理。

二、目的

安装Apahe与MySQL,将php安装成支持gif,png,jpeg,freetype,mssql,mysql,需要更强大的图形处理能力,可安装ImageMagic。可以分析大流量网站日志(更大流量的网站推荐用Webalizer,不过界面简陋:-,)。

二、安装环境描述

操作系统:GNU Linux kernel 2.4.20

web服务器:Apache httpd-2.0.48 下载:

数据库服务器:mysql-standard-4.0.17-pc-linux-i686 下载:

脚本程序语言:PHP Version 4.3.5RC5-dev 下载:

其它库文件:

ZLIB:zlib-1.2.1.tar.gz 下载:

FreeType:freetype-2.1.5.tar.gz 下载:

PNG:libpng-1.2.5.tar.gz 下载:

JPEG:jpegsrc.v6b.tar.gz 下载:

GD:gd-2.0.18.tar.gz 下载: #2.0不支持GIF?好像限制又过期了

FreeTDS:freetds-stable.tgz 下载:

Cronolog:cronolog-1.6.2.tar.gz 下载:

Awstats:awstats-5.9.tgz 下载:

三、安装步骤

1、安装Apache

tar xzvf httpd-2.0.48.tar.gz

cd httpd-2.0.48

./configure –prefix=/usr/local/apache –enable-so

make

make install

echo “/usr/local/apache/bin/apachectl start&” >> /etc/rc.d/rc.local

#启动

/usr/local/apache/bin/apache start

2、安装MySQL

tar xzvf mysql-standard-4.0.17-pc-linux-i686.tar.gz

#此处下载的的二进制分发包,故没有./configure步骤

mv mysql-standard-4.0.17-pc-linux-i686 /usr/local/mysql

cd /usr/local/mysql

#下步cp要看服务器硬件环境,可选all,medium,large,huge

cp support-files/my-medium.cnf /etc/my.cnf

echo “/usr/local/mysql/bin/safe_mysqld –user=mysql&” >> /etc/rc.d/rc.local

groupadd mysql

useradd -g mysql mysql

./scripts/mysql_install_db

chown -R mysql.mysql data

#启动

/usr/local/mysql/bin/safe_mysqld –user=mysql&

3、安装PHP

A、先安装支持包(注意安装顺序)

建立初始目录:

#php目录

mkdir /usr/local/php

mkdir /usr/local/php/modules

#freetype目录

mkdir /usr/local/php/modules/freetype

#jpeg目录

mkdir /usr/local/php/modules/jpeg6

mkdir /usr/local/php/modules/jpeg6/bin

mkdir /usr/local/php/modules/jpeg6/lib

mkdir /usr/local/php/modules/jpeg6/include

mkdir /usr/local/php/modules/jpeg6/man

mkdir /usr/local/php/modules/jpeg6/man/man1

#gd目录

mkdir /usr/local/php/modules/gd

#freeTDS目录

mkdir /usr/local/php/modules/freetds

A1、安装zlib

tar xzvf zlib-1.2.1.tar.gz

cd zlib-1.2.1

#不要用–prefix自定义安装目录,影响gd的安装

./configure

make

make install

A2、安装freetype

tar xzvf freetype-2.1.5.tar.gz

cd freetype-2.1.5

./configure –prefix=/usr/local/php/modules/freetype

make

make install

A3、安装libpng

tar xzvf libpng-1.2.5.tar.gz

#不要用–prefix自定义安装目录,影响gd的安装

cd libpng-1.2.5

cp scripts/makefile.std makefile

make test

make install

A3、安装jpeg

tar xzvf jpegsrc.v6b.tar.gz

./configure –prefix=/usr/local/php/modules/jpeg6 –enable-shared –enable-static

make

make install

A4、安装GD

tar xzvf gd-2.0.18.tar.gz

./configure –prefix=/usr/local/php/modules/gd –with-jpeg=/usr/local/php/modules/jpeg6 –with-png –with-zlib –with-freetype=/usr/local/php/modules/freetype

make

make install

A5、安装FreeTDS

tar zxvf freetds-stable.tgz

cd freetds-stable

./configure –prefix=/usr/local/php/modules/freetds

make

make install

B、安装Cronolog

tar zxvf cronolog-1.6.2.tar.gz

cd cronolog-1.6.2

./configure

make

make install

C、安装PHP

tar xzvf php4-STABLE-latest.tar.tar

cd php4-STABLE-latest

./configure –prefix=/usr/local/php –with-jpeg=/usr/local/php/modules/jpeg6 –with-zlib –with-png –with-gd=/usr/local/php/modules/gd –with-freetype=/usr/local/php/modules/freetype –with-mssql=/usr/local/php/modules/freetds –enable-magic-quotes –with-apxs2=/usr/local/apache/bin/apxs –with-mysql=/usr/local/mysql

make

make install

四、一些特别的配置

1、配置Apache

修改httpd.conf文件:

#增加处理性能

MaxClient 250

StartServers 10

#设置PHP

LoadModule php4_module libexec/libphp4.so

#AddModule mod_php4.c

AddType application/x-httpd-php .php

#This directive configures what you return as the Server HTTP response Header

ServerTokens Minor

#Optionally add a line containing the server version and virtual host name to server-generated pages

ServerSignature Off

#设置日志存储格式

CustomLog “|/usr/local/in/cronolog /usr/local/apache/logs/access_%y%m%d.log” combined

2、配置Awstat

#!!此程序需要perl的支持!!

tar xzvf awstats-5.9.tgz

mkdir /usr/local/apache/cgi-bin/webstat/

mkdir /usr/local/apache/weblog/

cd awstat/www/

cp icon/* /usr/local/apache/icons/

cp cgi-bin/ /usr/local/apache/cgi-bin/webstat/

cd /usr/local/apache/cgi-bin/webstat/

cp awstat.model.conf awstat.

#修改awstat.中下…?用默认值:

vi awstat.

LogFile=”/usr/local/apache/logs/access_%YY%MM%DD.log”

SiteDomain=””

DirData=”/usr/local/apache/weblog/”

DirIcons=”/icons”

#修改awstats.pl为0777

chmod 0777 awstats.pl

#设置计划任务

crontab -e

55 23 * * * (/usr/local/apache/cgi-bin/webstat/awstats.pl -update -config=>/dev/null)

3、配置MySQL

修改root用户密码

/usr/local/mysql/bin/mysqladmin -u root password ‘your-new-password’

删除host为%和密码为空的用户

调整性能:

max_connections=250 #default is 100 #影响pconnect数量

table_cache=128 #default 64,调整值根据实际情况而定,一般如果Open_tables 达到table_cache值,且Opened_tables仍在快速增长,要增大该值。

key_buffer_size= #根据实际情况而定,一般Key_reads : Key_read_requests小于1:1000

4、配置PHP

默认安装的PEAR有,如果用不上的话可以删除:

DB – installed: 1.6.0

HTTP – installed: 1.2.2

Mail – installed: 1.1.2

Net_TP – installed: 1.2.3

Net_Socket – installed: 1.0.1

XML_Parser – installed: 1.0.1

XML_RPC – installed: 1.0.4

更多信息请参考:

五、常见问题

1、安装PHP

a、checking lex output file root… ./configure: line 2425: lex: command not found

configure: error: cannot find output from lex; giving up

缺少flex-2.5.4a-29.i386.rpm,从linux 9.0光盘中找到flex-2.5.4a-29.i386.rpm,安装,重新编译php,ok.

b、ext/gd/gd.lo(.text+0x875): undefined reference to `gdFreeFontCache’

*** Error code 1

php.net官方人士说是安装了不同版本的GD或者推荐安装低版本的php,但我是安装了高于php-4.3.4.tar.gz后解决了此问题。

参考:

2、安装jpeg

一定要选择./configure –enable-shared –enables-static –prefix=/usr/local方式安装,否则不能make install !!!

若没有装libtool-1.4.3-5.i386.rpm,不能创建共享libjpeg库,即不是能–enable-shared指令编译。

装libtool之前要装m4-1.4.1-13.i386.rpm,automake,autoconf及

若您下载的包为zip格式jpegsr6.zip时,./configure 时出现: bad interpreter:,原因是dos换行跟unix换行符不同造成的,在editplus在转换格式后,jpeg-6a安装成功

3、安装libpng

安装之前要先安装zlib, 且不有自定义目录,否则装gd时找不到库文件。

4、安装MySQL

此文中因为安装的是二进制分发包,帮没有configure,如果是源码包,依照如下格式安装。

shell> groupadd mysql

shell> useradd -g mysql mysql

shell> tar xzvf mysql-VERSION.tar.gz

shell> cd mysql-VERSION

shell> ./configure –prefix=/usr/local/mysql

shell> make

shell> make install

shell> scripts/mysql_install_db

shell> chown -R root /usr/local/mysql

shell> chown -R mysql /usr/local/mysql/data

shell> chgrp -R mysql /usr/local/mysql

shell> cp support-files/my-medium.cnf /etc/my.cnf

shell> /usr/local/mysql/bin/mysqld_safe –user=mysql &

五、参考资源

1、apache

2、mysql

3、php

4、GD

5、FreeTDS

6、Cronolog

7、Awstats

8、Webalizer

六、总结

上述仅仅是简单的安装跟一些简单的配置,肯定存在不少漏洞,希望大家多多留心,任何程序和配置,最关键的在决定因素往往在于--“配置者”本身。希望对有需要的人有一定的帮助。

如果你不想装apache可以略过apache安装那部分

关于php调用linux脚本的介绍到此就结束了,不知道你从中找到你需要的信息了吗 ?如果你还想了解更多这方面的信息,记得收藏关注本站。

香港服务器选创新互联,2H2G首月10元开通。
创新互联(www.cdcxhl.com)互联网服务提供商,拥有超过10年的服务器租用、服务器托管、云服务器、虚拟主机、网站系统开发经验。专业提供云主机、虚拟主机、域名注册、VPS主机、云服务器、香港云服务器、免备案服务器等。

当前标题:PHP实现调用Linux脚本(php调用linux脚本)
链接URL:http://www.mswzjz.cn/qtweb/news19/548019.html

攀枝花网站建设、攀枝花网站运维推广公司-贝锐智能,是专注品牌与效果的网络营销公司;服务项目有等

广告

声明:本网站发布的内容(图片、视频和文字)以用户投稿、用户转载内容为主,如果涉及侵权请尽快告知,我们将会在第一时间删除。文章观点不代表本网站立场,如需处理请联系客服。电话:028-86922220;邮箱:631063699@qq.com。内容未经允许不得转载,或转载时需注明来源: 贝锐智能