2014-09-08 8 views
8

Я разработал приложение с laravel 4.2.8, и теперь у меня возникли проблемы с его развертыванием. Я последовал за этим ответом https://stackoverflow.com/a/16683938/3153380, но он не работает. Я получаю белый экран, и заголовки возвращают состояние внутренней внутренней ошибки 500.Как развернуть laravel 4.2 на общедоступном хостинге?

Я читал, что laravel 4.2 немного сложно настроить на совместном хостинге, это правда? Я могу найти рабочее решение, чтобы те, которые развернули 4.2, прежде чем помогать. Моя структура папок, как показано ниже

корня/ laravel_base/ приложения/ ... public_html/ корень сайт/ активы/ пакетов/ загрузки/ индекса. php ... Любые указатели?

+0

A "500 Внутренняя ошибка сервера" код состояния (или пустая страница) означает, что ваш скрипт выдает ошибку, но вы не настроили PHP для отображения сообщений об ошибках. Это то, что вам нужно исправить, прежде чем идти дальше; невозможно правильно закодировать код без помощи сообщений об ошибках. Вот краткое объяснение (http://stackoverflow.com/a/5680885/13508). –

+0

@ ÁlvaroG.Vicario спасибо за указатель. Я получил эту ошибку. Предупреждение: require(): ограничение open_basedir. Файл (/ usr/www/users/hosting_base/laravel_base /../../ siteroot/bootstrap/autoload.php) не находится в пределах допустимых путей: – zinyando

+0

Если так выглядит путь, ваш siteroot находится вне ваш хостинг-сайт. –

ответ

18

Сначала убедитесь, что ваш общий хост работает php> = v5.4. Во-вторых попробуйте следовать этим шагам:

  1. Создать папку за пределами вашей public_html/ или www/. Пример: project/
  2. Копирование любых папок и файлов (кроме папки) из Laravel приложения в эту папку project/
  3. Скопируйте содержимое папки public/ в вашем public_html/ или www/(в .htaccess должен быть там)
  4. Внутри общественности/найдите файл index.php и измените следующие пути:

    а. Путь к autoload.php

    require __DIR__.'/../bootstrap/autoload.php'; 
    

    в

    require __DIR__.'/../project/bootstrap/autoload.php'; 
    

    б. Путь к start.php

    $app = require_once __DIR__.'/../bootstrap/start.php'; 
    

    в

    $app = require_once __DIR__.'/../project/bootstrap/start.php';` 
    

В конце концов, что он должен работать.

+0

Я создал папку за пределами _'public_html'_ на моем хостинге, и я скопировал ** «общедоступную» ** папку из моего laravel projetc внутри _'public_html'_. Теперь для доступа к моему приложению Мне нужно указать общую папку тоже в URL? Я имею в виду: ** http: //lenguajemx.com/public/** –

+0

это, вероятно, может быть две вещи. 1) У вас есть public_html/public? если это делает его только public_html/{contents here} 2) Вы тоже скопировали .htaccess? –

+0

Да, оба аспекта верны, у меня есть 'public_html/public', и я уже скопировал' .htaccess' в папку _public_html/public_. Поэтому я собираюсь сделать это, как вы сказали. Спасибо, я попробую еще раз. –

4

я сделал что-то похожее на @Helder Лукас - Я также должен был изменить файл начальной загрузки/paths.php:

# change: 'public' => __DIR__.'/../public', 
'public' => __DIR__.'/../../public_html', 

Я создал скрипт для установки Laravel проектов для общего хостинга среды. Вот суть: https://gist.github.com/meganlkm/74dba6c4350ed58bf7bb

+0

вот новый gist для laravel 5: https://gist.github.com/meganlkm/15ae87674642590172c5 – m79lkm

0

Было довольно легко получить Laravel 4/5, работающий на OpenShift Online.Для тех, кто еще работает в хостинг вопросы, проверить: https://hub.openshift.com/quickstarts/115-laravel-5-0

+0

hey lucid, когда откроется поддержка поддержки php 5.6? – Gokigooooks

+1

OpenShift 3 поддерживает PHP 5.6. Просмотрите предварительный просмотр разработчика OpenShift Online: https://www.openshift.com/devpreview/#technologies – luciddreamz

0

Я просто добавить новую папку в папке/на мой виртуальный хостинг

www.domain.com

Где я добавить подпапку под названием

public/

Так что путь выглядит следующим образом

/www.domain.com/public/

И от CPANEL я связать папку имя домена корня в

www.domain.com/public/

А потом я просто загрузить приложение Laravel в

/www.domain.com

Он работает для Laravel 4,2 и 5. И нет нарушений безопасности, поскольку папка корневого домена находится в общей папке приложения laravel, нет необходимости в обновлении .htaccess.

Это просто работает.

+0

Я нахожу этот ответ неясным. каково должно быть содержимое общей папки? – Vainglory07

+0

общая папка laravel –

0

Попробуйте играть с .htaccess

В вашем public_html, добавьте .htaccess для переадресации запроса

<IfModule mod_rewrite.c> 
    RewriteEngine on 
    RewriteCond %{REQUEST_URI} !^yoursite.com/public 
    RewriteRule ^(.*)$ yoursite.com/public/$1 [L] 
</IfModule> 

т.е.

public_html 
├── yoursite.com <-------- laravel project 
├── .htaccess  <-------- this file 
Смежные вопросы