我正在尝试将我的Drupal网站从本地主机迁移到服务器,但我遇到了一些问题。我试过很多谷歌的导游,但没有运气。
首先,我在服务器上做了一个新的drupal安装。
安装完成后,我将.htaccess
文件编辑为
RewriteBase /site-name
然后我使用mysqldump将我的数据库从localhost转储到服务器,我发现在localhost中总共有126个表,而在服务器中有128个表。
然后,我将完整的“站点”目录从localhost复制到服务器。
现在,当我进入www.mysite.com/site-name
时,我得到了我的网站的适当主页,但是如果我转到任何其他链接,比如www.mysite.com/site-name/user
,它就无法打开页面,但是如果我输入www.mysite.com/?q=user
,它就能很好地工作,并且对于/content
、/config
等所有页面都是如此。
我该怎么办才能解决这个问题呢?我认为这是一个clean-urls
的问题,所以我去配置,但它说干净的网址启用,但测试失败!
我需要让网站在明天前生存,所以需要你的帮助!
注意:我在本地主机和服务器上使用ubuntu。
谢谢!
发布于 2014-07-27 06:12:08
这是因为您需要在服务器中配置虚拟主机。也有适当的权限。clean-urls
与mod_rewrite.so文件相关联。因此,在apache配置中,您需要启用mod_rewrite.so
并重新启动httpd或apache2进程。
根据您正在使用的发行版(您应该在您的问题中提到),我给您提供了两个链接以供查看。
编辑#1,因为这是一个仅限于Drupal的讨论论坛,请咨询http://askubuntu.com有关服务器的问题。但是为了您的帮助,我给您提供了一个如何启用国防部_rewrite.so的链接。每个部署过程都应该与产品服务器的开发服务器保持一致。因此,就我而言,您应该对本地安装做一个完整的zip/tar,并将其上传到生产中。归档文件还应该包含本地Drupal安装数据库。这个表中的差异可能是由于Drupal核心最近的更新或由于一些控制模块安装造成的。我提供的链接是告诉您如何在用户完全管理的服务器中安装虚拟主机。如果您面临任何问题,最好与服务器支持小组协商,我希望他们会帮助您,因为您正在支付费用;)。
发布于 2014-07-27 06:16:09
?q=user
或?q=some/page/path
,您应该确保在Apache服务器上启用了ModRewrite
。如果您是在共享主机上,则需要要求主机提供程序启用Apache的这个模块。不幸的是,Drupal安装之间少了两个表的原因只是代表您的糟糕的项目管理--祝您好运,跟踪这些差异。
比较两个Drupal安装之间的drush pm-list
应该有助于在一个系统上找到任何模块,而不是在另一个系统上。我喜欢使用drush archive-dump
和drush archive-restore
来移动Drupal站点--但是在您的时间限制下,我建议您使用SQL迁移工具和您最熟悉的代码迁移工具。
发布于 2014-07-28 04:20:22
在命令行中:
sudo nano /etc/apache2/sites-available/[your-vitualhost].conf
然后,将AllowOverride全部放入您的<Directory>
中,如下所示:
<Directory /var/www/>
# ...
AllowOverride All # this allow use the .htaccess file.
# ...
</Directory>
最后,确保启用了mod_rewrite:
sudo a2enmod rewrite
然后,重新启动apache:
sudo /etc/init.d/apache2 restart
欢迎光临。
https://drupal.stackexchange.com/questions/124825
复制相似问题