Установка lamp для fedora



Установка и настройка LAMP (Linux, Apache, MariaDB, PHP) в Fedora

Почти все команды, используемые в статье, нужно выполнять от пользователя root.

Установка Apache

Apache находится в пакете:

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

systemctl start httpd.service systemctl enable httpd.service

Проверим работоспособность, набрав в браузере адрес localhost. В случае успеха вы увидите тестовую страницу Fedora, а в случае ошибки ничего не увидите.

Установка PHP

Интересующий нас пакет:

По зависимости был установлен пакет php-cli. Он позволяет запускать PHP-код в командной строке. С его помощью мы можем протестировать работу PHP, «не отходя от кассы». Открываем «Терминал», вводим и запускаем следующее:

php -r ‘print(phpinfo());’

В ответ получим информацию о PHP, если, конечно, установка прошла успешно.

Установка MariaDB

phpMyAdmin — программа для администрирования БД. Запуск и автозагрузка MariaDB:

systemctl start mysqld.service systemctl enable mysqld.service

Назначить новый пароль на root-аккаунт можно командой:

mysqladmin -u root password ваш-пароль

Также рекомендуется произвести более глубокую настройку БД с помощью команды:

Настройка Apache. Использование виртуальных хостов, основанных на имени

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

Для начала сделаем виртуальные хосты (адреса сайтов, если хотите), на которых будут работать будущие сайты. Хосты хранятся в файле hosts (/etc/hosts). Добавим туда приблизительно следующее содержание:

127.0.0.1 имя-вашего-сайта имя-другого-сайта

Теперь свяжем адреса и файлы, которые будут там работать. Для этого создадим файл /etc/httpd/conf.d/vhosts.conf (название может быть любым, а вот расширение — только conf). Добавим в него следующие строки:

NameVirtualHost 127.0.0.1:80 ServerName localhost AddDefaultCharset utf-8 <VirtualHost 127.0.0.1:80 > DocumentRoot /любой-каталог/ имя-вашего-сайта ServerName имя-вашего-сайта </VirtualHost> <VirtualHost 127.0.0.1:80 > DocumentRoot /любой-каталог/ имя-другого-сайта ServerName имя-другого-сайта </VirtualHost>

NameVirtualHost — обязательная директива для использования виртуальных хостов, основанных на имени. В качестве параметра указывается IP-адрес, на который сервер будет получать запросы. В нашем случае — это локальный компьютер .

AddDefaultCharset — устанавливает кодировку по умолчанию. В нашем случае UTF-8 (везде и всегда надо использовать UTF-8).

VirtualHost — контейнер, в котором хранятся директивы для определенного IP-адреса или хоста. В нашем случае IP-адрес должен совпадать с тем, который указан в директиве NameVirtualHost.

DocumentRoot — каталог, файлы из которого сервер будет использовать при ответе на запрос. Там, например, могут быть файлы WordPress, Drupal либо ваши собственные скрипты.

ServerName — имя сервера. Должно соответствовать тому, которое записано в файле /etc/hosts.

Apache mod_rewrite

Мод работает «из коробки», но настройки сервера не позволяют использовать его прямо сейчас. Для исправления ситуации открываем и правим главный файл конфигурации Apache — /etc/httpd/conf/httpd.conf. Меняем:

<Directory /> Require all denied </Directory>

<Directory /> Require all granted </Directory>

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

systemctl restart httpd.service

Политики SELinux

Хотя мы установили и настроили все, работать ничего не будет. Дело в том, что Fedora использует SELinux — нечто вроде дополнительного контроля доступа. Раньше, начиная с этого места, был длинный текст с разными командами и описаниями, но проще выключить весь этот SELinux. Ничего страшного в этом нет.

Права на папку с нашим профилем

Это последнее действие, которое надо сделать. Изменим права с 700 на 711, чтобы Apache мог получить доступ к файлам, которые лежат в папке нашего профиля:

Источник

Установка стека LAMP на Fedora 22

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

Поскольку сервер использует операционную систему Fedora 22, которая является дистрибутивом Linux, первый компонент группы уже установлен. Ниже показано, как установить остальные программы.

Требования

Для выполнения инструкций нужно предварительно настроить сервер Fedora 22.

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

sudo dnf update

Примечание: dnf – аналог yum, стандартный менеджер пакетов системы Fedora 22.

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

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

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

sudo dnf install httpd

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

sudo systemctl start httpd.service

Теперь веб-сервер Apache установлен и готов к работе. Чтобы убедиться в этом, откройте в браузере IP-адрес своего сервера (например, http://12.12.12.123). На экране должна появиться стандартная страница Fedora Test Page.

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

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

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

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

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

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

sudo dnf install mysql mysql-server
sudo systemctl start mariadb.service

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

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

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

После этого программа предложит установить root пароль. Нажмите Y и следуйте инструкциям.

Fedora автоматизирует процесс установки MySQL, задавая пользователю ряд вопросов.

Чтобы принять настройки по умолчанию, введите Yes на все вопросы. В конце установки MySQL перезапустится, чтобы обновить настройки.

Читайте также:  Установка водительского сиденья приора

<pre>By default, a MariaDB installation has an anonymous user, allowing anyone
to log into MariaDB 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, MariaDB 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 MariaDB
installation should now be secure.
Thanks for using MariaDB!

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

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

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

sudo dmf 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

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

dnf info name of the module

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

sudo dnf install name of the module

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

Итак, установка стека LAMP завершена!

Настройте автозапуск программ при загрузке сервера:

sudo chkconfig httpd on
sudo chkconfig mariadb on

Примечание: PHP автоматически запускается вместе с Apache.

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

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

Примечание: Установите текстовый редактор nano, если он не был установлен ранее:

sudo dnf install nano

Чтобы создать новый файл, введите:

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

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

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

Перезапустите Apache, чтобы обновить настройки виртуального сервера:

sudo systemctl restart httpd.service

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

Если всё было выполнено должным образом, на экране появится страница, предоставляющая информацию о php.

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

Источник

Fedora — LAMP Web Server (Настройка)

Итак у вас есть Удаленная машина с Red Hat Fedora Linux. Машина свеженькая и абсолютно пустая. Например вы купили VPS или взяли выделенный сервер. Цель: установить и настроить программное обеспечение классического web-сервера LAMP (apache, mysql, PHP).

Мое Решение: Это решение не абсолютная истина, это мой рабочий процесс. Работая по привычной схеме я стараюсь экономить время.

PS: Когда надо выполнить больше одной команды я обычно пишу BASH скрипт, его легко исправить если ошибся и после исправления легко повторить весь цикл команд.

Обычно первым делом ставлю себе Midnight Commander. Это и файловый менеджер и редактор с подсветкой синтаксиса, и распаковщик и управление правами файлов и . короче удобно и быстро. Я люблю Midnight Commander.

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

Если кто-то считает, что эту утилиту нельзя отключать, пришлите мне реальные примеры-алгоритмы взлома системы с отключенным SELinux. Иначе все это пустой треп.

Классическая проблема — фаервол не даст вам доступ по http к вашим сайтам, если его не отключить. Ниже приведенная команда откроет диалоговое окно. Надо убрать галочку Enabled и нажать кнопку Save.

Проблема с некорректным временем на сервере может приводить к ошибкам на некоторых CMS. Например CMS Magento Commerce при неправильном времени на сервере не позволяет добавлять товары в корзину и переходить к процессу заказа, логинится пользователю и админу, выдавая ошибку: Cookies not set. На самом деле Из-за неправильного времени срок действия куки у клиента может оказаться просроченным и ошибка возникнет не только на CMS Magento.

Для установки правильного времени в автоматическом режиме есть сервис NTP.

Следующая проблема которая может возникнуть, а может и не возникнуть, это проблемы с отсылкой почты. Обычно почта в Linux отправляется командой mail И в PHP есть такая функция mail();. Загвоздка начинается когда клиенты начнут писать, что письма до покупателей или посетителей их сайтов не доходят. Хотя команда mail все также прекрасно работает. А письма растворяются в неизвестном направлении. Это происходит потому, что некоторые почтовые сервисы не только кладут ваши письма в папку spam, но и записывают ваш сервер в черный список спамеров (например CBL ABUSE AT list) за одну маленькую оплошность — дефолтный HostName («localhost», «localhost.localdomain», and other generic «unconfigured» names.) Следующая команда покажет какое имя сервера у вас:

Читайте также:  Как называют файл для установки ос

Если у вас localhost.localdomain, то исправляется это в нескольких местах

Здесь XXX.XXX.XXX.XXX — IP адрес сервера. my.clients.vps.server.ru — меняете на свое имя сервера

И еще одна фенечка — Имя сервера не должно ни в коем случае совпадать с именем домена какого нибудь сайта на этом сервере. По этой причине почта отправленная утилитой sendmail, для этого домена, будет складываться локально, а почта для других доменов отправляться получателям. Если вы все же столкнулись с этим — поменяйте имя сервера и перезагрузите его.

Для установки LAMP (apache, mysql, php) я заготовил себе небольшой bash скрипт. В него также включена и установка FTP сервера. Но последнее время я FTP не устанавливаю поскольку было несколько примеров непонятным образом скомпрометированных FTP паролей, как следствие заражение сайтов посторонним кодом. Сколько работаю с SSH — никогда такой компрометации не было. Вот этот скрипт.

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

Источник

Как установить LAMP Stack на Fedora 32/31/30/29

В этом посте мы рассмотрим, как установить и настроить LAMP Stack в Fedora 32/31/30/29. LAMP Stack — это набор инструментов с открытым исходным кодом, которые используются для размещения веб-приложений. Акроним стека LAMP включает в себя:

  • L — хост-система Linux — может быть виртуальной или физической, или контейнером
  • A — HTTP-сервер Apache
  • M — База данных MySQL / MariaDB
  • P — язык программирования PHP

Чтобы иметь функциональный стек LAMP, вам нужно установить и настроить каждый компонент один за другим. Действия по установке и настройке стека LAMP на Fedora 31/30/29 должны быть простыми.

Шаг 1: Установите Fedora 32/31/30/29

Последний выпуск Fedora на момент написания этой статьи — Fedora 30. У нас есть руководство по установке, которое должно работать для физического сервера, виртуальной машины и для развертываний Vagrant Box:

Шаг 2: Установите базовые пакеты / установите SELinux в Permissive

Установите основные пакеты, такие как vim, curl, wget, telnet

Если вы впервые слышите о SELinux, я советую вам перевести его в режим Permissive или полностью отключить. Проверьте состояние SELinux, запустив:

Режим по умолчанию enforcing . Чтобы перевести его в разрешающий режим, выполните:

Чтобы полностью отключить это:

Подтвердите постоянный статус настроен

Шаг 3: Установите сервер Apache httpd

После того, как вы установили и обновили ОС Fedora, приступите к установке сервера Apache httpd.

Настройте основные параметры httpd:

Отредактируйте файл конфигурации /etc/httpd/conf/httpd.conf установите:

При желании вы можете установить Keepalive

Включить и запустить httpd сервис

Если у вас работает firewalld, разрешите http и https услуги.

Шаг 4: Установите PHP и расширения

Установите PHP и настройте httpd для поддержки выполнения сценариев PHP. Проверьте нашу статью на:

Не забудьте установить общие расширения:

Подтвердите установленную версию PHP:

Загруженные расширения можно просмотреть, передав -m опцию php команде

Установить часовой пояс PHP для файла/etc/php.ini

See a complete List of Supported Timezones.

Шаг 4: Установите базу данных MySQL / MariaDB

Для установки MySQL на Fedora 31/30/29 используйте наше руководство:

В исходных репозиториях Fedora имеется MariaDB 10.3, который можно установить с помощью dnf команды.

После установки установите набор символов

Установите свой набор символов в [mysqld] разделе

Затем запустите mariadb службу и включите ее при загрузке

Выполните первоначальные настройки MariaDB, такие как установка пароля root, отключение удаленного входа в систему root и т. Д.

Ответьте на вопросы как ниже:

  • Введите текущий пароль для root (введите no): <Enter>
  • Установить пароль root? [Да / Нет] у
  • Удалить анонимных пользователей? [Да / Нет] у
  • Удалить тестовую базу данных и получить к ней доступ? [Да / Нет] у
  • Перезагрузить таблицы привилегий сейчас? [Да / Нет] у

Создать и удалить тестовую базу данных:

Чтобы удалить базу данных и пользователя, используйте

Мы подтвердили, что наш сервер базы данных работает нормально. Чтобы разрешить удаленные подключения, разрешите порт 3306 на брандмауэре.

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

Шаг 5. Проверьте установку лампы

В качестве теста для нашей установки стека ламп на Fedora 31/30/29 создайте тестовую страницу PHP

Перезагрузите httpd сервис и откройте страницу в вашем браузере.

Открыть добавленную страницу информации PHP http://[serverIP]/phpinfo.php

Это все. Вы успешно установили стек LAMP на свой сервер Fedora 32/31/30/29 или на рабочую станцию

Источник

elemc blog

I'll speak to him again. What do you read, my lord?

httpd + php + mysql (LAMP) в Fedora для разработчика PHP

В jabber-конференцию часто приходят люди и очень часто стоит вопрос — развернуть LAMP, но не просто так, а еще и с пользовательскими каталогами, чтобы можно было на PHP писать.
Все упираются в какие-то древние инструкции, где неизменно предлагают отключить SELinux.
Я против, давайте настроим все это не выключая SELinux, максимально просто и правильно в Fedora Linux.

Читайте также:  Как запустить флешку для установки винды

Установка

  • httpd — сам apache;
  • mariadb — это сервер mysql;
  • php — название само за себя говорит;
  • php-mysqlnd — модуль php для mysql;

Настройка mysqld (mariadb)

Запускаем сервер (от root):

а затем запускаем от root команду, чтобы настроить сервер:

Enter current password for root (enter for none) — введите текущий пароль для пользователя root или нажмите Enter, если он пустой.
Конечно нажимаем Enter, у нас не установлен еще пароль.
Set root password? [Y/n]
Я отвечаю Y (т.е. да) и ставлю на текущий пароль системного пользователя root.
Remove anonymous users? [Y/n]
Удаляем анонима? Я удаляю, а зачем мне анонимный пользователь 🙂
Disallow root login remotely? [Y/n]
Отключаем возможность root’у заходить по сети.
Если сервер на домашней машинке разворачивается в парниковых условиях домашней сети, то не вижу смысла говорить «Да».
А вот если это какой-нить vps/vds, тогда да, отключить надо обязательно.
Remove test database and access to it? [Y/n]
Отключаем тестовые базы данных и доступ к ним. Конечно отключаем.
Reload privilege tables now? [Y/n]
Перезагрузить таблицу привелегий сейчас. Конечно да.
Так мы закончили вводную настройку mysql (mariadb).

httpd

Запускаем apache (от root):

Проверяем

Проверим базовую настройку.
Создадим тестовый файл для проверки apache+php:

phpinfo

и проверим, зайдя через браузер.
Если это локальный компьютер, то адрес выглядит так: http://localhost/test.php.
Должна появится страничка с информацией о PHP.
Что-то вроде этой:

Если такой странички не появилось, значит что-то сделал(а) не так. Надо смотреть логи и лечить.
Все. Таким образом у нас уже есть «теплый LAMP’овый» сервер.

Пользовательские каталоги

В пакете httpd уже все придумано для того, чтобы создать пользовательские каталоги.
Просто включим эту возможность.

Вот оригинальное содержимое файла /etc/httpd/conf.d/userdir.conf:

user request is received.
#
# The path to the end user account ‘public_html’ directory must be
# accessible to the webserver userid. This usually means that

userid
# must have permissions of 711,

userid/public_html must have permissions
# of 755, and documents contained therein must be world-readable.
# Otherwise, the client will only receive a "403 Forbidden" message.
#
<IfModule mod_userdir.c>
#
# UserDir is disabled by default since it can confirm the presence
# of a username on the system (depending on home directory
# permissions).
#
UserDir disabled

#
# To enable requests to /

user/ to serve the user’s public_html
# directory, remove the "UserDir disabled" line above, and uncomment
# the following line instead:
#
#UserDir public_html
</IfModule>

#
# Control access to UserDir directories. The following is an example
# for a site where these directories are restricted to read-only.
#
<Directory "/home/*/public_html">
AllowOverride FileInfo AuthConfig Limit Indexes
Options MultiViews Indexes SymLinksIfOwnerMatch IncludesNoExec
Require method GET POST OPTIONS
</Directory>

Если внимательно вчитаться в комментарии этого файла, то почти все становится понятно сразу.
Комментируем строку №16 — отключаем отключение самой возможности UserDir.
Убираем комментарий в строке №23 — указываем название каталога «хомяке».
И после предпоследней строки №33 мы добавим еще одну строчку:

Она разрешит httpd «отдавать» каталоги пользователям.

В общем и целом файл должен после нас выглядеть так:

user request is received.
#
# The path to the end user account ‘public_html’ directory must be
# accessible to the webserver userid. This usually means that

userid
# must have permissions of 711,

userid/public_html must have permissions
# of 755, and documents contained therein must be world-readable.
# Otherwise, the client will only receive a "403 Forbidden" message.
#
<IfModule mod_userdir.c>
#
# UserDir is disabled by default since it can confirm the presence
# of a username on the system (depending on home directory
# permissions).
#
# UserDir disabled

#
# To enable requests to /

user/ to serve the user’s public_html
# directory, remove the "UserDir disabled" line above, and uncomment
# the following line instead:
#
UserDir public_html
</IfModule>

#
# Control access to UserDir directories. The following is an example
# for a site where these directories are restricted to read-only.
#
<Directory "/home/*/public_html">
AllowOverride FileInfo AuthConfig Limit Indexes
Options MultiViews Indexes SymLinksIfOwnerMatch IncludesNoExec
Require method GET POST OPTIONS
Require all granted
</Directory>

Сохраняем файл.
Перезапускаем httpd командой от root’а:

С этого момента договоримся, что нашего пользователя зовут IMUSER, просто меняйте это слово на название своего пользователя.

Создаем пользовательский каталог (конечно команду надо выполнить от пользователя):

Теперь займемся разрешениями.
Сперва разрешим демону httpd смотреть в каталог пользователя (от root’а):

Эта команда включит флаги «x» (для каталогов это флаг просмотра каталога) для группы и прочих.

Теперь включим разрешения SELinux (также от root’а):

Эта команда разрешает демону httpd читать содержимое в пользовательских каталогах. И разрешает работу с ними вообще для httpd.

Ну и в заключении — проверим работу пользовательских каталогов все на том же простеньком файлике.
Выполняем от пользователя:

Проверяем.
Нам надо зайти по адресу: http://localhost/

IMUSER/test.php
Я специально не делаю этот адрес ссылкой. Помнишь еще о соглашении? 😉

Напоследок

Тут я записываю то, что не вошло в текст статьи, но может быть полезно или просто помочь.

Включаем автозапуск служб httpd и mariadb (mysql):

SELinux’у может не понравится попытка соединения httpd с подозрительной базой данных по сети (можно еще через сокет, это SELinux не блокирует).
«Лечится» это включением соответствующего флажка SELinux (от root’а):

Очень много полезного есть в man-страницах:
man httpd_selinux
man mysqld_selinux
Надо только установить пакет selinux-policy-devel

Я буду рад дополнить и/или изменить статью.
Комментарии, как всегда, приветствуются.

Источник

Adblock
detector