Как установить apache на linux fedora

Обновлено: 06.07.2024

Содержание

Недостатком наиболее часто называется отсутствие удобного стандартного интерфейса для администратора.

Веб-сервер Apache разрабатывается и поддерживается открытым сообществом разработчиков под эгидой Apache Software Foundation и включён во многие программные продукты, среди которых СУБД Oracle и IBM Web``Sphere.

MySQL, PHP (Python или Perl)).

В области программирования для Сети PHP — один из популярнейших скриптовых языков (наряду с JSP, Perl и языками, используемыми в ASP) благодаря своей простоте, скорости выполнения, богатой функциональности и распространению исходных кодов на основе лицензии PHP. PHP отличается наличием ядра и подключаемых модулей, «расширений»: для работы с базами данных, сокетами, динамической графикой, криптографическими библиотеками, документами формата PDF и т. п. Любой желающий может разработать своё собственное расширение и подключить его. Существуют сотни расширений, однако в стандартную поставку входит лишь несколько десятков хорошо зарекомендовавших себя. Интерпретатор PHP подключается к веб-серверу либо через модуль, созданный специально для этого сервера (например, для Apache или IIS), либо в качестве CGI-приложения.

Кроме этого, он может использоваться для решения административных задач в операционных системах UNIX, Linux, Windows и Mac OS X. Однако в таком качестве он не получил распространение, отдавая пальму первенства Perl, Python и VBScript.

Синтаксис PHP подобен синтаксису языка Си. Некоторые элементы, такие как ассоциативные массивы и цикл foreach, заимствованы из Perl.

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

Группа разработчиков PHP состоит из множества людей, добровольно работающих над ядром и расширениями PHP, и смежными проектами, такими, как PEAR или документация языка.

MySQL (произносится «Май Эс Кью Эль») — свободная система управления базами данных (СУБД). MySQL является собственностью компании MySQL AB, осуществляющей разработку и поддержку приложения. Распространяется под GNU General Public License и под собственной коммерческой лицензией, на выбор. Помимо этого компания MySQL AB разрабатывает функциональность по заказу лицензионных пользователей, именно благодаря такому заказу почти в самых ранних версиях появился механизм репликации.

MySQL используется в качестве сервера, к которому обращаются локальные или удалённые клиенты, однако в дистрибутив входит библиотека внутреннего сервера, позволяющая включать MySQL в автономные программы. Гибкость СУБД MySQL обеспечивается поддержкой большого типа таблиц: пользователи могут выбрать как сверхбыстрые таблицы типа MyISAM, поддерживающие полнотекстовый поиск, так и более медленные, но чрезвычайно устойчивые таблицы InnoDB, поддерживающие транзакции на уровне отдельных записей. Более того, СУБД MySQL поставляется со специальным типом таблиц EXAMPLE, демонстрирующем принципы создания новых типов таблиц. Благодаря открытой архитектуре и GPL лицензированию в СУБД MySQL постоянно появляются новые типы таблиц.

2. Настраиваем сервисы, чтобы автоматически запускались при загрузке системы:

3. ВНИМАНИЕ! Установите пароль на пользователя root в MySQL, иначе каждый может получить полный доступ к серверу БД. Рекомендуется установить пароль не похожий на пароль пользователя root в системе.

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

Требования

Прежде чем приступить к установке программ LAMP, обновите все пакеты системы при помощи стандартного менеджера пакетов yum:

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

Apache – это свободный и открытый веб-сервер, поддерживающий более 50% всех веб-сайтов в мире.

Чтобы установить Apache, откройте терминал и введите команду:

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

Как узнать IP-адрес сервера?

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

ifconfig eth0 | grep inet | awk '< print $2 >'

2: Установка MySQL

MySQL – это производительная система управления базами данных (СУБД), предназначенная для хранения и упорядочивания данных на виртуальном сервере.

Чтобы установить MySQL, откройте терминал и введите команды:

sudo yum install mysql mysql-server
sudo service mysqld start

Во время установки MySQL дважды спросит о ваших правах. Просто ответьте Yes дважды, после чего система MySQL будет установлена на сервер.

После завершения установки можно установить root-пароль для MySQL.

Программа запросит текущий root-пароль, но поскольку это свежая установка MySQL, root-пароля ещё нет, потому просто оставьте поле незаполненным и нажмите Enter.

Enter current password for root (enter for none):
OK, successfully used password, moving on.

Затем программа спросит, хотите ли вы установить root-пароль. Выберите Y и следуйте инструкциям.

Fedora автоматизирует процесс настройки MySQL при помощи набора простых вопросов. Чтобы использовать стандартные настройки, ответьте Yes на все вопросы. Затем MySQL перезапустится и активирует новые параметры.

By default, a MySQL installation has an anonymous user, allowing anyone
to log into MySQL without having to have a user account created for
them. This is intended only for testing, and to make the installation
go a bit smoother. You should remove them before moving into a
production environment.
Remove anonymous users? [Y/n] y
. Success!
Normally, root should only be allowed to connect from 'localhost'. This
ensures that someone cannot guess at the root password from the network.
Disallow root login remotely? [Y/n] y
. Success!
By default, MySQL comes with a database named 'test' that anyone can
access. This is also intended only for testing, and should be removed
before moving into a production environment.
Remove test database and access to it? [Y/n] y
- Dropping test database.
. Success!
- Removing privileges on test database.
. Success!
Reloading the privilege tables will ensure that all changes made so far
will take effect immediately.
Reload privilege tables now? [Y/n] y
. Success!
Cleaning up.
All done! If you've completed all of the above steps, your MySQL
installation should now be secure.
Thanks for using MySQL!

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

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

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

sudo yum install php php-mysql

После подтверждения PHP установится на сервер.

Модули PHP

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

На экране появится список модулей, который начинается так:

php-fpdf-doc.noarch : Documentation for php-fpdf
php-libvirt-doc.noarch : Document of php-libvirt
php-pear-Auth-radius.noarch : RADIUS support for php-pear-Auth
php-pear-Auth-samba.noarch : Samba support for php-pear-Auth
ice-php-devel.i686 : PHP tools for developping Ice applications
ice-php-devel.x86_64 : PHP tools for developping Ice applications
perl-PHP-Serialization.noarch : Converts between PHP's serialize() output and
: the equivalent Perl structure
php-IDNA_Convert.noarch : Provides conversion of internationalized strings to
: UTF8
php-Kohana.noarch : The Swift PHP Framework
php-LightweightPicasaAPI.noarch : A lightweight API for Picasa in PHP
php-PHPMailer.noarch : PHP email transport class with a lot of features
php-Smarty.noarch : Template/Presentation Framework for PHP
php-ZendFramework.noarch : Leading open-source PHP framework
php-ZendFramework-Auth-Adapter-Ldap.noarch : Zend Framework LDAP
: Authentication Adapter
php-ZendFramework-Cache-Backend-Apc.noarch : Zend Framework APC cache backend

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

yum info имя_модуля

Чтобы установить модуль, введите:

sudo yum install имя_модуля

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

sudo yum install модуль1 модуль2 модуль3

4: Итоги

Готово! Связка LAMP stack успешно установлена на сервер.

Теперь нужно настроить автоматический запуск программ LAMP при загрузке сервера (после запуска Apache PHP загрузится автоматически):

Протестируйте работу LAMP при помощи страницы php info.

Создайте новый файл:

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

В него внесите следующий код:

Затем сохраните и закройте файл.

Перезапустите Apache, чтобы изменения вступили в силу.

Теперь откройте только что созданную страницу php info, указав свой ip-адрес:

Apache - это популярнейший свободный веб-сервер. Состоянием на 2020 год он используется на 33% всех сайтов интернета, а это приблизительно 304 миллиарда сайтов. Этот веб-сервер был разработан в далеком 1995, как замена для популярного того сервера NCSA и исправил множество его проблем. Ходят слухи что его имя походит от a patchy, заплатка, так как он исправлял ошибки NCSA. Сейчас же, это кроссплатформенная программа, поддерживающая Windows, Linux и MacOS и обеспечивающая достаточную гибкость, настраиваемость и функциональность. Программа имеет модульную структуру, что позволяет расширять ее функциональность почти до бесконечности с помощью модулей.

Установить Apache в Linux можно с помощью нескольких команд, но программа предоставляет очень большое количество настроек, которые можно изменить, а также модулей, после включения которых она будет работать лучше. В этой статье будет рассмотрена установка и настройка Apache, в качестве основной системы мы будем использовать Ubuntu, но вы можете повторить эти действия в любом другом дистрибутиве. Будет рассмотрена не только установка самой программы, но и способы ее настройки, настройка виртуальных хостов apache, а также самые полезные модули.

Установка Apache

На данный момент, самая новая версия программы 2.4 поэтому и будет рассмотрена настройка apache 2.4. Как я уже говорил, в Linux программа устанавливается буквально в пару команд. Для установки в Ubuntu сначала обновим систему до самой новой версии:

sudo apt update
sudo apt upgrade

Затем установка apache2:

sudo apt install apache2

После завершения установки нужно добавить веб-сервер в автозагрузку, чтобы не запускать его вручную после включения компьютера:

sudo systemctl enable apache2

Настройка Apache

Уже прошло то время, когда конфигурация Apache хранилась в одном файле. Но оно и правильно, когда все распределено по своим директориям, в конфигурационных файлах легче ориентироваться.

