После завершения разработки сайта появилась задача забросить его на хостинг. Как оказалось, не так всё просто)
Но обо всём по порядку!
Что мы имеем: сайт, написанный с помощью Play Framework, хостинг с установленной Ubuntu 12.04
Для работы мне понадобится следующее:
Для начала скачаем последнюю jdk
и выполним следующие команды для установки и добавления в PATH:
Далее проверяем, успешно ли всё:
Если отображается информация о той версии Java, которая устанавливала, то всё хорошо.
Для установки MySQL запускаем команду
В процессе установки будет предложено создать пользователя и определить ему пароль, что и нужно сделать. В моем случае такого предложено не было, поэтому пришлось установить пароль для root по другому:
Останавливаем MySQL:
Запускаем в режиме без проверки прав доступа:
Соединяемся как root без пароля:
Выбираем активную БД:
Обновляем пароль:
Завершаем работу mysqld:
Запускаем MySQL в обычном режиме.
Теперь всё должно быть хорошо.
С этим пунктом трудностей у меня возникто больше всего. Всё дела в том, что на сайте фрэймворканикак не указано я не нашел упоминания, что для разворачивания приложения необходимо и желательно создать сервис, который будет запускать его.
Для начала скачает Play Framework 2.1.5
Разархивируем его в папку /opt (должна быть установлена утилита unzip)
Добавим в PATH, чтобы пользовать командой play без пути к ней
Запускаем команду
для проверки работоспособности
Сперва нужно скопировать приложение в папку /opt/play-2.1.5/
Переходим в папку приложения(/opt/play-2.1.5/<имя приложения>) и запускаем команду для компиляции и сборки
Это может занять некоторое время в зависимости от конфигурации сервера и размера проекта.
Play Framework использует Netty в качестве веб-сервера. Следующим действием будет создание конфига для запуска веб-сервера как сервиса ubuntu. Переходим в папку /etc/init.d/, создаем файл play-run и добавляем в него следующее:
сохраняем файл, наделяем его правами доступа и теперь можно запускать наше приложение
В строке браузера пишем адрес сервера и проверяем.
Но обо всём по порядку!
Что мы имеем: сайт, написанный с помощью Play Framework, хостинг с установленной Ubuntu 12.04
Установка необходимого софта
Для работы мне понадобится следующее:
- Java 1.7
- Play Framework 2.1.5
- MySQL
Установка Java
Для начала скачаем последнюю jdk
wget --no-check-certificate -c --header "Cookie: oraclelicense=accept-securebackup-cookie" http://download.oracle.com/otn-pub/java/jdk/7u55-b13/jdk-7u55-linux-i586.tar.gz
и выполним следующие команды для установки и добавления в PATH:
tar -xvf jdk-7u55-linux-i586.tar.gz
mkdir -p /usr/lib/jvm
mv ./jdk1.7.0_55/ /usr/lib/jvm/jdk1.7.0_55/
sudo update-alternatives --install "/usr/bin/java" "java" "/usr/lib/jvm/jdk1.7.0_55/bin/java" 1
sudo update-alternatives --install "/usr/bin/javac" "javac" "/usr/lib/jvm/jdk1.7.0_55/bin/javac" 1
sudo update-alternatives --install "/usr/bin/javaws" "javaws" "/usr/lib/jvm/jdk1.7.0_55/bin/javaws" 1
sudo chmod a+x /usr/bin/java
sudo chmod a+x /usr/bin/javac
sudo chmod a+x /usr/bin/javaws
sudo chown -R root:root /usr/lib/jvm/jdk1.7.0
Далее проверяем, успешно ли всё:
java -version
Если отображается информация о той версии Java, которая устанавливала, то всё хорошо.
Установка MySQL
Для установки MySQL запускаем команду
sudo apt-get install mysql-server
В процессе установки будет предложено создать пользователя и определить ему пароль, что и нужно сделать. В моем случае такого предложено не было, поэтому пришлось установить пароль для root по другому:
Останавливаем MySQL:
/etc/init.d/mysql stop
Запускаем в режиме без проверки прав доступа:
/usr/sbin/mysqld --skip-grant-tables &
Соединяемся как root без пароля:
mysql
Выбираем активную БД:
use mysql;
Обновляем пароль:
mysql> update user set Password=PASSWORD('ваш пароль') WHERE User='root';
mysql> flush privileges;
Завершаем работу mysqld:
"Ctrl+c"
Запускаем MySQL в обычном режиме.
/etc/init.d/mysql start
Теперь всё должно быть хорошо.
Установка Play Framework
С этим пунктом трудностей у меня возникто больше всего. Всё дела в том, что на сайте фрэймворка
Для начала скачает Play Framework 2.1.5
wget http://downloads.typesafe.com/play/2.1.5/play-2.1.5.zip
Разархивируем его в папку /opt (должна быть установлена утилита unzip)
unzip -d /opt play-2.1.5.zip
Добавим в PATH, чтобы пользовать командой play без пути к ней
sudo chmod +x /opt/play-2.1.5/play
sudo ln -s /opt/play-2.1.5/play /usr/local/bin/play
Запускаем команду
play
для проверки работоспособности
Разворачивание приложения
Сперва нужно скопировать приложение в папку /opt/play-2.1.5/
Переходим в папку приложения(/opt/play-2.1.5/<имя приложения>) и запускаем команду для компиляции и сборки
play clean compile stage
Это может занять некоторое время в зависимости от конфигурации сервера и размера проекта.
Play Framework использует Netty в качестве веб-сервера. Следующим действием будет создание конфига для запуска веб-сервера как сервиса ubuntu. Переходим в папку /etc/init.d/, создаем файл play-run и добавляем в него следующее:
APPLICATION_PATH=/opt/play-2.1.5/<имя приложения>/
start() {
echo -n "Starting"
sudo start-stop-daemon --start --background --pidfile ${APPLICATION_PATH}/RUNNING_PID -d ${APPLICATION_PATH} --exec target/start -- -
Dhttp.port=80
RETVAL=$?
if [ $RETVAL -eq 0 ]; then
echo " - Success"
else
echo " - Failure"
fi
echo
}
stop() {
echo -n "Stopping"
sudo start-stop-daemon --stop --pidfile ${APPLICATION_PATH}/RUNNING_PID
RETVAL=$?
if [ $RETVAL -eq 0 ]; then
echo " - Success"
else
echo " - Failure"
fi
echo
}
case "$1" in
start)
start
;;
stop)
stop
;;
restart)
stop
start
;;
*)
echo "Usage: play-server {start|stop|restart}"
exit 1
;;
esac
exit $RETVAL
сохраняем файл, наделяем его правами доступа и теперь можно запускать наше приложение
/etc/init.d/play-run start
В строке браузера пишем адрес сервера и проверяем.