Установите контейнер LXC Centos 7 командой:
_x000D_lxc-create -t download -n test-centos -- --dist centos --release 7 --arch amd64Подключитесь к LXC контейнеру.
_x000D_lxc-attach --name test-centosУстановите репозиторий epel
_x000D_rpm --import https://www.centos.org/keys/RPM-GPG-KEY-CentOS-7_x000D_rpm --import https://archive.fedoraproject.org/pub/epel/RPM-GPG-KEY-EPEL-7_x000D_yum install epel-release -yУстановите репозиторий remi
_x000D_cd /tmp_x000D_rpm --import https://rpms.remirepo.net/RPM-GPG-KEY-remi_x000D_wget http://rpms.famillecollet.com/enterprise/remi-release-7.rpm_x000D_rpm -Uvh remi-release-7.rpm_x000D_rm -f remi-release-7.rpmОбновите контейнер и установите необходимый софт
_x000D_yum update -y_x000D_yum install wget deltarpm mc nano htop less man net-tools supervisor screen cronie crontabs logrotate zip unzip -yНастройка статического IP адреса контейнера
В конфиге на хост машине отредактируйте конфиг. Файл /var/lib/lxc/test-centos/config
_x000D_# Template used to create this container: /usr/share/lxc/templates/lxc-download_x000D_# Parameters passed to the template: --dist centos --release 7 --arch amd64_x000D_# Template script checksum (SHA-1): 273c51343604eb85f7e294c8da0a5eb769d648f3_x000D_# For additional config options, please look at lxc.container.conf(5)_x000D__x000D_# Uncomment the following line to support nesting containers:_x000D_#lxc.include = /usr/share/lxc/config/nesting.conf_x000D_# (Be aware this has security implications)_x000D__x000D__x000D_# Distribution configuration_x000D_lxc.include = /usr/share/lxc/config/common.conf_x000D_lxc.include = /usr/share/lxc/config/userns.conf_x000D_lxc.arch = x86_64_x000D__x000D__x000D_# Container specific configuration_x000D_lxc.idmap = u 0 100000 65536_x000D_lxc.idmap = g 0 100000 65536_x000D_lxc.rootfs.path = dir:/var/lib/lxc/test-centos/rootfs_x000D_lxc.uts.name = test-centos_x000D__x000D__x000D_# Network configuration_x000D_lxc.net.0.type = veth_x000D_lxc.net.0.link = lxcbr0_x000D_lxc.net.0.name = eth0_x000D_lxc.net.0.flags = up_x000D_lxc.net.0.hwaddr = 00:16:3e:7e:90:26_x000D_lxc.net.0.ipv4.address = 10.0.3.10/24_x000D_lxc.net.0.ipv4.gateway = 10.0.0.1_x000D__x000D_# Auto start_x000D_lxc.start.auto = 1_x000D_lxc.start.delay = 15В LXC контейнере выполните команду nano /etc/sysconfig/network-scripts/ifcfg-eth0
Файл должен содержать примерно следующее. Параметры HOSTNAME, IPADDR, NETMASK, GATEWAY, DNS укажите свои
_x000D_DEVICE=eth0_x000D_BOOTPROTO=static_x000D_ONBOOT=yes_x000D_HOSTNAME=test-centos_x000D_NM_CONTROLLED=no_x000D_TYPE=Ethernet_x000D_MTU=_x000D_IPADDR=10.0.3.10_x000D_NETMASK=255.255.255.0_x000D_GATEWAY=10.0.3.1_x000D_DNS1=1.1.1.1_x000D_DNS2=8.8.8.8либо для автоматической выдачи IP адреса:
_x000D_DEVICE=eth0_x000D_BOOTPROTO=dhcp_x000D_ONBOOT=yes_x000D_HOSTNAME=test-centos_x000D_NM_CONTROLLED=no_x000D_TYPE=Ethernet_x000D_MTU=_x000D_DNS1=1.1.1.1_x000D_DNS2=8.8.8.8Установка PHP 7.1
_x000D_yum install php71 php71-php-cli php71-php-common php71-php-fpm php71-php-gd php71-php-intl php71-php-json php71-php-mbstring php71-php-mcrypt php71-php-mysqlnd php71-php-pdo php71-php-pear php71-php-pecl-zip php71-php-process php71-php-soap php71-php-xml php71-runtime -y_x000D_ln -s /usr/bin/php71 /usr/bin/php_x000D_ln -s /usr/bin/php71-cgi /usr/bin/php-cgiУстановите Composer:
_x000D_cd /tmp_x000D__x000D_php -r "copy('https://getcomposer.org/installer', 'composer-setup.php');"_x000D_php -r "if (hash_file('sha384', 'composer-setup.php') === '48e3236262b34d30969dca3c37281b3b4bbe3221bda826ac6a9a62d6444cdb0dcd0615698a5cbe587c3f0fe57a54d8f5') { echo 'Installer verified'; } else { echo 'Installer corrupt'; unlink('composer-setup.php'); } echo PHP_EOL;"_x000D_php composer-setup.php_x000D_php -r "unlink('composer-setup.php');"_x000D__x000D_mv composer.phar /usr/bin/composerУстановка NGINX
Выполните команду
_x000D_yum install nginx -y_x000D_systemctl enable nginx_x000D_systemctl start nginxНастройка NGINX
Создайте файл
nano /etc/nginx/conf.d/app.conf
Со следующим содержимым:
_x000D_server {_x000D_ listen 80 default_server;_x000D_ server_name_in_redirect off;_x000D_ root /var/www/html;_x000D_ _x000D_ index index.php index.html;_x000D_ autoindex off;_x000D_ _x000D_ location /.well-known {_x000D_ root /var/www/html;_x000D_ allow all;_x000D_ break;_x000D_ }_x000D__x000D_ location ~ /.svn.* { deny all; }_x000D_ location ~ /.hg.* { deny all; }_x000D_ location ~ /.ht.* { deny all; }_x000D_ location ~ /.git.* { deny all; }_x000D_ location ~ /.composer.* { deny all; }_x000D_ location ~ .sql$ { deny all; }_x000D_ _x000D_ _x000D_ location ~ .php$ {_x000D_ fastcgi_pass 127.0.0.1:9071;_x000D_ fastcgi_index index.php;_x000D_ fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;_x000D_ include fastcgi_params;_x000D_ break;_x000D_ }_x000D_ location ~* ^.+.(css|js|jpg|jpeg|png|bmp|ico|svg)$ {_x000D_ expires max;_x000D_ }_x000D_ _x000D_}Настройка PHP-FPM
Создайте файл
nano /etc/init.d/php71-fpm
Со следующим содержимым:
_x000D_#!/bin/bash_x000D_#_x000D_### BEGIN INIT INFO_x000D_# Provides: php71-fpm_x000D_# Required-Start: $local_fs $network $syslog $remote_fs_x000D_# Required-Stop: $local_fs $network $syslog $remote_fs_x000D_# Default-Start: 2 3 4 5_x000D_# Default-Stop: 0 1 6_x000D_# Short-Description: Start up the php-fpm server daemon_x000D_# Description: PHP-FPM 7.1_x000D_### END INIT INFO_x000D__x000D_#groupadd -g 502 -r www_x000D_#useradd -g 502 -u 502 -r -s /sbin/nologin -M www_x000D__x000D_RETVAL=0_x000D_BASEPATH="/opt/remi/php71/root"_x000D__x000D_start_cmd(){_x000D_ ${BASEPATH}/usr/sbin/php-fpm -D_x000D_ echo "Started"_x000D_}_x000D__x000D_stop_cmd(){_x000D_ pidfile="/var/opt/remi/php71/run/php-fpm/php-fpm.pid"_x000D_ sleep 1_x000D_ if [ -f $pidfile ]; then_x000D_ cat $pidfile | xargs kill_x000D_ rm $pidfile > /dev/null 2>&1_x000D_ echo "Stoped. "_x000D_ else_x000D_ echo "Fail stop. "_x000D_ fi_x000D_ return 1_x000D_ #killall php-fpm_x000D_}_x000D__x000D_case "$1" in_x000D_ start)_x000D_ start_cmd_x000D_ ;;_x000D_ stop)_x000D_ stop_cmd_x000D_ ;;_x000D_ restart)_x000D_ stop_cmd_x000D_ sleep 2_x000D_ start_cmd_x000D_ ;;_x000D_ *)_x000D_ echo "Usage: service php71-fpm {start|stop|restart}"_x000D_ RETVAL=1_x000D_esac_x000D__x000D_exit $RETVAL_x000D_Установите права на выполнение для этого файла
chmod +x /etc/init.d/php71-fpm
Создайте пользователей www
_x000D_groupadd -r --gid 1000 www_x000D_useradd -r -m --uid 1000 -g www wwwОтредактируйте файл /etc/opt/remi/php71/php-fpm.d/www.conf
Поменяйте строчки:
_x000D_user = www_x000D_group = www_x000D_listen = 127.0.0.1:9071Установка NodeJS
Установите репозиторий NodeJS
_x000D_curl -sL https://rpm.nodesource.com/setup_10.x | bash -_x000D_Выполните команды:
_x000D_yum install gcc-c++ make nodejs_x000D_Установите глобально пакеты NodeJS
_x000D_npm install --global gulp_x000D_npm install --global bower