Все настройки содержатся в папке /etc/apache/:

  • Файл /etc/apache2/apache2.conf отвечает за основные настройки
  • /etc/apache2/conf-available/* - дополнительные настройки веб-сервера
  • /etc/apache2/mods-available/* - настройки модулей
  • /etc/apache2/sites-available/* - настойки виртуальных хостов
  • /etc/apache2/ports.conf - порты, на которых работает apache
  • /etc/apache2/envvars

Как вы заметили есть две папки для conf, mods и site. Это available и enabled. При включении модуля или хоста создается символическая ссылка из папки available (доступно) в папку enable (включено). Поэтому настройки лучше выполнять именно в папках available. Вообще говоря, можно было бы обойтись без этих папок, взять все и по старинке свалить в один файл, и все бы работало, но сейчас так никто не делает.

Сначала давайте рассмотрим главный файл конфигурации:

apache

Timeout - указывает как долго сервер будет пытаться продолжить прерванную передачу или прием данных. 160 секунд будет вполне достаточно.

KeepAlive On - очень полезный параметр, позволяет передавать несколько файлов, за одно соединение, например, не только саму html страницу, но и картинки и css файлы.

MaxKeepAliveRequests 100 - максимальное количество запросов за одно соединение, чем больше, тем лучше.

KeepAliveTimeout 5 - таймаут соединения, обычно для загрузки страницы достаточно 5-10 секунд, так что больше ставить не нужно, но и рвать соединение раньше чем загрузились все данные тоже не нужно.

User, Group - пользователь и группа, от имени которых будет работать программа.

HostnameLookups - записывать в логи вместо ip адресов доменные имена, лучше отключить, чтобы ускорить работу.

LogLevel - уровень логирования ошибок. По умолчанию используется warn, но чтобы логи заполнялись медленнее достаточно включить error

Include - все директивы include отвечают за подключение рассмотренных выше конфигурационных файлов.

apache1

Директивы Directory отвечают за настройку прав доступа к той или иной директории в файловой системе. Синтаксис здесь такой:

<Directory /адрес/в/файловой/системе/>
Параметр значение
</Directory>

Здесь доступны такие основные опции:

AllowOverride - указывает нужно ли читать .htaccess файлы из этой директории, это такие же файлы настроек и таким же синтаксисом. All - разрешать все, None - не читать эти файлы.

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

Options - указывает какие особенности веб-сервера нужно разрешить в этой папке. Например, All - разрешить все, FollowSymLinks - переходить по символическим ссылкам, Indexes - отображать содержимое каталога если нет файла индекса.

Require - устанавливает, какие пользователи имеют доступ к этому каталогу. Require all denied - всем запретить, Require all granted - всем разрешить. можно использовать вместо all директиву user или group чтобы явно указать пользователя.

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

У нас остался файл /etc/apache2/ports.conf:

apache2

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

Последний файл /etc/apache2/envvars, его вы вряд ли будете использовать, в нем указанны переменные, которые можно использовать в других конфигурационных файлах.

apache3

Дальше поговорим немного о htacess. Совсем немного.

Настройка сервера Apache через htaccess

Файлы .htaccess позволяют настраивать веб-сервер на Ubuntu для поведения в определенной директории. Все инструкции, указанные в этом файле выполняются как бы они были обвернуты в тег <directory адрес_папки> если бы находились в основном файле.

Важно заметить, что для того, чтобы сервер читал инструкции из .htaccess настройки для этой папки в основном файле или файле виртуального хоста не должны содержать AllowOverride None, чтобы могли работать все настройки нужно AllowOverride All.

А в остальном, здесь может выполняться любая настройка сервера apache, от включения модулей, до обычного изменения доступа к папке. Поскольку все параметры мы уже рассмотрели просто приведем пару примеров:

Order Deny,Allow
Deny from all

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

RewriteEngine on
RewriteRule ^product/([^/\.]+)/?$ product.php?id=$1 [L]

Но это очень обширная тема и выходит за рамки этой статьи.

Настройка модулей Apache

Как я уже говорил, Apache - модульная программа, ее функциональность можно расширять с помощью модулей. Все доступные модули загрузчики и конфигурационные файлы модулей находятся в папке /etc/apache/mods-available. А активированные в /etc/apache/mods-enable.

Но вам необязательно анализировать содержимое этих папок. Настройка Apache 2.4 с помощью добавления модулей выполняется с помощью специальных команд. Посмотреть все запущенные модули можно командой:

apache4

Включить модуль можно командой:

sudo a2enmod имя_модуля

sudo a2dismod имя_модуля

После включения или отключения модулей нужно перезагрузить apache:

sudo systemctl restart apache2

Во время выполнения одной из этих команд создается или удаляется символическая ссылка на файл модуля с расширением load в директории mods-available. Можете посмотреть содержимое этого файла, там только одна строка. Например:

apache5

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

Настройки модулей находятся в той же папке, только в файле с расширением .conf вместо load. Например, посмотрим настройки того же модуля для сжатия deflate:

apache6

Файлы в папке conf-available, это такие же модули, только они установлены отдельно от apache, это может быть конфигурационные файлы для включения модуля php или любого другого языка программирования. Здесь работает все точно так же, только команды для включения и отключения этих модулей немного другие:

a2disconf имя модуля

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

sudo a2enmod expires
sudo a2enmod headers
sudo a2enmod rewrite
sudo a2enmod ssl

Модули expires и headers уменьшают нагрузку на сервер. Они возвращают заголовок Not Modified, если документ не изменился с последнего запроса. Модуль expiries позволяет устанавливать время, на которое браузер должен кэшировать полученный документ. Rewrite позволяет изменять запрашиваемые адреса на лету, очень полезно при создании ЧПУ ссылок и т д. А последний для включения поддержки шифрования по SSL. Не забудьте перезагрузить apache2 после завершения настроек.

Настройка виртуальных хостов Apache

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

Настройки хостов Apache расположены в папке /etc/apache2/sites-available/. Для создания нового хоста достаточно создать файл с любым именем (лучше кончено с именем хоста) и заполнить его нужными данными. Обернуть все эти параметры нужно в директиву VirtualHost. Кроме рассмотренных параметров здесь будут использоваться такие:

  • ServerName - основное имя домена
  • ServerAlias - дополнительное имя, по которому будет доступен сайт
  • ServerAdmin - электронная почта администратора
  • DocumentRoot - папка с документами для этого домена

apache7

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

sudo a2ensite test.site

Здесь test.site - имя файла виртуального хоста. Для отключения тоже есть команда:

sudo a2dissite test.site

Настройка виртуальных хостов Apache завершена и на публичном сервере это все бы уже работало, но если вам нужна настройка Apache на домашней машине, то вы ваш новый сайт не откроется в браузере. Браузер не знает такого сайта. И откуда ему знать? DNS службы не могут ничего сообщить об этом доменном имени. Но в системе Linux мы можем сами указать ip адреса для доменных имен в файле /etc/hosts. Поэтому добавляем в конец файла такие строки:

Вот, ну теперь будет работать, открывайте браузер, проверяйте.

Выводы

Вот и все. Установка и настройка Apache linux завершена, вы можете использовать программу для размещения ваших сайтов. Более того, вы не просто настроили ее, вы разобрались со всеми подробностями и теперь знаете чуточку больше. Если у вас остались еще вопросы, пишите в комментариях!


suPHP интегрируется в Apache2 в качестве модуля.

  1. Apache.
  2. PHP и некоторых нужных пакетов.
  3. suPHP.

Кроме того, я объясню, как:

  • Настроить apache для запуска виртуальных хостов для выбранных существующих пользователей.
  • Настроить PHP для работы c пользователями виртуального хоста (suPHP).

Предустановка.

Если пользователь и группа не существует, мы можете создать их следующим образом:

Далее, выставляем права на файл index.php (пермишены и владельца):

Установка Apache.

2) Запускаем сервер:

Если ваш апач находится не на localhost, то измените команду.

Настройка конфигурационного файла Apache

Я использовал конфигурацию по умолчанию, и, ничего не правил там.

Установка PHP и его пакетов

Вот некоторые основные PHP пакеты, которые вы возможно захотите установить их:

Затем установите mod_suphp, чтобы иметь возможность работать PHP для каждого пользователя, но для начала, подключите репозиторий RPMForge:

Исключим (выключим) репозиторий RPMForge из стандартного (если вы оставите его включенным, то он может повредить вашу систему).

Установка mod_suphp через yum из rpmforge репозитория:

!! ОЧЕНЬ ВАЖНО !!: Исправьте PHP обработчик:

После установки, нужно отредактировать конфигурационный файл suphp:

Следующим шагом, стоит внести изменения для обработки PHP и для этого, нужно отредактировать:

И закоментируйте или удалите все, кроме следующего текста ( нужно добавить именно его):

Так же, нужно проверить чтобы небыли прописаны следующие строки:

Закоментируйте их как у меня.

Добавьте следующие изменения в файл /etc/php.ini:

И добавляем, если таких параметров нет:

Добавления виртуального хоста в Apache

Открываем/создаем виртуальный хост:

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

Тестируем PHP с suPHP

Отредактируем файл, который расположенный в папке пользователя, в данном примере, пользователь invision:

Наконец, открываем свою страницу для которого создали виртуальный хост Apache, например:

Если он выводит Apache, то что-то не так с конфигурацией suPHP.

Обработка ошибок и лог-файлы

Вы можете просмотреть подробную информацию о ошибках Apache в лог файле:

Кроме того, вы можете просмотреть логи самого suPHP:

Как правило, suPHP покажет подобное:

Добавить комментарий Отменить ответ

Этот сайт использует Akismet для борьбы со спамом. Узнайте, как обрабатываются ваши данные комментариев.

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