Настройка lamp centos 7

Обновлено: 06.07.2024

LAMP stack – это группа программ с открытым исходным кодом, которая используется для обслуживания динамических страниц и веб-приложений. Данная аббревиатура расшифровывается как Linux (операционная система), Apache (веб-сервер), MySQL (система управления базами данных) и PHP (язык сценариев для быстрого построения динамических страниц).

Данное руководство покажет, как установить LAMP stack на виртульный выделенный сервер CentOS 7. Обратите внимание: поскольку сервер запущен на CentOS, первый компонент группы (операционная система Linux) уже установлен.

Требования

Прежде чем следовать руководству, создайте отдельную учетную запись пользователя с повышенными привилегиями (не root). Читайте руководство «Начальная настройка сервера CentOS 7», чтобы получить дополнительные инструкции.

1: Установка Apache

На сегодняшний день Apache является самым популярным веб-сервером в мире, а следовательно – и надежным вариантом для обслуживания веб-сайта.

Apache можно без труда установить с помощью yum, менеджера пакетов CentOS. Менеджер пакетов позволяет установить стабильную версию программы из репозитория CentOS. Чтобы получить более подробную информацию о yum, читайте данное руководство.

Итак, введите следующую команду, чтоб установить Apache:

Поскольку команда начинается с sudo, она будет выполнена с привилегиями root. Введите пароль текущей учетной записи, чтобы подтвердить привилегии.

Готово! Apache установлен на сервер.

После завершения установки нужно запустить Apache на VPS:

На данном этапе можно выполнить выборочную проверку, чтобы убедиться, что все прошло должным образом; для этого посетите общественный IP-адрес сервера в веб-браузере (см. следующий раздел, чтобы узнать общественный IP-адрес сервера):

Это выведет веб-страницу Apache для CentOS 7 по умолчанию (она нужна для предоставления информации и проведения тестирования установки). Если такая страница появилась – Apache запущен и работает должным образом.

Как узнать общественный IP-адрес сервера?

Существует несколько способов узнать общественный IP-адрес. Как правило, это адрес, который используется для подключения к серверу по SSH.

Во-первых, его можно узнать в командной строке с помощью инструмента iproute2 :

ip addr show eth0 | grep inet | awk '< print $2; >' | sed 's/\/.*$//'

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

Во-вторых, можно использовать внешнего абонента, который расскажет, как он видит данный сервер. Для этого нужно спросить у определенного сервера, какой IP-адрес данного сервера:

2: Установка MySQL (MariaDB)

Теперь, когда веб-сервер установлен и запущен, можно установить MariaDB, аналог MySQL. MariaDB – это разработанное сообществом ответвление реляционной системы управления базами данных MySQL. В основном, такие системы хранят и упорядочивают базы данных, содержащие информацию сайта, а также обеспечивают доступ к ним,

Опять же, для загрузки и установки программного обеспечения можно использовать yum. Но на этот раз нужно установить некоторые вспомогательные пакеты, которые помогут компонентам взаимодействовать.

sudo yum install mariadb-server mariadb

По завершении установки запустите MariaDB при помощи следующей команды:

sudo systemctl start mariadb

Затем нужно запустить простой скрипт безопасной установки, который удалит некоторые опасные настройки по умолчанию и усложнит доступ к системе базы данных. Запустите интерактивный скрипт:

Затем введите текущий root-пароль. Поскольку система MySQL только что установлена, такого пароля пока что нет, потому просто оставьте поле незаполненным. Затем будет предложено установить root-пароль для MySQL. Выполнив это, введите Y и следуйте инструкциям:

Enter current password for root (enter for none):
OK, successfully used password, moving on.
Setting the root password ensures that nobody can log into the MariaDB
root user without the proper authorization.
New password: password
Re-enter new password: password
Password updated successfully!
Reloading privilege tables..
. Success!

На остальные вопросы просто нажмите Enter, чтобы установить значения по умолчанию. Это удалит некоторые образцы пользователей и баз данных, отключит удаленный root-логин и сразу же активирует новые настройки MySQL.

Теперь нужно автоматизировать запуск MariaDB. Используйте команду:

sudo systemctl enable mariadb.service

Готово! Система баз данных установлена и настроена.

3: Установка PHP

PHP – это язык сценариев, отвечающий за обработку кода для отображения динамического контента. PHP может запускать сценарии, запрашивать информацию из базы данных MySQL, а также передавать обработанный контент на веб-сервер.

Для установки PHP тоже можно использовать yum. Также в команду нужно добавить php-mysql:

sudo yum install php php-mysql

