2

平台:Mac OSX Maverics

Web 服务器:内置 apache 和 mod-rewrite,启用 php5_module

复现步骤:

  • cd /用户/用户名/站点/
  • mkdir 螺栓 chmod a+rx 螺栓
  • 下载 Bolt zip 发行版
  • tar -xzf bolt_latest.tgz
  • chmod -R 777 文件/应用程序/数据库/应用程序/缓存/应用程序/配置/主题/
  • 确保通过在 bolt 目录中创建一个 test.php 来启用 php,通过浏览器访问,一切正常
  • 试图访问http://localhost/~username/bolt观察到的 404“/bolt/bolt/users/edit 在此服务器上不存在”
  • .htaccess 操作没有改变任何东西(比如启用重写等)
  • Apache 错误日志报告:/Users/username/Sites/bolt/bolt 不存在

我试图将螺栓目录移动到 httpd.conf 中表示的主文档根目录,结果完全相同。

请告知为什么我无法根据所有说明运行您的应用程序。非常感谢所有建议。

4

5 回答 5

3

我在将螺栓应用程序部署到亚马逊 ec2 时遇到了这个问题。

这就是让它对我有用的原因:

1)编辑http.conf:

sudo nano /etc/httpd/conf/http.conf

2)在两个部分中将“AllowOverride None”更改为“AllowOverride All”:

<Directory />
    Options FollowSymLinks
    AllowOverride All
</Directory>

#
# AllowOverride controls what directives may be placed in .htaccess files.
# It can be "All", "None", or any combination of the keywords:
#   Options FileInfo AuthConfig Limit
#
AllowOverride All

3)重启httpd:

sudo service httpd restart

在这些更改之后,第一个登录页面工作正常。

于 2015-04-05T04:46:30.427 回答
2

Apache 或处理 mod_rewrite 的某个地方很可能存在配置问题。

由于重定向到 /bolt/bolt/users/edit 发生,我们知道应用程序加载正常,因此只需对重定向进行排序。

这是一个适用于 OSX 的 Apache 设置,可以让您更轻松地添加更多站点。打开在以下位置找到的文件:/etc/apache2/users/.conf

确保它里面有以下几行:

NameVirtualHost *:80

<VirtualHost *:80>
    VirtualDocumentRoot /Users/<user>/Sites/%1/public
    UseCanonicalName Off
    SetEnv ENV development
    <Directory /Users/<user>/Sites>
      Order allow,deny
      Allow from all
    </Directory>
    <Directory /Users/<user>/Sites/*/public>
      Options Indexes FollowSymLinks MultiViews
      Order allow,deny
      Allow from all
      AllowOverride All
    </Directory>
    FallbackResource /index.php
</VirtualHost>

注意替换以下每个实例:

<user> 

使用您的用户名。

然后重启apache就可以把任何站点放到~/Sites//public

它将服务于任何网站:

<site>.dev 

~/Sites/<site>/public
于 2014-10-15T07:41:31.740 回答
2

Apache 错误日志报告:/Users/username/Sites/bolt/bolt 不存在

这意味着它没有接受重写。你确定 mod_rewrite 工作正常吗?

我也使用 OSX 来开发,我使用的是 MAMP 或 XAMPP。它们比 OSX 的内置服务器 imho 更易于使用。

于 2014-10-15T07:43:37.833 回答
1

这个问题特别指出他们的服务器启用了 mod_rewrite,但我想强调这在您的机器上可能不是真的。就我而言,未启用 mod_rewrite。运行sudo a2enmod rewrite解决了问题。

于 2017-01-08T05:52:44.387 回答
0

我不习惯使用内置的 Apache 服务器,但我也使用 MAMP,并且在多个在线服务器上遇到过类似的问题。

如果我有错误消息,那么我只需要设置我需要的 PHP 版本

SetEnv PHP_VER 5_4

如果我在用户/编辑上有 404,那么我需要映射注册表

AddType x-mapp-php5.4 .php
AddHandler x-mapp-php5.4 .php 

这可能不是您正在经历的,但以防万一它有帮助......

于 2014-11-10T16:46:21.033 回答