У меня есть два сервера — локальный (Laravel Hometead в Ubuntu Desktop) и публичный (Ubuntu сервер с php7) для моих сайтов. У меня уже есть несколько простых сайтов, которые отлично работают на моем общедоступном сервере, и они видны в сети. Я создаю проект laravel 5.2 на своем локальном сервере laravel Homestead, и теперь я хочу переместить его — развернуть на моем общедоступном сервере. Я сжимаю полную папку проекта (tar.gz) и перемещаю ее на сервер с помощью filezilla, распаковываю и перемещаю домен DocumentRoot на страницу index.php проекта в общей папке, но она открывает пустую страницу. Если я внесу изменение в index.php и выведу какую-нибудь строку, она будет работать, и строка отобразится, но программа загрузки laravel не загружает приложение.
Мой index.php находится в:
/var/www/html/mydomain.com/public/index.php
с этой двумя строками:
require __DIR__.'/../bootstrap/autoload.php';
$app = require_once __DIR__.'/../bootstrap/app.php';
и это:
$kernel = $app->make(Illuminate\Contracts\Http\Kernel::class);
$response = $kernel->handle(
$request = Illuminate\Http\Request::capture()
);
$response->send();
$kernel->terminate($request, $response);
Я пытаюсь также с абсолютным путем:
require '/var/www/html/mydomain.com/bootstrap/autoload.php';
$app = require_once '/var/www/html/mydomain.com/bootstrap/app.php';
Но браузер по-прежнему открывает пустую страницу.
Файл конфигурации Apache (/etc/apache2/sites-available/mydomain.com.conf) для этого домена создается со следующими данными:
<VirtualHost *:80>
ServerAdmin [email protected]
ServerName mydomain.com
ServerAlias www.mydomain.com
DocumentRoot /var/www/html/mydomain.com/public
ErrorLog ${APACHE_LOG_DIR}/error.log
CustomLog ${APACHE_LOG_DIR}/access.log combined
</VirtualHost>
Это мой первый проект laravel, и у меня нет опыта его развертывания на сервере. Пожалуйста, какие настройки и изменения мне нужно сделать, чтобы это работало? Домен перемещается на страницу index.php в общей папке, но браузер не загружает приложение. Пожалуйста, помогите.
Изменить: Журнал ошибок от Apache:
[Вс 10 июля 21: 38: 26.082328 2016] [: error] [pid 18269] [client 192.168.1.7:41368] Неустранимая ошибка PHP: Uncaught UnexpectedValueException: поток или файл «/var/www/html/mydomain.com/ Не удалось открыть хранилище / logs / laravel.log «: не удалось открыть поток: отказано в разрешении в /var/www/html/mydomain.com/vendor/monolog/monolog/src/Monolog/Handler/StreamHandler.php: 87 \ Трассировка стека: \ n # 0 /var/www/html/mydomain.com/vendor/monolog/monolog/src/Monolog/Handler/AbstractProcessingHandler.php(37): Monolog \ Handler \ StreamHandler-> write (Array) \ n # 1 /var/www/html/mydomain.com/vendor/monolog/monolog/src/Monolog/Logger.php(336): Monolog \ Handler \ AbstractProcessingHandler-> handle (Array) \ n # 2 / var / www / html / mydomain.com / vendor / monolog / monolog / src / Monolog / Logger.php (615): Monolog \ Logger-> addRecord (400, Object (Symfony \ Component \ Debug \ Exception \ FatalErrorException), Array) \ n # 3 /var/www/html/mydomain.com/vendor/laravel/framework/src/Illuminate/Log/Writer.php(202): Monolog \ Logger-> error (Объект (Symfony \ Component \ Debug \) Исключение \ FatalErrorException), Массив) \ n # 4 /var/www/html/mydomain.com/vendor/laravel/framework/ в /var/www/html/mydomain.com/vendor/monolog/monolog/src/Monolog/ Обработчик / StreamHandler.php в строке 87Вы должны правильно настроить права доступа к вашим папкам и файлам. Вы можете найти много информации в этом вопросе. Файловые права для Laravel 5 (и другие)
Кроме того, почему вы не используете git для развертывания вашего проекта? Сделайте репозиторий, и тогда вы сможете клонировать свой проект на своем сервере, и когда вы обновляете свой сайт, все, что вам нужно сделать, это git pull 🙂
И если вы действительно хотите сделать это правильно, вы можете использовать deploybot с посланник. Таким образом, вы можете напрямую развернуть с вашего локального компьютера.
Других решений пока нет …