Данная команда быстро установит PHP. Затем нужно перезапустить веб-сервер Apache, чтоб он мог взаимодействовать с PHP. Для этого наберите:

Установка модулей PHP

Чтобы расширить возможности PHP, нужно установить некоторые дополнительные модули.

Чтобы просмотреть список доступных PHP-модулей, наберите:

В результате появится список всех модулей, которые можно установить, с кратким описанием каждого.

php-bcmath.x86_64 : A module for PHP applications for using the bcmath library
php-cli.x86_64 : Command-line interface for PHP
php-common.x86_64 : Common files for PHP
php-dba.x86_64 : A database abstraction layer module for PHP applications
php-devel.x86_64 : Files needed for building PHP extensions
php-embedded.x86_64 : PHP library for embedding in applications
php-enchant.x86_64 : Enchant spelling extension for PHP applications
php-fpm.x86_64 : PHP FastCGI Process Manager
php-gd.x86_64 : A module for PHP applications for using the gd graphics library
. . .

Чтобы получить более подробную информацию о конкретном модуле, можно просмотреть полное его описание при помощи команды:

yum info имя_пакета

Это выведет достаточно объемный результат, в котором будет содержаться поле Description с полным описанием функций модуля.

Например, чтобы получить подробное описание php-fpm, нужно ввести:

yum info php-fpm

Помимо остальной информации выход будет содержать что-то вроде:

Чтобы установить модуль, получив всю необходимую информацию о нем, используйте уже знакомую команду yum install.

То есть, чтобы установить модуль php-fpm, нужно набрать:

sudo yum install php-fpm

Чтобы установить несколько модулей сразу, используйте yum install и перечислите все необходимые пакеты через пробел, вот так:

sudo yum install пакет1 пакет2 .

Готово! Теперь группа программ LAMP stack полностью установлена, настроена и готова к работе. Осталось только протестировать PHP.

4: Тестирование PHP

Чтобы убедиться в том, что система правильно настроена и может взаимодействовать с PHP, нужно создать базовый скрипт PHP.

Данный скрипт называется info.php. Чтобы сервер Apache мог найти файл и правильно его обслуживать, его нужно сохранить в определенный каталог – root-каталог сайта. В CentOS 7 он находится в /var/www/html/. Чтобы создать файл в этом каталоге, используйте:

sudo vi /var/www/html/info.php

Появится пустой файл, в который нужно внести следующий код PHP:

Сохраните и закройте файл.

Теперь нужно проверить, может ли веб-сервер правильно отобразить контент, созданный скриптом PHP. Для этого нужно просто посетить эту страницу в веб-браузере (снова понадобится общественный IP).

Итак, введите в браузер:

Если страница открылась, значит, все работает должным образом.

Эта страница, как правило, содержит информацию о сервере с точки зрения PHP и будет полезна при устранении неисправностей и проверке настроек

Завершив тестирование, нужно удалить этот файл, поскольку такая страница может предоставить информацию о сервере неавторизованным пользователям. Чтобы сделать это, введите следующее:

sudo rm /var/www/html/info.php

Такую страницу можно легко восстановить в случае необходимости.

Итоги

Теперь на сервер установлен LAMP stack – надежная платформа, которая позволяет устанавливать любой веб-сайт и огромное количество видов программного обеспечения.

Научиться настраивать MikroTik с нуля или систематизировать уже имеющиеся знания можно на . Автор курса, сертифицированный тренер MikroTik Дмитрий Скоромнов, лично проверяет лабораторные работы и контролирует прогресс каждого своего студента. В три раза больше информации, чем в вендорской программе MTCNA, более 20 часов практики и доступ навсегда. Данная статья устарела. Читайте новую актуальную статью по настройке web сервера apache на centos 8.

Данная статья является частью единого цикла статьей про сервер Centos.

Web сервер на CentOS 7

Подопытным сервером будет выступать виртуальная машина от ihor, характеристики следующие:

Процессор 2 ядра
Память 8 Gb
Диск 150 Gb SSD

Это кастомная настройка параметров. Они не оптимальны по цене, но мне были нужны именно такие.

Хочу сразу уточнить, что разбираю базовую дефолтную настройку. Для улучшения быстродействия, повышения надежности и удобства пользования нужно установить еще несколько инструментов, о чем я расскажу отдельно. В общем случае для организации веб сервера будет достаточно того, что есть в этой статье.

Если у вас еще нет сервера, то вам надо выполнить установку CentOS 7. А если сервер уже установлен, то не забудьте его настроить. Рекомендую обратить внимание именно на настройку, так как там много полезной информации, которую в рамках этой статьи я не даю - обновление системы, настройка фаервола, установка редактора и многое другое.

