将 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
最近我把我的开发箱从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