我最近完成了我的第一个laravel网站,但现在我陷入了部署困境。这对我来说是一个全新的概念。我的网站空间由1& 1提供。
我尝试了几个教程,但似乎都没有。 基于以下教程: Uploading Laravel Project onto Web Server
我构建了我的服务器文件夹,如下所示:
(注意首次FTP我的服务器时,没有www或html_docs,只有一个日志文件夹)。
在www中,我的index.php被改为:
require __DIR__.'/../laravel/bootstrap/autoload.php';
$app = require_once __DIR__.'/../laravel/bootstrap/start.php';
在laravel / bootstrap / paths.php文件中,我改变了:
'public' => __DIR__.'/../../www',
在浏览器中访问我的域名时,例如:myDomain.co.uk - 该网站被重定向到1& 1域名的“占位符”(名为/ defaultsite)页面并声明“此域名刚刚注册。“
例如,如果我附加/www/index.php,即使文件位于上面的结构中,我也不会存在文件。
正如您可能已经注意到我对服务器端方面(如FTP等)非常陌生。我已经阅读了一些内容,似乎都采取了不同的方法,让我对最好的方法感到困惑。 我不知道从哪里开始,所以任何建议都表示赞赏。谢谢。
修改: 我想我实际上已经开始工作了,但现在当我去domain.com/public时,我得到的是我认为的数据库错误:
SQLSTATE[HY000] [2002] No such file or directory.
有什么建议吗?
答案 0 :(得分:1)
全部修复:)结果1& 1不将其数据库名称作为本地主机或121.0.0.1托管。我只是改变了细节,实现了梦想。下一步是摆脱可怕的/公共/索引网址。
答案 1 :(得分:1)
您看到/public/index.php的原因是因为您指向顶级目录而不是/ public目录。要解决这个问题,请访问:
这应该从URL中删除public。
这是我用于1and1和laravel 4.2的.htaccess文件,它删除.index.php并使用PHP的更新版本:
<IfModule mod_rewrite.c>
<IfModule mod_negotiation.c>
Options -MultiViews
</IfModule>
RewriteEngine On
AddHandler x-mapp-php6 .php
AddType x-mapp-php6 .php
# Redirect Trailing Slashes...
RewriteRule ^(.*)/$ /$1 [L,R=301]
# Handle Front Controller...
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^ /index.php [L]
</IfModule>