我正在远离 AMPPS/MAMP,并希望构建一个尽可能接近生产环境的开发环境。

因此,我在安装了 CentOS 6.4 64 位操作系统的 Mac 上使用 Vagrant/VirtualBox。

在我的流浪文件中,我有一个配置脚本:

config.vm.provision :shell, :path => "bootstrap.sh"

目前,我的 bootstrap.sh 如下所示:
#!/usr/bin/env bash

# Install the remi repos
sudo rpm -Uvh http://rpms.famillecollet.com/enterprise/remi-release-6.rpm

# Update the repositories
sudo yum -y update

sudo yum -y --enablerepo=remi,remi-php55 install php-pecl-apc php-cli php-pear php-pdo php-mysqlnd php-pecl-memcache php-pecl-memcached php-gd php-mbstring php-mcrypt php-xml

现在我已经安装了 apache 服务器,我希望我的 bash 脚本编辑 /etc/httpd/conf/httpd.conf 文件并将 AllowOverride None 更改为 html 目录中的 AllowOverride All
<Directory "/var/www/html">

...

    Options Indexes FollowSymLinks

...

    # Need to change this to AllowOverride All via bash script
    AllowOverride None

...

    Order allow,deny
    Allow from all

</Directory>

最佳答案

这是一个不错的单线给你:

sed "$(grep -n "AllowOverride None" input.file |cut -f1 -d:)s/.*/AllowOverride All/" input.file > output.file

对于分割:
  • grep -n "AllowOverride None" input.file 返回匹配模式的行,前面是行号
  • cut -f1 -d: 剪切字符串并返回它遇到的第一个数字
  • sed "$LINE_NUMBERs/.*/AllowOverride All/" input.file 将“AllowOverride All”放在第 n° 行 $LINE_NUMBER

  • 然后,您只需要将输出重定向到您想要的文件。

    等等!

    关于linux - 用于启用 mod_rewrite AllowOverride All 的 Bash 脚本,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/23680811/

    10-13 01:23