Nginx/PHP7/MySQL

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

Данная инструкция описывает инсталляцию без использования хостинг-панели VESTACP.

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

$ sudo apt-get update

2. Установите дополнительно

$ sudo apt-get install build-essential

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

$ sudo apt-get install nginx

4. Установите MySQL & конфигурацию

$ sudo apt-get install mysql-server
$ sudo mysql_install_db
$ sudo mysql_secure_installation

5. Установите PHP7

$ sudo add-apt-repository ppa:ondrej/php
$ sudo apt-get install -y language-pack-en-base
$ sudo LC_ALL=en_US.UTF-8 add-apt-repository ppa:ondrej/php
$ sudo apt-get install php7.0

6. Установите PHP-модули

$ sudo apt-get install php7.0-mysql php7.0-fpm mcrypt php7.0-mcrypt \
php7.0-zip php7.0-curl php7.0-gd php7.0-imap php7.0-ldap php7.0-mbstring

7. Установите 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

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

$ sudo apt-get install -y php7.0-imap php7.0-ldap nodejs npm
$ sudo service php7.0-fpm restart
$ sudo service nginx restart
$ sudo ln -s /usr/bin/nodejs /usr/bin/node
$ cd /var/www/html
$ wget -O zenlix.zip http://[PATH TO ZENLIX.ZIP]
$ unzip zenlix.zip

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

$ sudo npm install dotenv --save -g
$ sudo npm install pm2 -g
$ sudo npm install express socket.io ioredis dotenv
$ sudo cd /var/www/html/zenlix/nodejs/
$ sudo pm2 start server.js -n zenserver --watch
$ sudo pm2 startup
$ sudo pm2 save
$ sudo pm2 install pm2-logrotate

10. Отредактируйте nginx.conf (обычно /etc/nginx/sites-enabled/default)

 		 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/;
  		 }
    location ~ \.php$ {
        try_files $uri = 404;
        include fastcgi_params;
        fastcgi_pass  unix:/run/php/php7.0-fpm.sock;
        fastcgi_index index.php;
        fastcgi_param  SCRIPT_FILENAME  $document_root$fastcgi_script_name;
    }

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

замените это 

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

на это

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

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

$ sudo service nginx restart

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

$ CREATE DATABASE zenlix

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

		DB host: localhost
		DB user: root
		DB name: zenlix
		DB user password: YOUR_PASSWORD

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

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

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

$ sudo apt-get install supervisor


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


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


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

$ echo_supervisord_conf > /etc/supervisord.conf
$ supervisord -c /etc/supervisord.conf
$ supervisorctl -c /etc/supervisord.conf reread
$ supervisorctl -c /etc/supervisord.conf update
$ supervisorctl -c /etc/supervisord.conf start laravel-worker:*



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

login: admin@local
password: p@ssw0rd