在1& 1服务器上部署Laravel

时间:2015-02-05 19:02:38

标签: php laravel deployment

我最近完成了我的第一个laravel网站,但现在我陷入了部署困境。这对我来说是一个全新的概念。我的网站空间由1& 1提供。

我尝试了几个教程,但似乎都没有。 基于以下教程: Uploading Laravel Project onto Web Server

我构建了我的服务器文件夹,如下所示:

(注意首次FTP我的服务器时,没有www或html_docs,只有一个日志文件夹)。

enter image description here

在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.

有什么建议吗?

2 个答案:

答案 0 :(得分:1)

全部修复:)结果1& 1不将其数据库名称作为本地主机或121.0.0.1托管。我只是改变了细节,实现了梦想。下一步是摆脱可怕的/公共/索引网址。

答案 1 :(得分:1)

您看到/public/index.php的原因是因为您指向顶级目录而不是/ public目录。要解决这个问题,请访问:

  1. 管理域名
  2. 展开您的域,然后点击"编辑目的地"
  3. 将目标目录更改为/ public /.
  4. 这应该从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>