使用命令行更改文档根目录

时间:2016-07-25 22:09:42

标签: apache ubuntu amazon-web-services command-line stack

我正在设置一个Amazon Web Service Stack,我想在/etc/apache2/sites-enabled/000-default.conf中配置Document Root,我目前通过修改文档的DocumentRoot来完成。然后我在/etc/apache2/apache2.conf中反映了这个变化。是否可以使用命令行进行这些更改而不是打开和编辑文件?提前谢谢。

3 个答案:

答案 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)

如果您拥有httpd.conf文件

我不知道文档是否支持此功能(我看不到对其的引用),但是我发现附加将替换以前的指令。

我对通常伴随这种问题的sedgrepawk脚本的协同幻觉感到幻灭之后,在实验上偶然发现了这一点(请参阅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

如果您没有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")