将 yii2 网站从 windows 迁移到 linux,链接断开

migrating a yii2 website from windows to linux, broken links

最近我把我的开发箱从windows换成了linux。我正在尝试在我的 linux (mint 18.2) 盒子上设置一个 yii2 站点。以前,我的网站 运行 位于 windows 7 框 xampp 上。

这是我的铸币盒 (/etc/apache2/site-available/tripcopilot.com) 上的虚拟主机文件。

<VirtualHost *:80>

    ServerAdmin mine@email.com
    ServerName mysite.dev
    ServerAlias www.mysite.dev
    DocumentRoot /var/www/mysite/web

    ErrorLog ${APACHE_LOG_DIR}/error.log
    CustomLog ${APACHE_LOG_DIR}/access.log combined

</VirtualHost>

# vim: syntax=apache ts=4 sw=4 sts=4 sr noet

我还在主机文件中添加了以下行

127.0.0.1    mysite.dev

然后我使用

启用了网站
a2ensite mysite.dev.conf

到目前为止,通过此设置,我可以转到我的浏览器,然后 http://mysite.dev 将我带到我的主页,但是当我尝试导航到网站上的任何其他页面时,我收到 "page not found" 错误.

我认为这可能与我使用漂亮的 url 的事实有关...这是我在 yii2 中的 urlmanager 组件设置

'urlManager' => [
            'enablePrettyUrl' => true,
            'showScriptName' => false,
            'enableStrictParsing' => false,
            'rules' => [
                "home" => "site/index",
                "login" => "site/login",
                "sign-up" => "site/sign-up",
                "search" => "site/search"
            ],
        ],

在此之后,我检查了我的 Apache 设置,看是否允许 .htaccess 文件。这是当前设置 (/etc/apache2/apache2.conf).

<Directory /var/www/>
    Options Indexes FollowSymLinks
    AllowOverride None
    Require all granted
</Directory>

所以我改成了下面的

<Directory /var/www/>
    Options Indexes FollowSymLinks
        AllowOverride All
        Order allow,deny
        Allow from all
</Directory>

但现在当我去 mysite.dev 时,我得到一个 "Internal Server Error"。这是来自 /var/log/apache2/error.log

的日志条目
[Tue Oct 17 15:30:37.366255 2017] [core:alert] [pid 17889] [client 127.0.0.1:41082] /var/www/mysite/web/.htaccess: Invalid command 'RewriteEngine', perhaps misspelled or defined by a module not included in the server configuration

在我的设置中有什么我忘记做的事情吗?任何帮助将不胜感激。谢谢

您需要启用重写模块。这在许多发行版中都随 apache2 一起提供,但默认情况下未启用。这应该有帮助

sudo a2enmod rewrite
sudo systemctl restart apache2.service