Разделы
Теги | RSS © 2008 – 2017
Контакты
email: igor@veselov.sumy.ua
skype: utz0r2
» » » Страница 9

8 - Готовим CentOS 7. Установка и настройка стабильной версии MongoDB



Создадим файл
nano -w /etc/yum.repos.d/mongodb-org-3.2.repo

Запишем в него
[mongodb-org-3.2]
name=MongoDB Repository
baseurl=https://repo.mongodb.org/yum/redhat/$releasever/mongodb-org/3.2/x86_64/
gpgcheck=0
enabled=1

Установим
yum -y install mongodb-org
semanage port -a -t mongod_port_t -p tcp 27017

Запустим
systemctl start mongod

Проверим
mongo
> db.version()
> exit

Предупреждение 1
WARNING: Readahead for /var/lib/mongo is set to 4096KB
Предупреждение 2
WARNING: /sys/kernel/mm/transparent_hugepage/enabled is 'always'
Предупреждение 3
WARNING: /sys/kernel/mm/transparent_hugepage/defrag is 'always'.
Предупреждение 4
WARNING: soft rlimits too low. rlimits set to 4096 processes, 64000 files.

Сейчас это будем исправлять
nano -w /etc/init.d/mongod

Перед Starting mongod вставляем
if test -f /sys/kernel/mm/transparent_hugepage/enabled; then
   echo never > /sys/kernel/mm/transparent_hugepage/enabled
fi
if test -f /sys/kernel/mm/transparent_hugepage/defrag; then
   echo never > /sys/kernel/mm/transparent_hugepage/defrag
fi

Перезапускаем
systemctl restart mongod
systemctl daemon-reload

df -h
blockdev --report
blockdev --setra 256 /dev/mapper/centos-root

Добавляем в автозагрузку
nano -w /etc/rc.local

blockdev --setra 256 /dev/mapper/centos-root

Перезагружаем
systemctl restart mongod

Почитать про предпочтительные лимиты для монго можно здесь https://docs.mongodb.org/manual/reference/ulimit/
ls /etc/security/limits.d/

nano -w /etc/security/limits.d/20-nproc.conf 

проставляем как просит монго 64000

Перезапустим
systemctl restart mongod

Проверим
systemctl status mongod

Добавим в автозагрузку
systemctl enable mongod
mongo
exit

настройки /etc/mongod.conf

доставим поддержку mongo в нашем php
yum install php70-php-pecl-mongodb -y

перезепустим php
systemctl restart php70-php-fpm

Проверяем что расширение установлено и доступно
php70 -m | grep -i mongodb

В ответ получить должны
mongodb

Создаем файл
nano -w /var/www/test.dev/mongo.php

и пишем в него
<?php $m = new MongoDB\Driver\Manager("mongodb://localhost:27017");

Выполняем, если ошибки нет, то все хорошо.

7 - Готовим CentOS 7. Настройка nginx + php-fpm ключевые моменты



Проверяем что nginx и php работают
systemctl status nginx
systemctl status php70-php-fpm

Основной файл конфигурации nginx
/etc/nginx/nginx.conf

Создаем файл конфигурации для нашего проекта test.dev
nano -w /etc/nginx/conf.d/test.dev.conf
server {
    listen       80;
    server_name  test.dev;
	root   /var/www/test.dev;
    location / {
        index  index.html index.php;
    }
}

Перезапускаем
systemctl restart nginx