Настройка apache в CentOS 7

Теперь приступим к установке apache. В CentOS 7 это делается очень просто:

Добавляем apache в автозагрузку:

Запускаем apache в CentOS 7:

Проверяем, запустился ли сервер:

установка apache на centos 7

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

Создаем подобную структуру:

Перезапуск apache в centos

Теперь делаем restart apache :

Дальше в винде правим файл hosts , чтобы обратиться к нашему виртуальному хосту. Добавляем туда строчку:

где 192.168.1.25 ip адрес нашего веб сервера.

Проверка apache в centos 7

Сразу же обращу ваше внимание на настройку ротации логов виртуальных хостов. Частенько бывает, что если сразу не настроишь, потом забываешь. Но если сайт с хорошей посещаемостью, то логи будут расти стремительно и могут занять очень много места. Лучше настроить ротацию логов веб сервера сразу же после создания. Сделать это не сложно.

Мы добавили одну строку в самое начала файла. Теперь логи всех виртуальных хостов в папке /web будут ротироваться по общему правилу.

В принципе, простейший веб сервер уже готов и им можно пользоваться. Но вряд ли сейчас найдутся сайты со статическим содержимым, которым достаточно поддержки только html. Так что продолжим нашу настройку.

Установка php в CentOS 7

Для поддержки динамического содержимого сайтов выполним следующий шаг. Установим php в CentOS 7:

И следом еще несколько полезных компонентов. Установим популярные модули для php:

Выполним перезапуск apache:

Создадим файл в директории виртуального хоста и проверим работу php:

centos php

Вы должны увидеть вывод информации о php. Если что-то не так, возникли какие-то ошибки, смотрите лог ошибок виртуального хоста, php ошибки будут тоже там.

Где лежит php.ini

После установки часто возникает вопрос, а где хранятся настройки php? Традиционно они находятся в едином файле настроек. В CentOS php.ini лежит в /etc, прямо в корне. Там можно редактировать глобальные настройки для все виртуальных хостов. Персональные настройки каждого сайта можно сделать отдельно в файле конфигурации виртуального хоста, который мы сделали раньше. Давайте добавим туда несколько полезных настроек:

Добавляем в самый конец, перед </VirtualHost>

Для применения настроек нужно сделать restart apache. Теперь в выводе phpinfo можно увидеть изменение настроек.

Обновление до php 5.6 в CentOS 7

В нашем примере мы установили на CentOS 7 php 5.4 из стандартного репозитория. А что делать, если нам нужна более новая версия, например php 5.6? В таком случае нужно выполнить обновление php.

Теперь обновляем php 5.4 до php 5.6:

centos 7 php 5.6

Отлично, мы обновили php до версии 5.6.

Установка MySQL в CentOS 7

Как я уже писал ранее, сейчас все большее распространение получает форк mysql - mariadb. Она имеет полную совместимость с mysql, так что можно смело пользоваться. Я предпочитаю использовать именно ее.

Устанавливаем mariadb на CentOS 7:

Добавляем mariadb в автозапуск:

Проверяем, запустилась или нет:

Обращаю внимание, что она даже в системе отображается как сервис mysqld . Теперь запускаем стандартный скрипт настройки безопасности:

Не буду приводить весь вывод работы этого скрипта, там все достаточно просто и понятно. Сначала задаем пароль для root (текущий пароль после установки пустой), потом удаляем анонимных пользователей, отключаем возможность подключаться root удаленно, удаляем тестового пользователя и базу.

Файл настроек mysql/mariadb лежит в /etc/my.cnf. Для обычной работы достаточно настроек по-умолчанию. Но если вы решите изменить их, не забудьте перезапустить службу баз данных.

Перезапуск mariadb/mysql в CentOS 7:

На этом все. Базовый функционал web сервера на CentOS 7 настроен.

Если вам нужен phpmyadmin воспользуйтесь моим подробным руководством по установке и настройке phpmyadmin на centos 7.

Буду рад замечаниям и комментариям по теме статьи. Напоминаю, что данная статья является частью единого цикла статьей про сервер Centos.

Онлайн курсы по Mikrotik

  • Знания, ориентированные на практику;
  • Реальные ситуации и задачи;
  • Лучшее из международных программ.

Помогла статья? Подписывайся на telegram канал автора

Анонсы всех статей, плюс много другой полезной и интересной информации, которая не попадает на сайт.

Автор Zerox

93 комментария

