本文目錄一覽:
- 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是用的相對路徑。不管是絕對還是相對,只要路徑對了就行了。
原創文章,作者:小藍,如若轉載,請註明出處:https://www.506064.com/zh-tw/n/245343.html