3 раза ( после каждого прохода этих команд пробуем зайти на http://test.dev/ ) пока selinux нас не пустит
grep nginx /var/log/audit/audit.log | audit2allow -m nginx > nginx.te 
grep nginx /var/log/audit/audit.log | audit2allow -M nginx 
semodule -i nginx.pp

Пробуем открыть http://test.dev/index.html

если работает html по новому адресу то дописываем секцию обработки php
nano -w /etc/nginx/conf.d/test.dev.conf

location ~ \.php$ {
	try_files $uri =404;
	fastcgi_pass 127.0.0.1:9000;
	fastcgi_param SCRIPT_FILENAME $request_filename;
	fastcgi_index index.php;
	fastcgi_read_timeout 30;
	fastcgi_buffers 16 16k;
	fastcgi_buffer_size 32k;
	include	fastcgi_params;
}

Перезапускаем
systemctl restart nginx

Посмотреть selunux что связано с http и при надобности включить что необходимо
sestatus -b | grep -i httpd

Найдем где храняться наши настройки для php7
php70 -i | grep "Loaded Configuration File"
/etc/opt/remi/php70/php.ini

6 - Готовим CentOS 7. Установка PHP7



Устанавливаем epel-release
yum install epel-release -y && cd /tmp	

Качаем репозиторий
wget http://rpms.remirepo.net/enterprise/remi-release-7.rpm

Добавляем репозиторий
rpm -Uvh remi-release-7*.rpm

Устанавливаем основные компоненты
yum --enablerepo=remi-php70 install php70-php php70-php-common php70-php-fpm php70-php-cli php70-php-opcache php70-php-pecl-apcu php70-php-process php70-php-xml php70-php-gd php70-php-mbstring -y

Проверяем
php70 -v

Стартуем php-fpm
systemctl start php70-php-fpm

Проверяем
systemctl status php70-php-fpm

Проверяем
php70 -a
echo 1+1;
> 2
exit

Отлично php 7 установлен!
Выставляем в автозагрузку php
systemctl enable php70-php-fpm

5 - Готовим CentOS 7. Установка стабильной версии nginx



Создадим файл
nano -w /etc/yum.repos.d/nginx.repo

И с таким содержимым
[nginx]
name=nginx repo
baseurl=http://nginx.org/packages/centos/7/$basearch/
gpgcheck=0
enabled=1

Установим
yum install nginx -y

Проверяем
nginx -v

Запускаем
systemctl start nginx
systemctl status nginx
nmap localhost

Можно обратиться на сайт с виндос http://test.dev и увидим Welcome to nginx!
Выставляем в автозагрузку nginx
systemctl enable nginx


Дополнительная иформация
Стандартные порты и пути к файлам Nginx
/etc/nginx/ - директория содержащая файлы настроек Nginx сервера;
/etc/nginx/conf.d/ - директория содержащая файлы настроек SSL и виртуальных хостов (vhost);
/etc/nginx/nginx.conf - основной файл настроек;
/var/log/nginx/error.log - логи ошибок;
/var/log/nginx/access.log - логи доступа;
/usr/share/nginx/html/ - корневая директория сайта по умолчанию (document root);
TCP 80 - HTTP порт по умолчанию для Nginx;
TCP 443 - HTTPS порт по умолчанию для Nginx.

4 - Готовим CentOS 7. Настраиваем общие папки между CentOS 7 в virtualbox и windows



В нашей системе(виндовс) создаем общую папку test.dev в нее ложим файлик 1.php с содержимым устройства -> подключить образ диска Дополнительной гостевой ос
- устанавливаем дополнительные пакеты
yum install gcc make kernel-devel-$(uname -r) bzip2 -y

- монтируем привод
mount /dev/cdrom /mnt

- и запускаем VboxLinuxAdditions.run
cd /mnt && sudo sh ./VBoxLinuxAdditions.run

Если у вас вылезла ошибка, как у меня
Building the OpenGL support module[FAILED]
То выполняем команду
export MAKE='/usr/bin/gmake -i'

И запустим опять
./VBoxLinuxAdditions.run

Проверяем наличие vboxsf
modprobe vboxsf

Ошибки не выскочило значит все пока что хорошо.
Создаем папку в системе CentOS которая будет у нас общей с виндовс
mkdir -p /var/www/test.dev

Монтируем общую папку
mount -t vboxsf test.dev /var/www/test.dev

Проверяем что в нашей папке test.dev теперь лежить наш созданный в виндовсе файл 1.php
ls /var/www/test.dev/

Если видим файлы нашего проекта, то все хорошо и можно добавить это монтирование в загрузку
nano -w /etc/rc.local 

Дописываем:
modprobe vboxsf
mount -t vboxsf test.dev /var/www/test.dev

Выполняем
chmod +x /etc/rc.d/rc.local

Теперь общая папка у нас есть и будет подключаться автоматом при загрузке системы.

3 - Готовим CentOS 7. Настройка ssh



Открываем конфиг
nano /etc/ssh/sshd_config

Используем не стандартный порт
Port 2222

Запрещаем использовать протокол 1
Protocol 2

Запрещаем логинится от рута, обычно брутят рута по стандартому порту, поэтому мы это изменим
PermitRootLogin no

Разрешаем логинится из ssh только определенному юзеру мне utz0r2
AllowUsers utz0r2


Запускаем semanage
yum -y install policycoreutils-python
semanage port -a -t ssh_port_t -p tcp 2222

Перезапускаем sshd
service sshd restart

Проверяем
service sshd status
nmap 127.0.0.1	

или так
netstat -tulpn

В дальнейшем будем пользоваться только ssh через программу putty
Пробрасываем порты в нашей виртуальной машине 22 -> 2222, 80 -> 80
Прописуем в нашей windows машине в \WINDOWS\system32\drivers\etc\hosts
192.168.56.1 test.dev

Предаварительно узнав внешний айпи нашей виртуальной машины (Панель управления\Сеть и Интернет\Сетевые подключения)
Все готово для дальнейшей работы c сервером через ssh.
«»
Вверх