本文目录一览:
- 1、请问:Linux下用tar解压一个包,得到一个目录;例如:tar -zvf php5.tar 在当前目录下得到一个目录,php5
- 2、xp+iis5+php5+mysql5环境下的mysql我如何进入shell命令行?
- 3、linux下切换用户命令?
- 4、用shell脚本中删除某文件夹下的七天之前生成的文件夹
- 5、ASP.NET 如何调用linux下的Shell脚本程序?
- 6、请教一下java和php协同开发的方法
请问:Linux下用tar解压一个包,得到一个目录;例如:tar -zvf php5.tar 在当前目录下得到一个目录,php5
使用shell脚本就是你用到的指令写成一个指令集,然后运行这个文件,就按照你所写的指令运行。其实你只要在一个文件中写
#tar php5(#后面的是注释,以下是命令)
tar -zvf php5.tar
cd $(shell pwd)/php5
# $(shell pwd)就是获取当前路径
写好脚本后只要./你的脚本名字就OK了。这个代码具体没检测过,不过大概思路是这样
xp+iis5+php5+mysql5环境下的mysql我如何进入shell命令行?
windows里面是没有shell命令行啊。
首先,进入命令行可以用如下方法进入:
点击“开始”,再点“运行”,然后输入cmd按回车即可进入控制命令行
另外,从命令行可以用如下方法进入mysql
cd MYSQLBINPATH
mysql -uroot -p
其中,MYSQLBINPATH是你的mysql的安装路径下的bin目录,如mysql安装在C:\Program Files\mysql5 则就是
cd C:\Program Files\mysql5
mysql -uroot -p
然后输入mysql的密码即可。
还有,再从mysql退出来命令行可以输入exit然后回车即可。
linux下切换用户命令?
#1:runuser命令runuser命令使用一个替代的用户或者组ID运行一个Shell。这个命令仅在root用户时有用。仅以会话PAM钩子运行,并且没有密码提示。如果用一个非root用户,并且该用户没有权限设置user ID,这个命令将会因为程序没有setuid而失败。因runuser不会运行认证和账户PAM钩子,它比su更底层。语法:代码如下:runuser -l userNameHere -c 'command'runuser -l userNameHere -c '/path/to/command arg1 arg2'举例来说,作为一个root用户,你也许想检查下oracle用户下的shell资源限制,输入:代码如下:# runuser -l oracle -c 'ulimit -SHa'或者监察下nginx或lighttpd web服务器限制:代码如下:# runuser -l nginx -c 'ulimit -SHa'或代码如下:# runuser -l lighttpd -c 'ulimit -SHa'有时,root用户由于权限(安全)问题不能浏览NFS挂载的共享:代码如下:# ls -l /nfs/wwwroot/cyberciti.biz/http或代码如下:# cd /nfs/wwwroot/cyberciti.biz/http可能的输出:代码如下:-bash: cd: /nfs/wwwroot/cyberciti.biz/http/: Permission denied尽管如此,apache用户被允许浏览或访问挂载在/nfs/wwwroot/cyberciti.biz/http/下基于nfs的系统:代码如下:# runuser -l apache -c 'ls -l /nfs/wwwroot/cyberciti.biz/http/'或代码如下:# runuser -l apache -c 'cd /nfs/wwwroot/cyberciti.biz/http/; vi index.php'使用runuser命令,无需使用密码,并且,只能在root用户下使用。可用选项:-l: 让shell成为登录shell,用 runuser -l PAM 文件替代默认的-g:指定主要的组-G 追加组-c:命令,要传到shell的单个命令--session-command=COMMAND:使用-c传递单个命令道shell中并且不创建新的会话-m: 不重置环境变量。#2:su命令su命令允许你成为一个超级用户或者替代用户(substitute user),欺骗用户(spoof user),设置用户(set user)或者切换用户(switch user)。它允许一个Linxu用户切换当前用户到那些你知道密码的目标用户,切换包括与之关联的运行中的控制台(console)或者Shell,它的语法如下:代码如下:su -su - username切换到root用户su命令会询问目标用户的密码,在你的shell命令行中输入 su - 来切换到root用户(你必须知道root用户的密码):代码如下:vivek@wks01:~$ su -或代码如下:vivek@wks01:~$ su - root输出示例:Password:代码如下:root@wks01:/root# logoutvivek@wks01:~$如果输入了正确的root密码,会话的所有权(这里应该指当前控制台的上下文——译注)将改为root账户。输入logout可以退出一个root登录的shell,输入 whoami或者id命令来验证当前会话的所有者:whoami或id用root账户运行命令语法是:代码如下:su - root -c "command"或代码如下:su - -c "command arg1"查看/root目录下的内容,这些原本是普通用户无法访问的,运行:代码如下:su - root -c "ls -l /root"需要注意的是,Linix和一些Unix-like系统有一个wheel用户组,并且只允许这个组内的用户使用su切换到root。使用su命令来让其他用户运行命令下面这个命令是切换到oracle的账户,并且显示限制清单:代码如下:$ su - oracle -c 'ulimit -aHS'同样, 如果提供了正确的oracle密码,会话所有权将会变成oracle账户。su命令的日志保存在系统日志中,一般是在/var/log/auth.log(Debian/Ubuntu)或者/var/log/secure(RHEL/CentOS)。#3: sudo命令sudo以另外的用户来执行一个命令,但是它跟着一组关于那些用户可以以那些其他用户执行那些命令的规则(有点绕口——译注)。这个规则在/etc/sudoers这个文件中被定义。不像su,sudo验证用户是靠用户自己的密码而不是那个要切换的用户密码。当提供一个审计跟踪命令和他们的参数时(原文:...whileproviding an audit trail of the commands and their arguments——译注)sudo允许一个系统管理员给某些用户(或用户组)委派以root或其他用户来运行某些(或全部)命令的权限。这允许无需在用户之间共享密码就可以在指定宿主上将指定命令委派给指定用户。语法如下:代码如下:sudo commandGUI工具注意事项(su和sudo的前端GUI)gksu 命令是su的前台,gksudo 是sudo的前端。他们的主要用途是用来运行需要root权限但不需要运行一个X terminal emulator和使用直接使用su的图形化命令。语法如下:代码如下:gksu [-u ] [options] gksudo [-u ] [options] 仅输入gksu,将会显示下面这个弹窗:然后,你将会被要求输入root用户的密码:你也可以直接运行下面代码:代码如下:gksu -u root 'ls /root'或,以oracle用户运行命令:代码如下:gksu -u oracle 'ulimit -aHS'或作为root登录:代码如下:gksu -u root -l总结:runuser VS su VS sudo
用shell脚本中删除某文件夹下的七天之前生成的文件夹
oldDate=$(date -d "-7 days" "+%Y%m%d")。
cd yourFolder #这里写你的文件夹路径。
for folder in $(ls -d */)。
do。
[ ${folder%/*} -lt $oldDate ] rm -rf $folder。
done。
扩展资料:
shell脚本:
打开文本编辑器(可以使用vi/vim命令来创建文件),新建一个文件test.sh,扩展名为sh(sh代表shell),扩展名并不影响脚本执行,见名知意就好,如果你用php写shell 脚本,扩展名就用php好了。
输入一些代码,第一行一般是这样:
#!/bin/bashecho "Hello World !"
"#!" 是一个约定的标记,它告诉系统这个脚本需要什么解释器来执行,即使用哪一种Shell。
echo命令用于向窗口输出文本。
ASP.NET 如何调用linux下的Shell脚本程序?
Apache+Mysql+PHP(含GD,libpng,jpeg,zlib,freetype,freeTDS,awstats)安装与配置
作者:swingcoder(at)msn(dot)com
日期:2004-3-25
一、前言
安装的问题很多人都第一次要面对的,既简单又麻烦。很多老鸟都对如何安装的问题不屑,说:问来问去都是安装的问题。
希望这的贴子对新手能有点帮助,老鸟的话,就不用看了,免得拍砖。谢谢~~
本文所有软件均使用最新版(至发布日期),但是又有人说了,什么版本不稳定啦,这不好那不好啦。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要看服务器硬件环境,可选small,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/sbin/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有,如果用不上的话可以删除:
[PEAR] DB - installed: 1.6.0
[PEAR] HTTP - installed: 1.2.2
[PEAR] Mail - installed: 1.1.2
[PEAR] Net_SMTP - installed: 1.2.3
[PEAR] Net_Socket - installed: 1.0.1
[PEAR] XML_Parser - installed: 1.0.1
[PEAR] 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安装那部分
请教一下java和php协同开发的方法
引用
因为在做垂直搜索工作中,使用的是java编写的一个搜索类库。做垂直搜索,很多实用要使用到配置。当搜索的信息量大时,网站的更新。搜索程序的配置维护是一个不可忽视的问题。所以用了php做网页,提供配置界面,这样就可以不用直接修改配置文件或是配置数据库表。当把配置信息配置好了,我们需要检测配置是否正确,因为使用的是java程序,所以检测配置的正确与否使用的也是java程序来检测。这里就存在一个问题,就是需要把php页面上的信息传入到java程序中去检测。这个时候就需要php和java通信了。下面我就来介绍下怎么使php跟java通信(当然,你也可以使用类似webservice等技术)也就是php中调用java程序。 php要调用java程序:需要以下准备,php程序,java程序,还有就是shell程序或是bat程序。下面分别介绍下在linux服务器下php调用java程序和在windows服务器下调用java程序。前提是php,apache,jdk的环境都已经配置好。
一 在linux下php调用java程序是通过shell文件。分别是以下三个文件: test_shell.php test_shell.java test_shell.sh 他们的源代码如下:
1.test_shell.java程序代码
public class test_shell {
public static void main(String[] args) {
System.out.println("你输入的参数是:"+args[0]+"t"+args[1]);
}
}
2.test_shell.php程序代码
?php
/*
* 该函数是用来执行shell命令的,其实还可以使用:exec(),system(),
* popen()和pclose(),passthru() 函数。最长用的是前面两个和例中使
* 用的shell_exec()。
*/
$args1="我喜欢你";
$args2="我很爱你";
// 注意空格
$r=shell_exec("./test_shell.sh $args1 $args2");
echo $r;
?
3.test_shell.sh程序代码是
#!/bin/sh
JAVA_HOME=/usr/local/jdk
CLASSPATH=.:/usr/local/jdk/jre/lib/rt.jar:/usr/local/apache/htdocs/test_shell/test_shell.class
PATH=$PATH:$JAVA_HOME/bin
export JAVA_HOME CLASSPATH PATH
cd /usr/local/apache/htdocs/test_shell
java test_shell
#shell代码结束
以下是三个程序的存放路径和运行次序。
1.三个文件都必须在同一目录下,比如在/usr/local/apache/htdocs/test_shell/下,不然php很难调到java程序。
2.把test_shell.java程序编译成test_shell.class,然后把test_shell.class文件存放到CLASSPATH中。如果系统配置了那些环境变量,这里在配置一次是没有坏处的,也不会影响配置好的系统环境变量。这里设置的好处是当没有配置jdk环境配置,只有jre时,则需把jre放到/usr/local/jdk下就以。
二、下面先介绍在windows服务器下,php调用java程序是通过bat文件来的。分别是以下三个文件: test_bat.php test_bat.java test_bat.sh 他们的源代码如下:
1.java程序
public class test_bat {
public static void main(String[] args) {
System.out.println("你输入的参数是:"+args[0]+"t"+args[1]);
}
}
2.test_bat.php程序代码
?php
/*
* 该函数是用来执行shell命令的,其实还可以使用:exec(),system(),
* popen()和pclose(),passthru() 函数。最长用的是前面两个和例中使
* 用的shell_exec()。
*/
$args1="我喜欢你";
$args2="我很爱你";
// 注意空格
$r=shell_exec("./test_shell.sh $args1 $args2");
echo $r;
?
3.test_bat.sh程序代码是
@echo off
set path=%path%;%cd%jrebin
set CLASSPATH=.;%cd%jrelibrt.jar;%cd%test_bat.class
java test_bat %1 %2
#bat代码结束
1.三个文件都必须放在同一目录下,比如在/usr/local/apache/htdocs/test_bat/下,不然php很难调到java程序。
2.把test_bat.java程序编译成test_bat.class,然后把test_bat.class文件存放到CLASSPATH中。如果系统配置了那些环境变量,这里在配置是没有坏处的,也不会影响配置好的系统环境变量。这里设置的好处是当没有配置jdk环境配置,只有jre时,则需把jre放到跟跟test_bat.java同一目录下就行了。
三、上面两个例子中,test_shell.sh用的绝对路径,test_bat.bat是用的相对路径。不管是绝对还是相对,只要路径对了就行了。