Инсталляция Bitrix Web Environment в облаке МегаФон

    Мало кто знает, что Мегафон с недавнего времени вышел на рынок хостинга и предлагает такую услугу, как виртуальный сервер. На днях занимался развертыванием среды окружения Битрикс в их облаке, и обнаружил несколько интересных моментов. Кому интересно, дальше читаем под катом.

    image

    Итак, создаем виртуальный сервер и выбираем необходимые нам параметры. Далее ждем 20-30 минут, пока система оркестрации создаст виртуальную машину по указанным параметрам.

    Подключение к серверу и смена пароля


    После того, как машина создана, подключаемся к нашему серверу по SSH. В первую очередь необходимо сменить пароль пользователя root, так как он по умолчанию одинаковый для всех виртуальных машин – Qwerty123456. Автор этого пароля явно в тренде последних событий:

    # passwd root


    Увеличение размера диска в виртуальной машине


    Дальше начинается самое интересное. Если выполнить команду df, то можно увидеть, что из заказанных 20 Gb, реально доступно только около 3,5 Gb. И в чем же подвох, спросите вы?

    # df -h
    Filesystem            Size  Used Avail Use% Mounted on 
    /dev/mapper/VolGroup-lv_root
                          2.6G  1.7G  767M  70% /
    tmpfs                 495M     0  495M   0% /dev/shm
    /dev/sda1             485M   37M  423M   8% /boot


    А дело в том, что все остальное пространство выдается нам неразмеченным. Соответственно, нам необходимо ручками расширить раздел на все оставшееся доступное пространство. Для начала, с помощью команды fdisk с параметром L определяем устройство, на котором находится выделенное дисковое пространство. В нашем случае это диск /dev/sda (для 32 битной системы это будет /dev/hda).

    #fdisk –l
    Disk /dev/sda: 21.5 GB, 21474836480 bytes
    …
       Device Boot      Start         End      Blocks   Id  System
    /dev/sda1   *           1          64      512000   83  Linux
    Partition 1 does not end on cylinder boundary.
    /dev/sda2              64         914     6827008   8e  Linux LVM
    Partition 2 does not end on cylinder boundary.
    …


    Создаем новый раздел с файловой системой LVM (8e) (подробнее про LVM тут), который займет имеющееся нераспределенное дисковое пространство устройства /dev/sda. По результатам выполнения предыдущей команды мы увидели, что на диске уже есть два раздела, поэтому создаваемый раздел будет третьим по счету.

    # fdisk /dev/sda
    Command (m for help): n
    Command action
       e   extended
       p   primary partition (1-4)
    p
    Partition number (1-4): 3
    First cylinder (914-2610, default 914):
    Using default value 914
    Last cylinder, +cylinders or +size{K,M,G} (914-2610, default 2610):
    Using default value 2610


    Меняем тип файловой системы на LVM

    Command (m for help): t
    Partition number (1-4): 3
    Hex code (type L to list codes): 8e
    Changed system type of partition 3 to 8e (Linux LVM)


    Записываем таблицу разделов на диск:

    Command (m for help): w
    The partition table has been altered!
    
    Calling ioctl() to re-read partition table.
    
    WARNING: Re-reading the partition table failed with error 16: Device or resource busy.
    The kernel still uses the old table. The new table will be used at
    the next reboot or after you run partprobe(8) or kpartx(8)
    Syncing disks.


    Перезагружаем сервер

    #reboot


    Далее запускаем утилиту lvm и преобразуем раздел /dev/sda3 в физический том, чтобы LVM мог использовать его:

    # lvm
    lvm> pvcreate /dev/sda3
      Physical volume "/dev/sda3" successfully created


    Смотрим, какие существуют группы томов и логические разделы

    # lvs
      LV      VG       Attr      LSize Pool Origin Data%  Move Log Cpy%Sync Convert
      lv_root VolGroup -wi-ao--- 2.60g
      lv_swap VolGroup -wi-ao--- 3.91g


    Добавляем новый физический том в группу томов:

    lvm> vgextend VolGroup /dev/sda3
      Volume group "VolGroup" successfully extended


    Увеличиваем размер логического тома lv_root на все доступное свободное дисковое пространство в группе:

    lvm> lvextend -l +100%FREE /dev/VolGroup/lv_root
      Extending logical volume lv_root to 15.59 GiB
      Logical volume lv_root successfully resized


    Теперь логическому тому выделено все доступное дисковое пространство, но, если выполнить команду df, то мы увидим, что операционная система все еще не может его использовать. Нам нужно изменить еще размер смонтированной корневой файловой системы:

    # resize2fs -p /dev/mapper/VolGroup-lv_root
    resize2fs 1.41.12 (17-May-2010)
    Filesystem at /dev/mapper/VolGroup-lv_root is mounted on /; on-line resizing required
    old desc_blocks = 1, new_desc_blocks = 1
    Performing an on-line resize of /dev/mapper/VolGroup-lv_root to 4087808 (4k) blocks.
    The filesystem on /dev/mapper/VolGroup-lv_root is now 4087808 blocks long.


    Проверяем размер дискового пространства файловой системы, теперь все, как надо:

    # df -h
    Filesystem                     Size  Used Avail Use% Mounted on
    /dev/mapper/VolGroup-lv_root   16G  1.7G   13G  12% /
    tmpfs                         495M     0  495M   0% /dev/shm
    /dev/sda1                     485M   37M  423M   8% /boot


    Установка окружения Bitrix


    Установить apache, nginx, mysql, php и сконфигурировать их в соответствии с рекомендациями Битрикс можно за считанные минуты с помощью скрипта из официального репозитория. При инсталляции выбираем 4 поколение среды окружения Bitrix

    # cd /
    # wget http://repos.1c-bitrix.ru/yum/bitrix-env.sh
    # chmod +x bitrix-env.sh
    # ./bitrix-env.sh


    После установки среды окружения заходим в меню, устанавливаем пароль пользователя bitrix, при необходимости добавляем домены.

    # cd /root
    # sh menu.sh


    Теперь машина готова, можно открывать порты.

    iptables -I INPUT -p tcp --dport 25 -j ACCEPT
    iptables -I INPUT -p tcp --dport 80 -j ACCEPT
    iptables -I INPUT -p tcp --dport 443 -j ACCEPT
    iptables -I INPUT -p tcp --dport 5222 -j ACCEPT
    iptables -I INPUT -p tcp --dport 5223 -j ACCEPT
    iptables -I INPUT -p tcp --dport 8890 -j ACCEPT
    iptables -I INPUT -p tcp --dport 8891 -j ACCEPT
    iptables -I INPUT -p tcp --dport 8893 -j ACCEPT
    iptables -I INPUT -p tcp --dport 8894 -j ACCEPT
    service iptables save
    /etc/init.d/iptables restart


    25 — smtp сервер, 80 — http, 443 — https, 5222 — bitrix xmpp сервер, 5223 — bitrix xmpp сервер по ssl, 8890 — ntlm авторизация, 8891 — ntlm авторизация по ssl, 8893 — http сервер мгновенных сообщений, 8894 — https сервер мгновенных сообщений

    На этом настройка сервера завершена, приятной вам работы.
    Innopolis University
    Российский ИТ-вуз
    Ads
    AdBlock has stolen the banner, but banners are not teeth — they will be back

    More

    Comments 18

      0
        +1
        Оно самое!)
          +1
          Надпись мелким шрифтом под тарифом Тестовый: "* Цена за первые 3 дня". Сфера услуг меняется, а привычки меркетинговые уловки остаются те же.
            0
            Это да) Но все-таки надо признать, что они не ограничились одной этой записью, а чуть ниже довольно подробно объяснили что да как.
        +5
        Полчаса на создание голой виртуалки? Они там почтой россии заявки передают?)
          0
          Да, в целом процесс идет не быстро. Но, думаю, надо учесть, что они недавно вышли на этот рынок и еще есть моменты, которые надо оптимизировать.
          0
          Тут наверное какая-то ошибка?
          image
            0
            А что именно смутило: пропускная способность или объем трафика?)
              0
              Да, пропускная способность маленькая :)

              А зачем на хостинге нужна такая услуга, как — аренда USB порта?
                0
                Например, для HASP-ключа
                  0
                  Тогда вопрос — зачем нужен HASP ключ? :) Даже ретроградский 1C тысячу лет умеет электронные ключики.
                    0
                    Кому-то видимо еще нужен) Нам он тоже не понадобился)
            +1
            Автор, а вы специально выставили настройки виртуальной машины точно такие же, как выдаются за $5 на DigitalOcean?
              +1
              Нет, настройки были выставлены исходя из наших потребностей)
              +1
              Просто оставлю это здесь:
                +1
                Если Вы о том, что есть же готовый шаблон с Битриксом и почему бы его не использовать, то отвечу, что не все так радостно, как может показаться на первый взгляд) Centos5-bitrix — это не Bitrix Web Environment, настроенный с любовью разработчиками CMS, а голый LAMP в дополнение к которому поставили nginx по рекомендациям. Так что на практике использование этого шаблона затруднительно, проще собственноручно все поднять с нуля.
                bash-history root-пользователя этого шаблона
                shutdown -hy 0
                ifconfig
                shutdown -hy 0
                hostname
                ifconfig
                cat /etc/sysconfig/network-scripts/ifcfg-seth0
                dhcclient seth0
                dhclient seth0
                ifconfig
                cat /etc/sysconfig/network
                cat /etc/sysconfig/network-scripts/ifcfg-seth0
                whereis dhcp
                man dhclient
                cat /etc/dhclient-eth0.conf
                cat /etc/dhclient-eth0.conf
                mc
                shutdown -hy 0
                [C
                touch nginx.pid
                cd /nginx-1.0.4
                ls
                ./configure --sbin-path=/usr/local/nginx/nginx --conf-path=/usr/local/nginx/nginx.conf --pid-path=/usr/local/nginx/nginx.pid --with-pcre=../pcre-6.6 --wit
                make
                make install
                make clean
                ./configure --sbin-path=/usr/local/nginx/nginx --conf-path=/usr/local/nginx/nginx.conf --pid-path=/usr/local/nginx/nginx.pid --with-http_ssl_module --with-pcre=/usr/lib/pcre-6.6 --with-zlib=/usr/lib/zlib-1.2.3
                make
                make clean
                ./configure --sbin-path=/usr/local/nginx/nginx --conf-path=/usr/local/nginx/nginx.conf --pid-path=/usr/local/nginx/nginx.pid --with-http_ssl_module --with-pcre=/root/pcre-6.6 --with-zlib=/root/zlib-1.2.3
                make
                make clean
                ./configure --sbin-path=/usr/local/nginx/nginx --conf-path=/usr/local/nginx/nginx.conf --pid-path=/usr/local/nginx/nginx.pid --with-http_ssl_module
                make
                make install
                cd /
                ifconfig
                ll /var/www/html/
                chown -R apache:apache /var/www/html
                ll /var/www/html/
                touch /etc/init.d/nginx
                mc
                #! /bin/sh
                ### BEGIN INIT INFO
                # Provides: nginx
                # Required-Start: $all
                # Required-Stop: $all
                # Default-Start: 2 3 4 5
                # Default-Stop: 0 1 6
                # Short-Description: starts the nginx web server
                # Description: starts nginx using start-stop-daemon
                ### END INIT INFO
                PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin
                DAEMON=/usr/local/nginx/sbin/nginx
                NAME=nginx
                DESC=nginx
                test -x $DAEMON || exit 0
                update-rc.d nginx defaults
                mc
                df -h
                vi /etc/init.d/nginx
                /etc/init.d/nginx stop
                vi /etc/init.d/nginx
                /etc/init.d/nginx stop
                /etc/init.d/nginx start
                ps -ef |grep nginx
                /etc/init.d/nginx stop
                ps -ef |grep nginx
                #!/bin/sh
                #
                # Init file for nginx server daemon
                #
                # chkconfig: — 99 00
                # description: nginx server daemon
                #

                bin='/usr/nginx/sbin/nginx'
                pid_file='/usr/nginx/logs/nginx.pid'

                case "$1" in start) echo -n «Starting nginx: »; $bin && echo OK || echo FAILED; ;; stop) echo -n «Stopping nginx: »; kill `cat $pid_file` && echo OK || echo FAILED; ;; configtest) $bin -t; ;; reload) echo -n «Reloading nginx: »; kill -HUP `cat $pid_file` && echo OK || echo FAILED; ;; restart) $0 stop; sleep 1; $0 start; ;; *) echo «Usage: $0 {start|stop|restart|reload|configtest}»; exit 1; ;;
                service nginx configtest
                service nginx configtest
                service nginx on
                chkconfig nginx on
                nginx -v
                service nginx restart
                ps -ef |grep nginx
                cat /etc/passwd
                cat /etc/group
                chown -R root:root /var/www/
                chown -R apache:apache /var/www/
                ll /var/www/html/
                service nginx stop
                service nginx start
                vi /usr/local/nginx/html/test.php
                yum install spawn-fcgi
                <?php
                phpinfo();
                ?>
                rpm -ihv centos.alt.ru/repository/centos/5/x86_64/centalt-release-5-3.noarch.rpm
                yum install spawn-fcgi
                vi /etc/init.d/php_cgi
                #!/bin/sh
                . /etc/rc.d/init.d/functions
                . /etc/sysconfig/network
                [ "$NETWORKING" = «no» ] && exit 0
                spawnfcgi="/usr/bin/spawn-fcgi"
                php_cgi="/usr/bin/php-cgi"
                prog=$(basename $php_cgi)
                server_ip=127.0.0.1
                server_port=9000
                server_user=nginx
                server_group=nginx
                server_childs=5
                pidfile="/var/run/php_cgi.pid"
                [ -f /etc/sysconfig/phpfastcgi ] &&. /etc/sysconfig/phpfastcgi
                start() { [ -x $php_cgi ] || exit 1; [ -x $spawnfcgi ] || exit 2; echo -n $«Starting $prog: »; daemon $spawnfcgi -a ${server_ip} -p ${server_port} -u ${server_user} -g ${server_group} -P ${pidfile} -C ${server_childs} -f ${php_cgi}; retval=$?; echo; return $retval; }
                stop() { echo -n $«Stopping $prog: »; killproc -p ${pidfile} $prog -QUIT; retval=$?; echo; [ -f ${pidfile} ] && /bin/rm -f ${pidfile}; return $retval; }
                restart(){ stop; sleep 2; start; }
                rh_status(){ status -p ${pidfile} $prog; }
                case "$1" in start) start;; stop) stop;; restart) restart;; status) rh_status;; *) echo $«Usage: $0 {start|stop|restart|status}»; exit 3
                chmod a+x /etc/init.d/php_cgi
                service php_cgi start
                chkconfig php_cgi on
                ll ./
                [A
                ps -ef |grep nginx
                mc
                /usr/local/nginx/nginx
                rpm -qa |grep pcre
                whereis pcre
                mc
                df -h
                mc
                whereis php.ini
                cat /etc/php.ini
                mc
                mount -t cifs -o username=Administrator%Esrxxa12 //85.26.201.131/testsmb /mnt/net1
                mc
                tar -zxvf /tmp/bitrix_distrib/portal_encode_php5.tar.gz -C /usr/local/nginx/html/
                mc
                /usr/local/nginx/nginx
                ps -ef |grep ngnix
                ps -ef |grep nginx
                kill -s QUIT 3317
                ps -ef |grep nginx
                mc
                rpm -qa |grep nginx
                mc
                prm -qa
                rpm -qa
                mc
                whereis nginx
                whereis service
                mc
                whereis httpd
                mc
                ps -ef |grep nginx
                /usr/local/nginx/nginx
                yum install pcre
                /usr/local/nginx/nginx
                yum install pcre-devel
                /usr/local/nginx/nginx
                yum install zlib-devel
                ps -ef |grep nginx
                mc
                tar -xcf /tmp/bitrix_distrib/nginx-1.0.4.tar.gz
                tar -xvf /tmp/bitrix_distrib/nginx-1.0.4.tar.gz
                tar -xvf /tmp/bitrix_distrib/nginx-1.0.4.tar.gz
                tar -cxf /tmp/bitrix_distrib/nginx-1.0.4.tar.gz
                tar -h

                tar -zxvf /tmp/bitrix_distrib/nginx-1.0.4.tar.gz
                mc
                cd /nginx-1.0.4/
                ls
                rpm -qa |grep zlib
                rpm -qa |grep pcre
                ls
                make
                whereis pcre
                mc
                mc
                rpm -qa |grep ssl
                yum install openssl-devel
                whereis pcre-6.6
                whereis pcre-6
                whereis pcre
                mc
                ls
                ls |grep pcre
                mc
                mc
                /usr/local/nginx/nginx
                ps -ef |grep nginx
                kill -s QUIT 13429
                ps -ef |grep nginx
                mc
                mc
                /usr/local/nginx/nginx -c /usr/local/nginx/nginx.conf
                ps -ef |grep nginx
                mc
                kill -s QUIT 13822
                ps -ef |grep nginx
                mc
                /usr/local/nginx/nginx -c /usr/local/nginx/nginx.conf
                ps -ef |grep nginx
                mc
                ps -ef |grep nginx
                kill -s QUIT 13951
                ps -ef |grep nginx
                df -h
                mc
                mc
                /usr/local/nginx/nginx -c /usr/local/nginx/nginx.conf
                df -h
                df -h
                ps -ef |grep nginx
                kill -s QUIT 14167
                mc
                df -h
                mc
                /usr/local/nginx/nginx -c /usr/local/nginx/nginx.conf
                /usr/local/nginx/nginx -V
                df -h
                umount /mnt/net1
                df -h
                mc
                whereis php-fpm
                ll /var/www/html/
                ll /var/www/
                ps -ef |grep nginx
                mc
                chmod 775 /etc/init.d/nginx
                /etc/init.d/nginx start
                mc
                /etc/init.d/nginx stop
                mc
                /etc/init.d/nginx reload
                mc
                chmod 755 /etc/init.d/nginx
                /etc/init.d/nginx reload
                mc
                mc
                service nginx stop
                service nginx start
                mc
                service nginx restart
                mc
                service nginx restart
                mc
                service nginx restart
                ll /usr/local/nginx/
                ll /usr/local/nginx/html/
                chown -R root:root /var/www/
                mc
                service nginx restart
                touch /usr/local/nginx/html/test.php
                mc
                service nginx restart
                rpm -qa |grep cgi
                rpm -qa |grep fcgi
                rpm -qa |grep php
                yum install spawn-fcgi
                yum install fcgi
                yum install php-fpm
                rpm -qa |grep php
                whereis php-cgi
                ps -ef |grep php
                chkconfig --level nginx
                chkconfig --list nginx
                rpm -qa |grep php
                rpm -qa |grep spawn
                rpm -qa |grep cgi
                mc
                service php_cgi start
                cat /etc/group
                groupadd nginx
                useradd -g nginx nginx
                cat /etc/passwd
                cat /etc/group
                mc
                service php_cgi start
                mc
                service php_cgi start
                service php_cgi stop
                chkconfig -level 35 php_cgi on
                chkconfig --level 35 php_cgi on
                cat /etc/init.d/nginx
                mc
                chkconfig --level 35 php_cgi on
                mc
                service php_cgi stop
                service php_cgi start
                netstat -tlnp |grep :9000
                mc
                service nginx restart
                mc
                service nginx restart
                ps -ef |grep php
                ps -ef |grep nginx
                mc
                service nginx restart
                mc
                service nginx restart
                mc
                mc
                /etc/init.d/php_cgi stop
                /etc/init.d/php_cgi start
                service nginx restart
                ll /var/www/html
                mc
                service nginx restart
                mc
                service nginx restart
                chkconfig --list php_cgi
                mc
                chkconfig --level 234 php_cgi on
                mc
                chkconfig --level 234 php_cgi on
                chkconfig --level 35 php_cgi on
                mc
                chkconfig --level 35 php_cgi on
                chkconfig php_cgi on
                mc
                chkconfig -add php_cgi
                chkconfig --add php_cgi
                mc
                chkconfig --level 35 php_cgi on
                chkconfig --list php_cgi on
                chkconfig --list php_cgi
                chkconfig --level 234 php_cgi on
                chkconfig --list php_cgi
                chown -R nginx:nginx /var/www/html
                ll /var/www/html/
                cat /etc/passwd
                service nginx restart
                chown -R root:root /var/www/html
                ll /var/www/
                ll /var/www/html
                chown -R root:root /var/www
                chown -R nginx:nginx /var/www
                ll /var/www/html
                chown -R apache:apache /var/www
                ll /var/www/html
                service nginx restart
                shutdown -ry 0
                df -h
                mc
                service nginx restart
                df -h
                mc
                service nginx restart
                mc
                df -h
                  0
                  Нет, я про CentOS 64. Данная версия ОС мне не известна, CentOS существует 4, 5, 6, 7, но 64 не существует. это неверное и ошибочное название дистрибутива. Понять, что это CentOS 5 64 бита или CentOS 6 64 бита — без навыка телепатии нереально :)
                    +1
                    Да, без телепатии никак. На практике это CentOS release 6.4 (Final), 64 bit.

                    [root@a6270000775-6 ~]# cat /etc/redhat-release
                    CentOS release 6.4 (Final)
                    
                    [root@a6270000775-6 ~]# arch
                    x86_64
                    

              Only users with full accounts can post comments. Log in, please.