Небольшое дополнение - в конце скрипта iptables команда должна быть service iptables save
Без этого после перезагрузки сервера будет сюрприз в виде откатившихся в исходное настроек iptables (возможно эта грабля работает только у RUVDS)

Вы о каком скрипте говорите? Я во всех своих скриптах делаю сохранение правил в /etc/sysconfig/iptables. В Centos из этого файла берутся настройки iptables во время загрузки. Это типовое поведение сервера. Я сотни серверов настраивал на centos и везде это так работает, если специально ничего не менять.

Шаблон может какой-то кастомизированный используют.

Тут что угодно может быть. Прямо указана ошибка - 110: Connection timed out. Невозможно подключиться, соединение отваливается по таймауту. Подключение вот сюда 192.168.0.1:8888 не проходит. Разбирайтесь, почему на этом порту не отвечает apache.

Хорошая статья. Есть одно маленькое замечание. После установки апача было бы правильно намекнуть на фаирвол.

Спасибо автору.
Все шаги на Вашем примере сайта. Это очень продуктивно.
Понимаешь как это работает.
Если что-то не получается, смотри в комментах.

Данная инструкция не работает. Автор не понимает о чем пишет = типичный рерайтер, который повыдергивал инфы из интернета для уникальности.

Подскажи еще, откуда я рерайчу, чтобы наполнить свой сайт уникальными авторскими статьями :)))

Видимо самоизоляция так пагубно влияет на мозг..
Автору спасибо, отличные маны отличный сайт

Здравствуйте.
В чем разница между
chown -R apache. /web
и
chown -R apache /web
?

Первое аналог команды:
chown -R apache:apache /web
С точкой просто короче запись.

Спасибо! Отличная статья)

На рутрекере выложил готовую виртуалку для ESXI с nextcloud на базе центоси7

Очень полезная статья. Прям все по шагам получилось сделать. Большое спасибо!

Сюда - что бы всем было видно. Прошу прощения, если кому помешал.
Моя ошибка - в правилах iptables(по вышенаписанным статьям), скопировал предыдущее не посмотрев содержание.
открывать порт для сервера нужно правилом в /etc/iptables_rules.sh:
$IPT -A INPUT -i $WAN -p tcp --dport 80 -j ACCEPT
а не
$IPT -A INPUT -i $WAN -p udp --dport 80 -j ACCEPT

В этой статье подразумевается, что selinux отключен. Его настройка отдельная история. У меня так и не дошли руки ее описать.

Нашел ошибку. "" Тут каким-то чудным образом порт 80 не вписал! :D
Zerox, спасибо за статьи. Изучаю Linux по ним =)

Какая ошибка в браузере?

На локальном при подключению по адресу: "Сервер не найден" на на компе в сети не удаётся: "получить доступ к сайту"

Ага, Iptables отключил и заработало, хотя вроде настраивал по вашей же статье)

Сделал всё по инструкции, но апач открывает только по ip адресу и то только на локальной машине, по адресу выдаёт ошибку

Дальше логично посмотреть, что за ошибка и подумать, с чем она связана. Заодно посмотреть логи.

На ступени: Перезапуск apache в centos
Ошибка:
[root@localhost

Вроде всё просто и centos 7 minimal читый.
Помогите новичку.

Неправильно настроил сеть. Исправился.

Только хотел написать, что надо сеть проверить :)

А как обновить до последней версии Apache?

Спасибо! Весьма удобное руководство, всё прошло как по маслу. Правда я устанавливал PHP 7.1, наверное, уже есть смысл отредактировать это руководство для установки современной версии PHP.

В самом начале есть ссылка на свежую статью, как раз с php 7.1.

Действительно, проглядел. Спасибо Вам за полезные материалы, уже вижу, что есть и другие полезные статьи, которые надо бы прочитать.

Мне тут стала любопытна тема Антивируса на веб-сервере. Linux'у в большинстве плевать на вирусню, но вот веб сервису в частности не очень. Что посоветуете?

Таких антивирусов не существует. Есть некоторые средства для ручной проверки файлов сайта на наличие вирусов, но это не полноценный антивирус. Пример такого скрипта - ai-bolit. Защита веб сервера это комплекс мер. У меня есть в планах написание статьи по настройке максимально защищенного веб сервера, но пока это только планы, даже черновика нет.

