Nginx/PHP-fpm/MySQL

Данная инструкция рассчитана на инсталляцию под Ubuntu Server. Для использования на других дистрибутивах используйте аналогичное ПО и команды (напр yum вместо apt-get).

1. Обновите дерево пакетов ОС

$ sudo apt-get update

2. Установите VESTA-хостинг панель

$ curl -O http://vestacp.com/pub/vst-install.sh
$ sudo bash vst-install.sh --nginx yes --phpfpm yes --apache no --vsftpd no --proftpd no \
--exim no --dovecot no --spamassassin no --clamav no --named no --iptables no --fail2ban no \
--mysql yes --postgresql no --remi yes --quota no

3. Установите REDIS-сервер

$ wget http://download.redis.io/releases/redis-stable.tar.gz
$ tar xzf redis-stable.tar.gz
$ cd redis-stable
$ make
$ sudo make install
$ cd utils
$ sudo ./install_server.sh
$ sudo update-rc.d redis_6379 defaults

4. Установите PHP-модули и NodeJS/NPM

$ sudo apt-get install -y php5-imap php5-ldap nodejs npm
$ sudo php5enmod imap
$ sudo service nginx restart
$ sudo ln -s /usr/bin/nodejs /usr/bin/node

4.1 Скачивание ZENLIX:

$ cd ~/web/[domain.name]/public_html
$ wget -O zenlix.zip https://[URL_TO_ZENLIX_DIST]
$ unzip zenlix.zip
$ cd zenlix
$ cp .env.example .env
$ chmod +w .env 
$ chmod -R +w ./storage/*
$ chmod -R +w ./bootstrap/*
$ chmod -R +w ./nodejs/*


5. Установите NodeJS-модули

$ sudo npm install dotenv --save -g
$ sudo npm install pm2 -g
$ sudo npm install express socket.io ioredis dotenv
$ sudo cd /home/admin/web/YOUR_DOMAIN/public_html/nodejs/
$ sudo pm2 start server.js -n zenserver --watch
$ sudo pm2 startup
$ sudo pm2 save
$ sudo pm2 install pm2-logrotate

6. Добавьте WEB-домен в хостинг панели

$ sudo /usr/local/vesta/bin/v-add-domain admin YOUR_DOMAIN

7. Отредактируйте nginx.conf (обычно /home/admin/conf/web/nginx.conf)

 		 location / {
 		 	try_files $uri $uri/ /index.php?$query_string;
 		 }
  		
                 location /socket.io {
  		   proxy_set_header Upgrade $http_upgrade;
  		   proxy_set_header Connection "upgrade";
  		   proxy_http_version 1.1;
  		   proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
  		   proxy_set_header Host $host;
  		   proxy_pass http://127.0.0.1:3001/socket.io/;
  		 }

8. Отредактируйте nginx.conf

замените это 

root        /home/admin/web/YOUR_DOMAIN/public_html;

на это

root        /home/admin/web/YOUR_DOMAIN/public_html/public;

9. Перезапустите nginx-сервер

$ sudo service nginx restart

10. Добавьте базу данных

$ sudo /usr/local/vesta/bin/v-add-database admin zenlix zenlix YOUR_PASSWORD

11. Разархивируйте архив, переименуйте .env.example в .env и перейдите на http://YOUR_DOMAIN/ и введите следующие параметры:

		DB host: localhost
		DB user: admin_zenlix
		DB name: admin_zenlix
		DB user password: YOUR_PASSWORD

12. Добавьте cron-задачу

* * * * * /usr/bin/php /path/to/artisan schedule:run >> /dev/null 2>&1

или через VESTA-CLI

$ sudo /usr/local/vesta/bin/v-add-cron-job admin * * * * * "php /home/admin/web/YOUR_DOMAIN/public_html/artisan schedule:run >> /dev/null 2>&1"

13. Установите SUPEVISOR-сервис

$ sudo apt-get install supervisor


14. Сконфигурируйте supervisor-сервис


$ sudo nano /etc/supervisor/conf.d/laravel-worker.conf
[program:laravel-worker]
process_name=%(program_name)s_%(process_num)02d
command=/usr/bin/php /home/admin/web/YOUR_DOMAIN/public_html/artisan queue:work --sleep=3 --tries=3 --daemon
autostart=true
autorestart=true
user=admin
numprocs=8

15. Перезапустите supervisor-сервис

$ sudo supervisorctl reread
$ sudo supervisorctl update
$ sudo supervisorctl start laravel-worker:*


16. Проверьте установленный ZENLIX, войдите по WEB, используя логин/пароль:

login: admin@local
password: p@ssw0rd