我正在设置一个Amazon Web Service Stack,我想在/etc/apache2/sites-enabled/000-default.conf中配置Document Root,我目前通过修改文档的DocumentRoot来完成。然后我在/etc/apache2/apache2.conf中反映了这个变化。是否可以使用命令行进行这些更改而不是打开和编辑文件?提前谢谢。
答案 0 :(得分:0)
你可以用sed做到。我使用以下包装函数,使其更方便:
replace_string () {
while :; do
case $1 in
file=?*) local file=${1#*=} ;;
replace=?*) local replace=${1#*=} ;;
with=?*) local with=${1#*=} ;;
*) break ;;
esac
shift
done
sudo sed -i -- "s/$replace/$with/ig" $file
}
replace_string file='/etc/apache2/sites-enabled/000-default.conf' \
replace='.*DocumentRoot.*' \
with='DocumentRoot path-to-your-document-root'
replace_string file='/etc/apache2/apache2.conf' \
replace='.*DocumentRoot.*' \
with='DocumentRoot "path-to-your-document-root"'
请注意,运行此脚本的用户应该能够在没有密码的情况下使用sudo。
答案 1 :(得分:0)
我不知道文档是否支持此功能(我看不到对其的引用),但是我发现附加将替换以前的指令。
我对通常伴随这种问题的sed
,grep
和awk
脚本的协同幻觉感到幻灭之后,在实验上偶然发现了这一点(请参阅Modify config file using bash script)。 / p>
就我而言,我有一个名为httpd_changes.conf
的文件,如下所示:
DocumentRoot "/my/new/web/dir"
<Directory "/my/new/web/dir">
Options Indexes FollowSymLinks
AllowOverride None
Require all granted
</Directory>
然后,当我设置网络服务器时(在我的情况下,它在我的Dockerfile
中),我在启动httpd
服务之前先运行此服务器:
cat httpd_changes.conf >> /etc/apache2/httpd.conf
这不是我的情况,但据我所知,您可以在您的conf.d
目录中放置一个新的配置文件。这些文件是按字母顺序阅读的(根据页面https://superuser.com/questions/705297/in-what-order-does-apache-load-conf-files-and-which-ones),这显然比我的黑客好得多。
答案 2 :(得分:0)
您可以尝试以下操作:
sed "s,/var/www/html,/my/new/web/dir,g" /etc/apache2/sites-enabled/000-default.conf
这将显示将对文件进行的修改。
,
用作自定义分隔符,使正则表达式更易于阅读。
此示例将/var/www/html
的所有/my/new/web/dir
替换为-i
。
添加sed -i "s,/var/www/html,/my/new/web/dir,g" /etc/apache2/sites-enabled/000-default.conf
标志以实际修改文件:
ctrl <- trainControl(method="cv",
number = 5,
summaryFunction=twoClassSummary,
classProbs=T,
savePredictions = T)
##################################### train model
set.seed(1234)
model <-
train(Bgroup ~ .,
data=all_data,
method="rf", preProc=c("center", "scale","nzv"),
trControl=ctrl,
tuneLength = 10,
metric = "ROC"
)
##################################### based on this model, I can get a plot of feature importance
feature_importance <- varImp(model)
##################################### I only selected top20 important features
importance_df <- data.frame(feature_importance$importance,feature = rownames(feature_importance$importance))
top20 <- head(importance_df[order(importance_df[,1],decreasing = T),],n=20) %>%
.$feature %>%
gsub("`", '', .)
##################################### top20 data selection
data_top20 <- all_data[,top20]
data_top20$group <- all_data$Bgroup
##################################### re-train model again based on these 20 features
set.seed(1234)
model_top20 <- train(group ~ .,
data=data_top20,
method="rf", preProc=c("center", "scale","nzv"),
trControl=ctrl,
tuneLength = 10,
metric = "ROC"
)
### calculate performance
a <- filter(data_top20$pred, mtry ==4)
confusionMatrix(a$pred,a$obs,positive = "positive")