Для начала огромное СПАСИБО за статьи! Много полезного и интересного для начинающих линуксоидов. Уже на основе этой статьи запустил чат Mattermost, а также Zabbix. Все работает, но теперь воюю с Nextcloud'ом. Вроде запустился и работает, но хочеться что бы пользователи были не локальные, а Active Directory. Поставил компонент php-ldap и обновил его до версии 5.6. Но Nextcloud'у все равно чего то не хватает, AD видет, а группы и пользователей нет:( говорит чего-то ему не хватает, а чего ХЗ.

К слову, я успешно прикрутил Nexcloud к AD

Это стабильный продукт, его можно в продакшене использовать?

А это предстоит еще проверить)) Он у меня готов к использованию, но пака что я его не запускал в массы.

На этапе настроек и знакомства в основном функционале глюков не заметил. Есть куча дополнений которые можно установить, но их функционал это отдельная история. А так гонять под нагрузкой нужно в несколько пользователей, а не в одно лицо.

Добрый день.
Подскажите в чём может быть проблема, установил nginx, но когда захожу, то пишет что:

The requested URL /nginx was not found on this server.

я ввожу IP адрес сервера пишет apache настроен(

не обратил внимания ошибка выскочила
Job for nginx.service failed becouse th control process exite with errore code
See "systemctl status nginx.service" and journalctl -xe@ for details

Сам нашел ответ на свой вопрос.
В CentOS 7 по умолчанию в php.ini прописано short_open_tag=Off, нужно было переключить в "on" чтоб заработал php код.

Стесняюсь спросить, какая версия MariaDB у Вас устанавливается представленным способом - бета 10.3 или стабильная 10.2?

Добрый день! Прописал новый путь к сайту, создал файлик site1.conf, но после перезапуска апаче выдаёт ошибку
Job for httpd.service failed because the control process exited with error code. See "systemctl status httpd.service" and "journalctl -xe" for details.
В логах написанно:
ah00170 caught sigwinch, shutting down gracefully.
Подскажите в чём может быть проблема

Гугл выдает много вариантов решения этой проблемы. Предлагаю им воспользоваться. Заочно я все равно ничем не помогу.

Да, спасибо я разобрался, но теперь возникла другая проблема, я добавил сайт в новую дерикторию, создал для него файл - конфиг, но выбивает тестовая страница апаче

А есть у вас на сайте как это сделать?

Так в этой же статье и рассказано. Но нужно хоть какое-то понимание происходящего. Если совсем ничего не понятно, то лучше freepbx и сайты разнести по разным серверам. Тут все же нужен некоторый опыт и навык, чтобы все аккуратно сделать, и чтобы работало :)

Значит будем разбираться. Все таки первую неделю работаю с линуксом. Раз смог поднять два сервера в разных городах и настроить между ними атс, то и с этим разбирусь. А за сайт спасибо. Очень много почерпнул от сюда.

Здравствуйте. Установил я сначала FreePBX, все у меня заработало. Потом решил установить веб сервер. И получается загвоздка. Теперь через ip я захожу на apache, а на freepbx не могу зайти. Я так понимаю это из-за того, что они находятся на одном порту (*:80).
Как мне теперь настроить, что бы работал и apache и freepbx? Ну это относится и к другим сайтам (Если я создам еще несколько сайтов, то нужно наверное прописывать отдельно каждый сайт). Подскажите пожалуйста

Нужно настраивать виртуальные хосты, каждый сайт, в том числе и freepbx - отдельный виртуальный хост.

Здравствуйте! У Вас статья по установке LAMP на базе CentOS.. Почему выбор пал на данный дистрибутив, почему не Debian?

Там на этапе когда у вас уже можно открыть тестовую страницу апача с 123, нужно было еще открыть 80 порт в iptables, т.к. по умолчанию в 7 centos врядли он будет открыт.
команда:
iptables -I INPUT -p tcp —dport 80 -j ACCEPT
и команда:
iptables-save>/etc/sysconfig/iptables

Я в самом начале дал ссылку на статью с настройкой сервера и сделал акцент, что настройка firewall рассматривается там. А так конечно верно, если не открыть 80-й порт, ничего не заработает.

Здравствуйте, можете мне помочь?
У меня следующая проблема: создал несколько Виртуальных хостов, но при обращение на любой из них открывается дефолтовый сайт bиз этого каталога /var/www/html.
с DNS настройками все правильно.

А чем тут заочно поможешь? Где-то ошибка, виртуальные хосты не работают. Надо внимательно проверить все конфиги.

Скайп есть у Вас?

Подскажите новичку: я установил апач и создал на нем свой сайт - как настроить доступ к нему с других пк в локальной сети без редактирования по отдельности на каждом пк файла hosts?

Только настройкой dns сервера, который обслуживает эти компьютеры. В него надо добавить запись о вашем сайте.

