- c - 在位数组中找到第一个零
- linux - Unix 显示有关匹配两种模式之一的文件的信息
- 正则表达式替换多个文件
- linux - 隐藏来自 xtrace 的命令
我正在远离 AMPPS/MAMP,并希望构建一个尽可能接近生产环境的开发环境。
因此,我在安装了 CentOS 6.4 64 位 os box 的 Mac 上使用 Vagrant/VirtualBox。
在我的 vagrant 文件中,我有一个配置脚本:
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
更改为 AllowOverride All
在我的 html 目录中。
<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>
最佳答案
使用 Linux SED 命令搜索和替换两个模式之间的行
另一个不错的解决方案是使用 SED 命令来搜索和替换两个模式之间的线。在您的情况下,模式将是:
'<Directory "/var/www/html">' and </directory>'
通过这种方式,您只替换 html 目录中的“AllowOverride None”行 (<Directory "/var/www/html">)
而不是在您的 httpd.conf 文件中包含“AllowOverride None”的每一行。
命令 SED 支持这种形式的模式范围:
sed '/startpattern/,/endpattern/ <sed-commands>' file
在你的例子中,这变成了:
sed -i '/<Directory "\/var\/www\/html">/,/<\/Directory>/ s/AllowOverride None/AllowOverride all/' /etc/httpd/conf/httpd.conf
-i 选项用于就地编辑文件。如果不使用选项 -i,那么修改后的输出将打印在屏幕上,文件不会被修改!
关于linux - 启用 mod_rewrite AllowOverride All 的 Bash 脚本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23680811/
有各种各样的帖子建议您如何添加 .htaccess 文件以从 URL 中删除 index.php。但是,为了使 .htaccess 文件工作,必须更改 AllowOverride(通常为“All”)。
我已经设置了一个虚拟主机,如下所示 DocumentRoot /var/www/html ErrorLog ${APACHE_LOG_DIR}/error.log CustomLog $
我最近使用 WampServer(2.4 版)创建了一个虚拟主机,因此我可以使用 http://yannbergonzat.local url 访问我的本地网站: ServerName ya
我试图在我本地电脑的网站上写一个 .htaccess 文件, 我意识到我需要设置 AllowOverride All 而不是 None 搜索,找到文件/etc/apache2/conf.d/secur
我正在使用 CodeIgniter,并且刚刚在 Ubuntu 10.10 云服务器上安装了一个 LAMP 堆栈。 一切正常,我启用了 Apache userdir 模块,因此我的主目录位于 /home
AllowOverride all 除了编辑 /etc/apache2/sites-available/default 还有其他选项吗,意味着我有超过 两个项目 在我的远程服务器中,当我将默认值编辑为
嗯,这还不是问题,但我不明白为什么 Apache 正在读取 .htaccess文件...我做: grep -R "AllowOverride" /etc 我有: /etc/apache2/apache
我刚刚创建了我的服务器,我需要使用 .htaccess 文件,其中一个可以工作而另一个没有......显然要使 .htaccess 工作,你需要启用 AllowOverride,所以我在下面做了:/e
有没有办法使用 PHP 来检查 AllowOverride 的值,看看 .htaccess 是否有任何影响? 最佳答案 我不知道有一种干净、直接的方法可以做到这一点。 如果您对要检查的文件夹具有 ht
我有一个在 WAMP 上完美设置的虚拟主机,就像这样... # # Use name-based virtual hosting. # NameVirtualHost *:80 # # Virtual
我已经在我的 Mac (OSX 10.9) 上设置了一个服务器,但它在错误日志中返回了 500 错误和以下消息… [alert] [client ::1] /Users/user/Sites/mysi
我正在远离 AMPPS/MAMP,并希望构建一个尽可能接近生产环境的开发环境。 因此,我在安装了 CentOS 6.4 64 位 os box 的 Mac 上使用 Vagrant/VirtualBox
我最近从 Apache 2.2 更新到 Apache 2.4 并注意到我在某些域上的子目录不再显示(通过 http 访问导致空白页面)。我有 50% 的信心这与将默认 AllowOverride 切换
How to edit httpd.conf file in AMAZON EC2 codeigniter .htaccess in amazon ec2 removal of index.php n
假设我们在文件系统上有 /home/example.org/public_html/ 目录,它作为我的虚拟主机的文档根目录。 该虚拟主机的相关 httpd 配置如下所示: ServerName
我的项目在 Blue 主机共享主机以及我的 XAMPP localhost 中运行良好。 为了测试,我们将文件移动到本地 ubuntu 服务器。但是 .htaccess 在这个 ubuntu 服务器上
所以我在发布我的 ASP.NET MVC 应用程序时遇到了这个错误。它在本地运行良好: " This happens when the site administrator has locked ac
我是一名优秀的程序员,十分优秀!