2015-01-06 1 views
0

Возможно, кто-то знает решение моей проблемы.Laravel не может перейти к проектам url, когда переместите его на живой сервер

В локальном хосте все работает нормально.

Я купил сервер vps, установил в нем Ubuntu и LAMP.

И теперь скопируйте все файлы с локального хоста на живой сервер, бросив ftp.

Я пишу ip/public в веб-браузере, и я вижу, что мои проекты ведут мой путь, но если я хочу перейти к url, например ip/public/login, он выдает ошибку 404. (Теперь работает только открытый адрес)

.htaccess в общедоступной папке хорошо.

Теперь я понимаю Если я пишу ф/государственные/index.php/вход в систему он работает хорошо, но мне нужно, что он работает как в локальном хосте

+0

ли ваш веб-папка имеет разрешение '644'? – GuyT

+0

/var/www/html имеет разрешение 755 – lggg3

+1

Является ли .htaccess на вашем сервере? – lukasgeiter

ответ

0

Попробуйте сделать символическую ссылку на вашу общую папку и с помощью этого как URL вашего проекта. Например, у меня есть проект под названием inspections в моей папке /var/www/html. Если я пытаюсь получить доступ http://url/inspections я получаю сообщение об ошибке:

403 Forbidden: You don't have permission to access /inspections/ on this server. 

Однако, после вызова этой команды:

ln -s /var/www/html/inspections/public /var/www/html/insp 

и навигации по http://url/insp на странице отображается правильно и все работает отлично.

Следует иметь в виду, что необходимо иметь доступ на запись (по крайней мере), чтобы Laravel работал правильно. Я обычно просто делаю:

sudo chmod 777 -R app/storage 

Чтобы активировать все привилегии и перейти оттуда. Надеюсь, это поможет!

+0

Я пытаюсь написать ln -s/var/www/html/public/var/www/html, но он говорит ln: не удалось создать символическую ссылку '/ var/www/html/public': Файл существует – lggg3

+0

Должен быть в папке 'var/www/html /' для вашего проекта laravel.Итак, 'ln -s/var/www/html/name_of_project/public/var/www/html/new_name' –

+0

Но почему, где должна быть подпапка? Я использую только один сайт в своих VPS? Почему он не может находиться в папке www/html? – lggg3

0

Также вы проверили, включен ли mod_rewrite на этом сервере? Возможно, Overwrite не определен для этой папки?

Try:

<?php in_array('mod_rewrite', apache_get_modules()); ?> 

Или это:

<?php die("Enabled: ". strpos(shell_exec('/usr/local/apache/bin/apachectl -l'), 'mod_rewrite') !== false); ?> 

И проверить, если AllowOverride включен в вашем виртуальном хост-файл. Местоположение файла зависит от операционной системы и структуры.

Это должно выглядеть немного как это:

Options Indexes FollowSymLinks 
AllowOverride All 
Require all granted 
+0

Попробуйте свой код, поэтому второй вывод кода был 1, поэтому режим fink на – lggg3

+0

Это хорошо. Вы сами установили apache и сервер? Проверьте конфигурацию вашего виртуального хоста (зависит от конфигурации вашей операционной системы и структуры), если включена функция Allowoverriding. Я добавил код в ответ, чтобы показать вам, как это должно выглядеть с помощью AllowOverride – SimonEritsch

+0

Я пытаюсь найти, но я не могу найти его, я использую Apache 2.4.7 Ubuntu – lggg3

 Смежные вопросы

  • Нет связанных вопросов^_^