Не подскажете,что делать со следующей проблемкой. По дури решил переустановить mariadb, с удалением каталога /var/lib/mysql В итоге выдается ошибка при запуске,что mkdir не может создать каталог /var/lib/mysql, нет доступа. запускаю от рута. На другом сервере смотрел права, каталог создан группой mysql, пользователь mysql, я вручную создал каталог с такими же правами. В итоге та же ошибка.

Пробовать надо разные варианты. С правами где-то ошибка. Либо на самом каталоге, либо по пути к нему. Создай сам пустой каталог с нужными правами.

А так за мануал спасибо :)

Да, спасибо за подсказку. Так можно сделать и я знаю об этом. В статьях стараюсь использовать конструкции как можно проще, чтобы было всем понятно, что я делаю.

Можно вообще сократить мануал и сделать немного поудобнее привязки:

Установка php в CentOS 7
Для поддержки динамического содержимого сайтов выполним следующий шаг. Установим php в CentOS 7:

Отредактировал комментарий. Убрал конфиг, так как из него часть символов не перенеслись во время копирования. В комментариях не получится вставить конфиги со стрелками, в которые параметры директории указываются в конфигах apache.

Тогда лучше все убрать, таким сокращением вы убрали важные детали , что указаны в конфиге

Ни для кого не секрет, что в наше время большинство сайтов интернета работают на основе веб-сервера Apache, абазы данных MySQL и серверного языка программирования - PHP. Эту группу программного обеспечения принято называть аббревиатурой LAMP (Linux Apache, MySQL, PHP).

CentOS - это серверная операционная система, поэтому она устанавливается на множество VPS, поддерживающих сайты, поэтому часто бывает необходимость установить LAMP CentOS. Это совсем не сложно, но требует определенных знаний. В этой статье мы очень подробно рассмотрим как выполняется установка Lamp CentOS 7, а также как выполнить минимальную настройку сервера для работы.

Установка LAMP CentOS

Самый главный компонент в этом программном стеке, который мы будем устанавливать - это Apache, поскольку именно он принимает все запросы от клиентов и отправляет им данные. Поэтому установку будем проводить в таком порядке:

И уже только после этого дополнительные компоненты, такие как phpmyadmin и так далее. Начнем с первого пункта.

Установка Apache

Обычно, после завершения установки вам не придется больше ничего настраивать и Apache будет слушать все соединения на порту 80. Запустите службу с помощью команды:

Вторая команда добавляет программу в автозагрузку. Затем откройте ip адрес 127.0.0.1 в браузере. Если все работает, то вы должны увидеть тестовую страничку:

  • conf - основной конфигурационный файл;
  • conf.d - дополнительные настройки, виртуальные домены;
  • conf.moules.d - конфигурационные файлы модулей.

Создадим папку для только что настроенного виртуального хоста:

sudo mkdir -p /var/www/test.io/

sudo chown -R apache /var/www/test.io/

И создадим файл index.html:

sudo vi /var/www/test.io/public_html/index.html

Поскольку мы разместили логи в отдельной директории, то нам нужно разрешить запись в нее Apache с помощью SELinux:

sudo /sbin/restorecon -v /var/www/test.io/logs

Осталось перезапустить веб-сервер:

Если ваша DNS запись домена уже направлена на IP адрес сервера, то уже можно тестировать. Если же нет, нужно добавить такую строчку в файл /etc/hosts на вашем компьютере, откуда вы хотите подключаться к серверу:

Если Apache установлен на локальном компьютере, то можно использовать конструкцию:

sudo vi /etc/hosts

Установка MySQL

Не будем нарушать последовательность, и следующим компонентом установим систему управления базами данных mysql. Мы будем использовать ее свободную реализацию MariaDB. Для установки выполните:

sudo yum install mariadb-server


Если у вас раньше была установлена другая версия MySQL, то ее нужно удалить, также нужно удалить папку /var/lib/mysql. После завершения установки запустите сервис:

sudo systemctl start mariadb
$ sudo systemctl enable mariadb

Установка LAMP CentOS 7 также включает первоначальную настройку базы данных. Для ее запуска наберите:

На первом шаге вам необходимо ввести текущий пароль root. Если программа только что установлена, то достаточно просто нажать Enter:


Дальше установите новый пароль root для баз данных:


Отключите анонимный вход. Отключите удаленный вход от имени root:

И удалите тестовые базы данных.



Ваша база данных готова к работе, если вы хотите использовать не MariaDB, а версию базы данных от Oracle, смотрите статью установка MySQL CentOS 7.

Установка PHP

