Перейти к содержанию

Поиск

Показаны результаты для тегов 'lamp'.

  • Поиск по тегам

    Введите теги через запятую.
  • Поиск по автору

Тип контента


Категории

  • Статьи
    • Компьютеры
    • Гаджеты
    • Медиа
  • RTFM
    • *nix
    • Windows

Блоги

  • Delirium

Категории

  • Files

Форумы

  • Статьи
    • Компьютеры
    • Гаджеты
    • Медиа
  • Постинг
    • *nix
    • Windows

Категории

  • Игры

Поиск результатов в...

Поиск контента, содержащего...


Дата создания

  • Начало

    Конец


Дата обновления

  • Начало

    Конец


Фильтр по количеству...

Регистрация

  • Начало

    Конец


Группа


About Me


Steam ID

Найдено 1 результат

  1. ArcheRAWG

    LAMP на Centos8 Stream

    У меня было несколько сайтов/проектов которые крутились где попало. Например сайт крутился на OpenServer, облако в виртуалке, pma вообще небыло, пользовался HeidySQL который поставлялся вместе с OpenServer. И в один прекрасный момент мне это всё надоело, и я решил объединить всё на одном сервере. Почему именно на Centos8? Да просто мне нравится эта система. Да, я вкурсе что 31.12.2021 - прекращается её поддержка, поэтому я выбрал Centos8 Stream. В этой статье я не буду касаться установки и настройки системы. Так не буду затрагивать безопасность, т.е. настройку selinux и собственно firewall. Безопасность это дело сугубо индивидуальное, и настраивать его нужно под свои возможности и потребности. Поэтому после запуска системы, сразу отключаем selinux и firewall setenforce 0 systemctl stop firewalld systemctl disable firewalld Установка и настройка Apache Начнём с установки Apache. dnf install httpd добавляем его в автозагрузку systemctl enable httpd и запускаем его systemctl start httpd Собственно установка на этом закончена. Уже сейчас если перейти в браузере на ip адрес вашего сервера, то можно увидеть тестовую страницу Apache. Конечно если у вас отключен firewall. Так же работу можно проверить следующей командой netstat -tulnp | grep httpd Вывод будет примерно следующий: tcp6 0 0 :::80 :::* LISTEN 1205/httpd Теперь можно приступать к непосредственной настройке Apache. У Centos есть фишка. Если не уделить внимания разметке жесткого диска, он сделает разметку примерно следующего вида: т.е. раздел /home - будет самым большим. Я несколько раз подъёбывался на этот счёт. Вы можете разметку сделать самостоятельно, т.к. вам нужно, или оставить как есть. В этой статье мы этого касаться не будем. Поэтому все файлы веб-сервера будут лежать в директории /home. Я использую примерно следующую структуру: /home/sites - тут лежат все сайты /home/sites/site1 - папка с сайтом /home/sites/site1/www - собственно файлы сайта /home/sites/site1/log - логи сайта Создаём все нужные директории одной командой и назначаем владельцем директорий apache mkdir -p /home/sites/site1.ru/{www,log} chown -R apache. /home/sites/ Дальше нам нужно посмотреть раскоменчена ли строчка в конце файла /etc/httpd/conf/httpd.conf IncludeOptional conf.d/*.conf Эта строчка нужна для того чтобы не городить все найстройки в одном месте, а для каждого сайта будет свой отдельный конфиг. Создадим конфиг для первого сайта: nano /etc/httpd/conf.d/site1.ru.conf следующего содержания <VirtualHost *:80> ServerName site1.ru ServerAlias www.site1.ru DocumentRoot /home/sites/site1.ru/www ErrorLog /home/sites/site1.ru/log/error.log CustomLog /home/sites/site1.ru/log/access.log common <Directory /home/sites/site1.ru/www> Options FollowSymLinks AllowOverride All Require all granted </Directory> </VirtualHost> Проверим конфигурацию apachectl -t Apache может ругнуться AH00558: httpd: Could not reliably determine the server's fully qualified domain name, using fe80::95:c6f3:e49f:7204. Set the 'ServerName' directive globally to suppress this message Это просто предупреждение, и его можно игнорировать. А можно отредактировать файл /etc/hostname и указать там имя своего сервера. В любом случае, если всё сделано правильно, Apache должен написать Syntax OK После этого можно перезапуститься Apache systemctl restart httpd или apachectl restart Если Apache не стартанул, то смотрил логи tail -f /var/log/httpd/error_log но в текущей конфигурации проблем быть не должно. Для полноценной проверки того что всё работает как надо, создадим файл index.html в директории нашего нового сайта /home/sites/site1.ru/www. Напомню, что по умолчанию директория для файлов сайта /var/www/html. Но мы ей пользоваться не будем. nano /home/sites/site1.ru/www/index.html Содержание файла <center><font color=red size=7>Hello World</font></center> Сделаем владельцем файла apache chown apache. /home/sites/site1.ru/www/index.html Теперь если перейти по адресу вашего сервера, вы увидите не тестовую страницу, а эту страничку которую мы только что создали, а именно: белый фон, и по центру большими красными буквами hello world. Это означает что сам веб сервер уже прекрасно работает, и можно двигаться дальше. Установка php с последующим обновлением Одна из причин почему Centos8 а не Centos7, хотя у последнего поддержка до 2024 года, это то что установка php упростилась, т.к. в репозиториях уже есть версия 7.2 и обновить её, не составит большого труда. Можно конечно сразу поставить 7.4, но я хочу всё таки рассказать про процесс обновления. Поэтому вначала устанавливаем php 7.2 и наверно всё что может понадобится для полноценной CMS или того же Nextcloud dnf install php php-cli php-mysqlnd php-json php-gd php-ldap php-odbc php-pdo php-opcache php-pear php-xml php-xmlrpc php-mbstring php-snmp php-soap php-zip после чего перезапускаем apache systemctl restart httpd и для проверки работоспособности создадим info файл. Он нам ещё может пригодиться. nano /home/sites/site1.ru/www/info.php со следующим содержимым <?php phpinfo(); ?> И выдадим права на файл chown apache. /home/sites/site1.ru/www/info.php Теперь заходим через браузер на наш сайт с указанием к какому файлу обратиться, а именно info.php и мы увидем тестовую страницу php с номером версии и со всеми параметрами и настройками. Посмотрели? А теперь обновим версию php до 7.4. Для этого подключим репозиторий dnf install https://rpms.remirepo.net/enterprise/remi-release-8.rpm отключим 7.2 dnf module reset php:7.2 подключим 7.4 dnf module enable php:remi-7.4 и запускаем обновление dnf update перезапустим на всякий случай apache systemctl restart apache и проверим ранее созданый файл info.php. Теперь он должен выглядеть примерно так: Так же для работы некоторых CMS рекомендую изменить некоторые значения файла /etc/php.ini max_execution_time 60 max_file_uploads 200 post_max_size 100 upload_max_filesize 100 думаю что за что отвечает и так понятно. Можно конечно оставить как есть, но тогда вы столкнётесь с проблемой загрузки файлов через сайт, т.к. ограничение 2мб. Установка mariadb Теперь установим БД. Я, как и многие наверно, предпочитаю форк mysql - mariadb. Вот его ставить и будем dnf install mariadb mariadb-server сразу после установки запускаем и добавляем в автозагрузку systemctl start mariadb systemctl enable mariadb и запускаем скрипт начальной конфигурации /usr/bin/mysql_secure_installation скрипт простой и интуитивно понятный, поэтому на нём останавливаться не буду. После того как с ним закончили, перезапускаем mariadb systemctl restart mariadb Установка ssl сертификата Lets Encrypt Процедура так же проста, и не требует особых навыков. Для начала установим пакет certbot dnf install epel-release dnf install certbot Сразу запустить certbot не получится, будет ругаться. Поэтому создадим самоподписанный сертификат openssl req -x509 -nodes -days 365 -newkey rsa:2048 -keyout /etc/pki/tls/private/localhost.key -out /etc/ssl/certs/localhost.crt и перезапустим apache apachectl restart и запустим certbot certbot certonly Сразу скажу, что для получения сертификата, сервер должен видеться из интернета и у вас должен быть рабочий домен прикрученный к серверу. т.е. сервре должен резолвиться извне. После запуска выбирайте способ аутентификации Apache Web Server plugin (apache) если он не доступен то тогда Place files in webroot directory (webroot) Во втором случае, нужно на всякий выдать права 777 на директорую с сайтом. После того как сертификат будет получен, можно вернуть всё обратно. Теперь отредактируем конфиг нашего сайта, чтобы он работал по https. Приведём его к такому виду <VirtualHost *:80> ServerName site1.ru ServerAlias www.site1.ru Redirect permanent / https://site1.ru </VirtualHost> <VirtualHost *:443> ServerName site1.ru ServerAlias www.site1.ru DocumentRoot /home/sites/site1.ru/www ErrorLog /home/sites/site1.ru/log/error.log CustomLog /home/sites/site1.ru/log/access.log common SSLEngine on SSLCertificateFile /etc/letsencrypt/live/site1.ru/fullchain.pem SSLCertificateKeyFile /etc/letsencrypt/live/site1.ru/privkey.pem <Directory /home/sites/site1.ru/www> Options FollowSymLinks AllowOverride All Require all granted </Directory> </VirtualHost> Проверяем конфиг на то что в нём нет ошибок apachectl -t и перезапускаем apache systemctl restart httpd Готово. Сертификат выдан на 3 месяца, и чтобы не забыть его обновить - процесс перевыпуска можно добавить в cron 30 4 * * * root /usr/bin/certbot renew --post-hook "/usr/sbin/apachectl restart" >> /var/log/le-renew.log каждый день в 4-30 будет запускаться попытка перевыпустить сертификат, и до тех пор пока он будет считаться новым (если не ошибаюсь 2 месяца) то ничего не будет происходить и в логах вы будет видеть примерно следующее с ообщение [root@web ~]# tail -f /var/log/le-renew.log Certificate not yet due for renewal - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - The following certificates are not due for renewal yet: /etc/letsencrypt/live/site1/fullchain.pem expires on 2022-01-11 (skipped) /etc/letsencrypt/live/site2/fullchain.pem expires on 2022-01-11 (skipped) /etc/letsencrypt/live/site3/fullchain.pem expires on 2022-01-11 (skipped) No renewals were attempted. No hooks were run. Вот на этом всё. Это полноценный сервер который позволит держать несколько сайтов, нужно только создать для них директории в /home/sites и конфиги в /etc/httpd/conf.d/. У меня на это веб-сервере крутиться собственно данный сайт, а так же облако, и pma. Для облака нужно было ещё пару модулей доставить и настроить cron, но это уже совсем отдельная статья. Открыть запись
×
×
  • Создать...