找到你的php.ini檔案,一般在 /usr/local/php/etc/php.ini,開啟
查詢到 disable_functions ,刪除需要使用的函式名,如下:
disable_functions = phpinfo,eval,passthru,exec,system,chroot,scandir,chgrp,chown,shell_exec,proc_open,proc_get_status,ini_alter,ini_alter,ini_restore,dl,pfsockopen,openlog,syslog,readlink,symlink,popepassthru,stream_socket_server,fsocket,fsockopen
刪除我們剛才說的幾個函式,或者將 = 號後面清空(不建議)
儲存,重啟php-fpm和apache或者nginx
1、 通過 ll (兩個小寫的l) 檢視專案目錄的使用者組和使用者
2、通過 ps -ef | grep httpd 檢視apache或者nginx的使用者組和使用者,確保他們一致,
3、如果不一致,將專案目錄修改為apache或nginx的使用者組和使用者,我這裡是www
chown -r www /www
chgrp -r www /www
[root@aca83229 web]# cat update_hosts.sh
#!/bin/bash
hostname="127.0.0.1" #資料庫主機ip
port="3306" #埠號
username="root" #使用者名稱
password="root" #密碼 (如mysql>5.6會提示密碼安全問題,可以正常執行指令碼,可以在my.cnf檔案中的 [client] 下面加入password = yourpassword,然後注釋本行即可,意思為將密碼寫到配置檔案中,不在shell中明文)
dbname="jl_api_document" #資料庫名稱
tablename="hosts" #資料庫中表的名稱
sudo cp /etc/hosts /etc/hosts_bak #備份hosts檔案
select_sql="select concat_ws(' ',ip,domain,',') as rows from $" #sql語句,已逗號分隔每條記錄,
result=`mysql -h$ -p$ -u$ -p$ $ -e "$" | awk 'nr>1'` #執行sql(如將密碼寫入my.cnf中,刪除 -p$ 即可,因為預設使用了密碼。如此方法行不通,直接 result=`mysql -h$ -p$ -u$ -proot $ -e "$" | awk 'nr>1'`)
arr=$(echo $result|tr -d "\n\t") # 查詢到結果去除特殊符號,
sudo cat /dev/null > /etc/hosts # 清空hosts檔案
for s in $ # 遍歷陣列,寫入hosts檔案,根據是否含有逗號做不同處理
do [[ $s =~ "," ]] && echo -e "\n" >> /etc/hosts
[[ $s =~ "," ]] || echo -n $" " >> /etc/hosts
done
[root@aca83229 web]#
python 執行shell命令並將結果儲存的例項
方法1 將she執行的結果儲存到字串 def run cmd cmd result str process subprocess.popen cmd,shell true,stdout subprocess.pipe,stderr subprocess.pipe result f process.s...
AWK呼叫SHELL,並將變數傳遞給SHELL
在shell指令碼中呼叫awk是非常自然和簡單的,以前還寫過乙個關於awk shell相互傳遞變數的文章 awk與shell之間的變數傳遞方法 在awk指令碼中,如果需要呼叫shell指令碼 命令,則需要使用system 函式,如果需要將變數傳遞給被呼叫的shell,則寫為 system sh my...
AWK呼叫SHELL,並將變數傳遞給SHELL
在shell指令碼中呼叫awk是非常自然和簡單的,以前還寫過乙個關於awk shell相互傳遞變數的文章 awk與shell之間的變數傳遞方法 在awk指令碼中,如果需要呼叫shell指令碼 命令,則需要使用system 函式,如果需要將變數傳遞給被呼叫的shell,則寫為 system sh my...