В наши дни ни одно веб-приложение или сайт не обходятся без генерации динамического контента. Чаще всего разработчики останавливают свой выбор на PHP, поскольку это один из самых популярных языков программирования для веб. Итак, чтобы установить lamp CentOS 7 нам остался только один шаг. Вы можете найти все необходимые пакеты в официальных репозиториях. Для установки наберите:

sudo yum install php php-pear php-gd php-mysql


Затем перезапустите веб-сервер:

И добавьте файл для тестирования PHP в директорию нашего сайта:

sudo vi /var/www/test.io/public_html/phpinfo.php

Откройте адрес test.io/phpinfo.php в браузере. Если все прошло хорошо, то вы увидите такую страницу, это информация про установленную версию php:

Нам осталось добавить несколько настроек php, которые будут для вас очень полезными. Откройте файл /etc/php.ini. Если это локальный сервер, найдите строку display_errors и поменяйте значение на On:


Затем сохраните изменения и перезапустите веб-сервер.

Установка phpmyadmin

Это уже необязательный компонент сервера LAMP. Но phpmyadmin очень часто используется для управления базами данных. Для установки выполните:

sudo yum install phpmyadmin


Затем перезапустите веб-сервер для применения настроек и откройте адрес test.io/phpmyadmin в браузере:


В открывшемся окне вам осталось ввести логин и пароль для доступа к базе данных.


Теперь вы можете создать нужные вам базы данных и пользователей.

Выводы

В этой статье мы рассмотрели как выполняется установка apache на centos 7, а также полная настройка LAMP CentOS, после выполнения которой вы получите полностью функциональный локальный веб-стек для разработки или полноценный производственный сервер. Если у вас остались вопросы, спрашивайте в комментариях!

По шагам разбираем установку Linux, Apache, MySQL и PHP (LAMP) на виртуальный сервер CentOS.

Оглавление

Стек LAMP мы будем использовать в качестве среды разработки, тестирования и отладки, при этом работать он будет на стандартном для большинства хостингов дистрибутиве - CentOS.

Статья создана на основе руководства по установке и конфигурированию производительных серверов.

К этому моменту мы предполагаем, что вы уже установили CentOS на виртуальную машину и получили к ней доступ по SSH.

В качестве базы данных будет использована MariaDB, которая уже стала негласным стандартом после приобретения MySQL компанией Oracle. Она ничем не отличается от MySQL и разрабатывается создателем этой базы данных под свободной лицензией.

Есть два варианта установки:

  1. Короткий и простой, но без комментариев и понимания что делаем.
  2. Длинный, ручками, с объяснением каждого шага.

1. Способ - Простой. За вас все делает скрипт.

  1. Скачиваем скрипт установки c сайта hika.su вот такой командой и следуем его указаниям:
  2. Дожидаемся установки всех пакетов и если того потребует скрипт, выполняем reboot.
  3. После перезагрузки снова запускаем скрипт командой ./ri.sh и внимательно следим за установкой и подсказками скрипта.

Можно также поставить файл mc.menu вместо стандартного. Это позволит удобно управлять сервером:

На этом все - конфигурирование сервера завершено.

2. Способ - Ручной. Делаем всю установку самостоятельно

Начало установки

Начинаем с обновления установленной системы CentOS.

Устанавливаем любимый файловый менеджер Midnight Commander:

После обновления нужно проверить - выключен ли SELinux? На виртуальной машине VMware скорее всего он был включен. Команда sestatus показывает включен ли SELinux. Если включен - надо его отключить. В файле /etc/sysconfig/selinux найти строку и установить параметр:

Устанавливаем локаль utf-8, чтобы корректно отображался русский шрифт и различные специальные символы (в частности те, которые используются mc).

На случай если подключение будет через локаль Windows и если локали не совпадут - то все переключится на ANSI кодировку. Локали должны совпадать. Поэтому убедитесь, что локаль вашей Windows системы совпадает с локалью на сервере (по умолчанию в Windows включается русская локаль).

Устанавливаем (или убеждаемся что они уже установлены) программы cronie и logrotate:

Устанавливаем репозитарий EPEL. Полностью EPEL репозиторий называется так — Extra Packages for Enterprise Linux. Это хранилище пакетов, созданное группой специалистов операционной системы Fedora. Пакеты из EPEL репозитория никогда не конфликтуют и не переустанавливают базовые пакеты RHEL.

Установка Apache

Теперь установим репозитарий CodeIT для получения последних версий Apache:

Если у вас установлен Firewall - конфигурируем его для открытия портов веб-сервера:

Делаем рестарт веб-сервера:

Установка PHP

Для установки новой версии php в CentOS приходится использовать сторонний репозиторий. Если устанавливать через репозиторий Remi, то инструкция такая:

Выбираем какую версию PHP будем устанавливать (в нашем случае PHP 7.3):

и заменяем ее на:

Здесь мы добавляем расширение .html для того, чтобы в нем могли исполняться PHP скрипты.

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

Если необходимо, создайте эти директории :

Проверим что конфигурационный файл PHP-FPM корректен:

Теперь перезапускаем сервис php-fpm и делаем его автоматически запускаемым:

systemctl enable php-fpm systemctl start php-fpm

Не забудьте изменить ограничение на загрузку файлов в 2M. В файле

/etc/php.ini найдите эти параметры и исправьте на приведенные значения (или на те, которые вас устроят):

Установка MariaDB вместо MySQL

Когда будет задан вопрос о root пароле, то устанавливаем его. В качестве ответа на остальные вопросы просто жмем Enter.

В конфигурационном файле /etc/my.cnf.d/server.cnf в разделе [mysqld] раскомментируем строку bind-address и задаем значение 127.0.0.1:

В файл .bashrc (расположен в домашней папке) добавляем строку в конце:

Также добавляем строку с паролем MariaDB:

Завершение установки

Настраиваем локальное время (например, Московское):

Генерируем самоподписанный сертификат SSL на 10 лет:

Указываем только страну, остальное Enter.

Для удобного управления сервером можно использовать созданные заранее скрипты для MC.

Загрузить их можно с сайта hika.su командой:

На этом можно считать конфигурацию завершенной.

Создание сайта

Если вы установили скрипты для MC, то для того, чтобы создать сайт, создаем папку в директории /var/www/html с именем сайта (например joomla.test ), затем наводим на нее куросор в MC и нажимаем F2.

Появится меню с выбором возможных действий:

Меню с выбором возможных действий

  1. С помощью стрелок выбираем пункт меню создать сайт по имени папки (можно воспользоваться клавиатурой и просто нажать цифру 2).
  2. Выбираем пункт меню coздaть бaзy mysql пo имени папки (можно просто нажать цифру 3) – скрипт создаст базу данных с таким же названием как и сайт.
  3. Выбираем пункт меню скачать Joomla в папку (можно просто нажать j) - автоматически загружается последняя стабильная версия Joomla 3.x.
  4. Нажимаем нa установить владельцем apache. Не забываем сделать рестарт сервера Apache. До тех пор пока вы этого не сделаете - сайт не будет доступен.
  5. Прописываем в Windows файле hosts наш сайт. Путь к файлу hosts на Windows машине следующий:

Файл необходимо открыть от имени администратора и добавить строку:

Windows файл hosts

Для корректной работы скриптов требуется установленная в файле .bashrc переменная с root паролем от базы MariaDB.

Установка LAMP (Linux, Apache, MySQL, PHP) на CentOS 7

Что вам понадобится

Перед тем, как вы начнете это руководство, вам понадобится следующее:

Теперь, запустите службу Apache и добавьте его в автозагрузку:

Во-первых, проверьте IP адрес используемый вашим сервером командой dig:

Шаг 2 — Установка MySQL (MariaDB)

После завершения установки, запустите и добавьте MariaDB в автозагрузку:

Далее, выполните скрипт безопасности для удаления некоторых опасных, стандартных значений:

Во-первых, MariaDB запросит ваш root пароль, однако, так как это первоначальная установка, просто нажмите Enter. Далее, установите root пароль который будете вводить при входе, напишите Y и следуйте инструкциям:

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

Шаг 3 — Установка PHP

Движок PHP необходим для обработки нашего PHP кода, доступа к базе данных и обслуживания содержимого Apache. Снова используйте Yum для установки необходимых пакетов PHP. Запустите эту команду в терминале:

Для того чтобы Apache определил движок PHP, перезагрузите его:

Вот и все! Установка LAMP на этом завершена.

Шаг 4 — Тестирование движка PHP

Проверить работу PHP можно создав тестовый файл. Просто запустите данную команду:

Теперь, войдите в info.php через ваш IP адрес:

Вы должны увидеть стандартную информационную страницу PHP с ее версией в заголовке:

установка lamp php info

Заключение

Вы наверное уже заметили, что создание своего веб-сервера не такая уж и сложная задача, и не требует огромного запаса знаний. Установка LAMP на CentOS 7 довольно проста и может быть легко выполнена даже новичком. Apache будет предоставлять контент браузеру, а PHP выполнит код и отправит запросы в MariaDB для получения необходимых данных.

Читайте также: