Установка Apache, PHP, MySQL, phpMyAdmin в Ubuntu Linux. Установка apache linux


Установка и настройка сервера Apache

Apache - это популярнейший свободный веб-сервер. Состоянием на 2016 год он используется на 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

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

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

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. Вообще говоря, можно было бы обойтись без этих папок, взять все и по старинке свалить в один файл, и все бы работало, но сейчас так никто не делает.

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

vi /eta/apache2/apache2.conf

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Order - позволяет управлять доступом к директории. Принимает два значения Allow,Deny - разрешить для всех, кроме указанных или Deny,Allow - запретить для всех, кроме указанных. Теперь мы можем запретить доступ к директории для всех: Deny from all, а затем разрешить только для приложения от losst.ru: Allow from losst.ru.

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

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

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

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

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

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

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

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

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

Order Deny,AllowDeny from all

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

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

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

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

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

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

apache2ctl -M

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

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

А отключить:

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

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

sudo systemctl restart apache2

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

vi /etc/apache2/mods-available/deflate.load

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

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

vi /etc/apache2/mods-available/deflate.conf

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

a2enconf имя_модуля

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/hosts-available/. Для создания нового хоста достаточно создать файл с любым именем (лучше кончено с именем хоста) и заполнить его нужными данными. Обернуть все эти параметры нужно в директиву VirtualHost. Кроме рассмотренных параметров здесь будут использоваться такие:

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

Например:

vi /etc/apache2/sites-available/test.site.conf

<VirtualHost *:80>

ServerName test.siteServerAlias www.test.siteServerAdmin webmaster@localhostDocumentRoot /var/www/test.site/public_htmlErrorLog ${APACHE_LOG_DIR}/error.logCustomLog ${APACHE_LOG_DIR}/access.log combined

</VirtualHost>

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

sudo a2ensite test.site

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

sudo a2dissite test.site

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

vi /etc/hosts

127.0.0.1 test.site127.0.0.1 www.test.site

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

Выводы

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

Оцените статью:

Загрузка...

losst.ru

Настройка Apache Linux - запуск и установка / Linux системы / ADODO.ru

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

Данная инструкция для пользователей Ubuntu, для прочих Linux систем принцип тот же. Установка Apache Linux начинается с установки обязательного софта

server#>sudo apt-get update; server#>sudo apt-get install apache2 php5 php5-mysql mysql-server-5.0 Установка модулей гипертекстового процессора (php) не обязательна, все зависит от ваших потребностей. Его можно доставить и позже. Идем к папке, куда установлена программа Apache/etc/apache2/:envvars conf.d/ apache2.conf ports.conf sites-enabled/ mods-enabled/ server#>ls /etc/apache2/ mods-available/ httpd.conf sites-available/apache2.conf – файл, в котором прописана конфигурация httpd сервера.httpd.conf – данный файл предназначен для совместимости и он совершенно пустой.mods-available/ — каталог с подключаемыми модулями.sites-available/ — каталог подключаемых файлов, которые активируют виртуальные хосты после установки Apache Linux.

Модуль или виртуальный хост можно активировать с помощью a2ensite и a2enmod.

Настройка Apache Linux
Правильная настройка apache Linux предполагает набор специальных знаний и навыков. Файл настройки лежит по пути /usr/local/etc/apache/httpd.conf. Должно присутствовать три файла настроек, которые помогут настроить все параметры вашего сервера. По сути это простой тестовый документ, в котором каждая строка начинается с #.

ServerRoot "/usr/local" – показывает верхний каталог по умолчанию. Файлы bin можно найти в sbin и bin. Файлы с настройками лежат в папке etc/apache.

ServerAdmin [email protected] – на данный адрес поступают отчеты о проблемах и ошибках.

ServerName www.example.com – дает возможность дать хосту имя.

DocumentRoot "/usr/local/www/data" – внутри данного каталога хранятся документы. Большинство запросов подвергаются обработке именно внутри данного каталога.

Желательно сделать копию настройки Apache Linux, на случай сбоев или ошибок.

Запуск Apache Linux
Программа не запустится с помощью inetd, в отличие от большого числа прочих серверов. Потому, что он налажен под автономный запуск. Именно эта особенность обеспечивает высокую эффективность при работе с HTTP запросами от пользовательских браузеров обычных пользователей.

Чтобы упростить процессы запуска Apache Linux, рестарта или остановки сервера, можно использовать скрипт shell.

Команда для запуска:

# /usr/local/sbin/apachectl start Команда для остановки:# /usr/local/sbin/apachectl stop Для перезапуска после внесения изменений: # /usr/local/sbin/apachectl restart Для запуска Apache Linux вместе с системой: apache_enable="YES" в файл /etc/rc.conf

Для того чтобы дать софту дополнительные функции при старте вместе с системой, нужно их поместить в дополнительную строчку в rc.conf:

apache_flags=""После запуска Apache Linux, желательно проверить работоспособность своего веб сайта. Для этого нужно прописать в строке браузера localhost/. По умолчанию должна отобразиться страничка /usr/local/www/data/index.html

Также рекомендуем Вам к прочтению статьи, имеющие к этой процедуре отношение:

Почтовый сервер на Linux, FTP сервер Linux, установка MySQL

www.adodo.ru

Apache HTTP Server | Русскоязычная документация по Ubuntu

Apache HTTP Server — проект, развиваемый The Apache Software Foundation, в рамках которого разрабатывается кроссплатформенный HTTP сервер с открытым исходным кодом. Входит в состав LAMP и XAMPP.

Версии Apache в Ubuntu

Ubuntu Apache
12.04 LTS (Precise) 2.2
14.04 LTS (Trusty) 2.4
15.10 (Wily) 2.4
16.04 LTS (Xenial) 2.4

Хостинг сайтов

Можно реализовать четырьмя способами:

  1. по умолчанию в папке /var/www/html. Доступом является http://localhost/

  2. настройки основного хостинга. Например, http://localhost/phpmyadmin

  3. в любой папке с помощью модуля виртуальных хостов. Например, http://mysite/

  4. в папке пользователя public_html (модуль userdir). Например, http://localhost/~username

Установка

Для установки Apache выполните в терминале:

sudo apt-get install apache2

Настройка

Для применения изменений в настройках необходимо перезапустить демон Apache: sudo service apache2 restart

В Ubuntu конечный файл настройки (apache2.conf) расделён на несколько файлов, расположенных в разных поддиректориях. Подробней написано в комментариях файла apache2.conf.

/etc/apache2/ |-- apache2.conf | `-- ports.conf |-- mods-enabled | |-- *.load | `-- *.conf |-- conf-enabled | `-- *.conf `-- sites-enabled `-- *.conf

Настройки модулей расположены в директории /etc/apache2/mods-available. Для подключения или отключения модулей (настроек модулей) следует использовать соответствующие команды a2enmod или a2dismod. Пример подключения модуля:

sudo a2enmod <mod-name>

Свои настройки следует сохранять в файлы, расположенные в директории /etc/apache2/conf-available. Для подключения или отключения своих настроек следует использовать соответствующие команды a2enconf или a2disconf. Пример подключения файла со своими настройками:

sudo a2enconf <config-name>

Настройки виртуальных хостов следует сохранять в файлы, расположенные в директории /etc/apache2/sites-available. Для подключения виртуальных хостов следует использовать соответствующие команды a2ensite или a2dissite. Пример подключения виртуального хоста:

sudo a2ensite <site-name>

Кодировка по умолчанию

Для указания кодировки по умолчанию следует использовать директиву AddDefaultCharset в файле /etc/apache2/conf-available/charset.conf (или раскомментировать соответствующую строку):

AddDefaultCharset UTF-8

Виртуальные хосты

Файлы настроек виртуальных хостов хранятся в /etc/apache2/sites-available/*.conf. По умолчанию в Apache уже настроен один виртуальный хост. Его настройки лежат в файле 000-default.conf. Вы можете использовать этот виртуальный хост в качестве примера.

Пример настройки виртуального хоста:

<VirtualHost *:80> #Имя хоста ServerName host1.server1 #Корневая папка хоста DocumentRoot /var/www/host1.server1 <Directory /var/www/host1.server1> #Разрешение на перезапись всех директив при помощи .htaccess AllowOverride All </Directory> </VirtualHost>

Назовите файл настройки именем вашего хоста host1.server1.conf и сохраните.

После создания файла настроек допишите в /etc/hosts имя вашего хоста:

127.0.0.1 host1.server1

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

sudo a2ensite host1.server1

Отключается хост аналогично утилитой a2dissite:

sudo a2dissite host1.server1

Модули

mod_userdir

Модуль mod_userdir позволяет использовать директории, находящиеся в домашних директориях пользователей для хранения веб страниц. По умолчанию Apache ищет запрашиваемые страницы в директории ~/public_html

mkdir ~/public_html

Чтобы включить mod_userdir, выполните:

sudo a2enmod userdir

и добавьте необходимого пользователя в группу www-data:

sudo adduser $USER www-data

после чего перезагрузите Apache:

sudo service apache2 restart

Страницы будут доступны по адресу http://localhost/~username, где username — имя пользователя.

Настройка public_html подробно.

CGI

Если Вы хотите запускать на сервере cgi-скрипты, подключите модуль cgi командой

sudo a2enmod cgi

По умолчанию cgi-скрипты размещаются в директории /usr/lib/cgi-bin, но вы можете разместить их где угодно, указав это в настройках своего виртуального хоста, либо глобально для всех хостов в файле /etc/apache2/conf-enabled/serve-cgi-bin.conf.

Eсли ваш сервер работает во внешней сети, то в целях безопасности настоятельно рекомендуется размещать cgi-скрипты вне корневой директории виртуального хоста

Настройка HTTPS в Apache

Веб-сервер Apache полностью поддерживает работу по HTTPS. Чтобы активировать поддержку HTTPS на уже установленном Apache, необходимо выполнить следующее.

Создание ключа и ssl-сертификата

Использование самоподписанных сертификатов хоть и защищает от пассивного прослушивания, тем не менее не гарантирует клиентам, что сервер является именно тем сервером, который им нужен. Преимуществом самоподписанных сертификатов является их бесплатность. Сертификат, подписанный компанией-сертификатором (Certificate authority), стоит денег.

Для создания ключа и сертификата вводим команду:

openssl req -new -x509 -days 30 -keyout server.key -out server.pem

На вопрос «Enter PEM pass phrase:» отвечаем паролем, подтверждаем и запоминаем.

На все последующие вопросы отвечаем произвольно, можно просто щелкать по Enter, соглашаясь с предложенными вариантами, только на вопрос «Common Name (eg, YOUR name) []:» отвечаем именем сайта, для которого создаем сертификат, например www.example.com.

После ответа на все вопросы в директории должны появиться два новых файла — server.pem (ключ) и server.crt (сертификат).

Чтобы использовать сгенерированный ключ, нужно знать пароль, введённый нами, и Apache будет спрашивать его у нас при загрузке, а к чему нам лишние вопросы от демонов? :) Поэтому снимаем пароль с ключа:

cp server.key{,.orig} openssl rsa -in server.key.orig -out server.key rm server.key.orig

Скопируем их в /etc/ssl и назначим файлу ключа права чтения только администратору:

sudo cp server.pem /etc/ssl/certs/ sudo cp server.key /etc/ssl/private/ sudo chmod 0600 /etc/ssl/private/server.key

Настройка Apache

Для начала необходимо активировать mod_ssl:

sudo a2enmod ssl

А затем включить настройки HTTPS сайта по умолчанию:

sudo a2ensite default-ssl

Теперь необходимо отредактировать файл с настройками HTTPS сайта по умолчанию, указав в нём пути к вашим сертификатам. Сам файл называется /etc/apache2/sites-enabled/default-ssl (или /etc/apache2/sites-enabled/default-ssl.conf).

В этом файле рекомендуется после директивы

SSLEngine on

добавить строчку

SSLProtocol all -SSLv2

чтобы запретить использование устаревшего протокола SSLv2.

Дальше вам необходимо отредактировать параметры, ответственные за сертификаты.

# Публичный сертификат сервера SSLCertificateFile /etc/ssl/certs/server.pem # Приватный ключ сервера SSLCertificateKeyFile /etc/ssl/private/server.key

Теперь просто перезагрузите Apache:

sudo service apache2 restart

И если все параметры указаны верно, ваши сайты станут доступны по HTTPS.

Протокол HTTPS работает по 443 порту, поэтому если сервер находится за шлюзом, то необходимо на нём пробросить данный порт.

Перенаправление HTTP запросов на HTTPS

Если вы хотите запретить использование HTTP, то самым разумным будет перенаправлять все HTTP запросы к страницам на их HTTPS адрес. Сделаем это с помощью mod_alias. Если он не включён — включаем:

sudo a2enmod alias sudo service apache2 restart

Затем изменяем файл /etc/apache2/sites-enabled/000-default, отвечающий за виртуальный хост по умолчанию для HTTP запросов. В этот файл добавляем директиву

Redirect / https://example.com/

При этом все настройки директорий можно удалить, поскольку по HTTP на ваши сайты всё равно будет не попасть.

Всё, теперь ещё раз перезапустите Apache и убедитесь, что при заходе по HTTP вы автоматически перенаправляетесь на HTTPS-страницу.

Ссылки

Возможные проблемы

Если при запуске появляется ошибка

apache2: Could not determine the server's fully qualified domain name, using 127.0.0.1 for ServerName

добавьте в свой файл конфигурации строку

ServerName localhost

Смотрите также

Ссылки

help.ubuntu.ru

Установка Apache, PHP, MySQL, phpMyAdmin в Ubuntu Linux. Linux статьи

Комментарии

Дополню - такая установка допустима только для локальной машины. Для много пользовательского режима, выделения квот и ограничения доступа нужно устанавливать систему так, чтобы /var (ну, или где там будут у кого вирт. хосты) была на отдельном разделе. Ну, там много нюансов. И еще - php-cgi надежнее php_mod_apache. Кушает оперативку, но запуск php-cgi (php-fastcgi) в safe_mode оправдает все потери в производительности. Админ, надеюсь, расскажешь начинающим линуксоидам и об этих нюансах. И еще - отличная заметка )

[аноним]

24.03.2011, 19:20

Какие нюансы можете рассказать ?

Ну, например, пользователь, "живущий" в /home/user может сдлеать хардлинк на что-то из /etcЕсли администратор, к примеру, хостинга, поведется на "с правами доступа какая-то проблема, обновите, пожалуйста, владельца файлов" и сделает пользователю chown -R user: /home/userто хардлинк сделает свое коварное дело. Chow`нется не только жесткая ссылка, но и файл, на который она ссылается. И пользователь получит права на запись.чтение системного файла. Поскольку хардлинк создается лишь в пределах одного раздела, то вынесение пользовательского каталога на отдельную парцию обезопасит от такого вторжения. Пользователь сможет создать лишь симлинк, но это ему ничего не даст. А развести админа на chown не так уж сложно. Не всякий, даже опытный, сразу поймет, что к чему.

[аноним]

09.05.2011, 21:56

Не только для локальной машины. Если серверное железо хорошее, то сетевой затык незначительный. Сравним виндовый и линуксовый.fastcgi через одно место интегрируется в виндовый веб-серер (если ещё нормально встанет) и имеет проблемы с поддержкой css+html. Линуксовый, что греха таить требует знания команд и аккуратности. Не забывайте многие пользуются скриптами быстрой установки контента управления сайтами, не будем лукавить и дело тут как раз в пользовании ими и в самих контентах. Просто надо иметь не кривые руки

Спасибо огромное! Я сегодня только искал как настроить данную связку и попал на этот сайт! Очень помогло!

[аноним]

12.10.2010, 20:44

Статья - то, что надо, спасибо.... по части виртуальных хостов - тож инфа очень нужная... будем ждать

[аноним]

02.01.2011, 11:46

Благодарю ребят хорошая статья очень помогла!!! хорошо было бы если еще статью по виртуальным хостам по читать

Спасибо, по виртуальным хостам статья уже есть: http://pingvinus.ru/note/apache-virtual-host

А к чему такие сложности? Через тот же Synaptic мета-пакет LAMP ставится без проблем. Почему в статье об этом ни слова?

Это не сложности :) Это основы :). А на этой основе уже 'сформирован' LAMP. Про LAMP можно будет отдельно написать тогда заметку потом.

[аноним]

09.05.2011, 21:43

Потому, что сложности себе сами делают. Eсли ставить например ubuntu 10.4 LAMP в синаптике при отметке на обновление сразу на установку, а в ubuntu 10.10 ручками надо. В ubuntu 11.04 вообще изврат.

И правда. Зачем думать и понимать, как и что работает? Лучше так, бездумно, как в винде: тык кнопку. А на сервере какой synaptic? Или на сервере иксы поднимать да графическую оболочку? IF надо уметь руками работать ELSE идти в винду.

[аноним]

29.01.2011, 23:56

http://localhost/phpmyadminпишетNot Found

в чем может быть проблема?хотя раньше вроде так же ставил все роботало

В файле /etc/hosts localhost прописан на нужный ip?

[аноним]

06.07.2012, 13:49

как это сделать,как прописать помоги плиз.

http://pingvinus.ru/note/apache-virtual-hostСм. пункт "Редактируем /etc/hosts"

[аноним]

01.11.2012, 16:19

а что именно надо дописать в /etc/hosts?

[аноним]

04.02.2011, 14:44

спс

[аноним]

09.02.2011, 13:19

Спасибо! Хотел сайт на локалхосте...А тут ошибка - http://localhost/phpmyadmin - Not Found.Что делать??Ответ пожалуйста на почту [email protected]!

[аноним]

12.02.2011, 13:10

Дистрибутив - Убунта!Да.Почемуто нет!

[аноним]

15.02.2011, 19:47

sudo ln -s /usr/share/phpmyadmin /var/wwwПосле этой команды ошибка Not Found прошла/usr/share/phpmyadmin - место куда установился пма/var/www - папка с содержимым localhost

[аноним]

21.04.2014, 12:48

Спасибо помогло

[аноним]

07.06.2011, 10:49

Я запорол установку myadmin что делать как вновь начать установку(настройку) без удаления покета

[аноним]

23.07.2011, 11:36

мега статья! я на винде вообще немерено убил на подобное времени, а тут - 3 строчки! начинаю любить линукс =)))

[аноним]

02.10.2011, 10:30

в убунте для start/stop/restart нужно использовать invoke-rc.d или serviceтак-то

[аноним]

05.10.2011, 13:47

Здраствуйте! при установке phpmyadmin в каталоге /etc/phpmyadmin отсутствует файл apache.conf, ссылка на него указана в apache2.conf, следовательно apache не стартует.. Пакет переустанавливал..

Покажите, пожалуйста, вывод команды:ls /etc/phpmyadmin

[аноним]

12.11.2011, 11:07

Здравствуйте! Хорошая статья и очень хорошо оформлена. Благодарности авторам.Я новичок в линуксе, желаю уйти от винды, пытаюсь подружиться с убунтой. Поставил всё по данной статье. PhpAdmin запускается, работает.Создал файл с расширением php, задал права 777, вставил вызов phpinfo() - запустил в мозилле, работает. А вот если вставлять php код в html, то не работает =(Добавил в страницу apache:

и на экране появляется:It works!

This is the default web page for this server.

The web server software is running but no content has been added, yet.hello "; ?>

Подскажите что надо и как настроить, что бы php код выполнялся из html страниц?

В .htaccess файле нужно прописать директиву:AddType application/x-httpd-php .html

[аноним]

13.11.2011, 10:13

Создал в корневой директории сайта файл .htaccess и внёс туда AddType - не помогло, но вот когда добавил тоже самое в apache2.conf - всё заработало (я на локальном компьютере изучаю php). Спасибо =)Хотя всё равно интересно, почему директива не отработала из файла .htaccess с правами 777.

А для чего 777? Хватит и 644. Чтобы читать файл, права на запись и исполнение не нужны. Золотое правило: "Все, что явно не разрешено - запрещено!". В директиве, в файле, где описывается виртуальный хост, пропишите AllowOverride AllУ меня это сделано так:...

Options Indexes FollowSymLinks MultiViewsAllowOverride AllOrder allow,denyallow from all

...AllowOverride - управляет уровнем доступа .htaccessЕсли не сработает, то также в apache2.conf поищите директиву AccessFileName В ней указывается имя управляющего файла. Описание директивы должно выглядеть так:AllowOverride .htaccess

[аноним]

14.11.2011, 21:48

Благодарю. Помогло.А права 777 дал потому как не получалось и, не зная в чём конкретно проблема, пытался "все ручки покрутить" =)

Ну, тогда совет на будущее - давай права на запись/исполнение тогда, когда это явно необходимо. Иначе вы компрометируете безопасность. Не за что, рад помочь ))

[аноним]

11.01.2012, 14:39

В php.ini выставить разрешение на испольозвание php в html

Ой, блин, Юра, зачем же оно спецсимволы вырезает из постов? Экранирование бы надо сделать.

[аноним]

26.02.2012, 14:43

phpmyadmin не запускаетсяПри попытке запуска http://localhost/phpmyadmin/ открывается страничка, на которой показаны файлы, хранящиеся в данной директории

[аноним]

25.03.2012, 21:34

у меня пишет Sorry, try again.

[аноним]

27.04.2012, 01:21

Здравствуйте, всё установил и у меня ошибка:phpMyAdmin - Ошибка

The mysqli extension is missing. Please check your PHP configuration. <a href="Documentation.html#faqmysql" target="documentation"><img src="./themes/pmahomme/img/b_help.png" alt="Документация" title="Документация" /></a>

Пожалуйста помогите.....

[аноним]

17.08.2012, 18:06

Классная статья!!!

[аноним]

02.09.2012, 22:20

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

[аноним]

16.09.2012, 17:48

Спасибо!!!

Предлагаю взглянуть на более лучший и бесплатный инструмент, чем phpMyAdmin - Valentina Studio 5.x, который вышел буквально пару месяцев назад. Я юзаю уже месяц – до сих пор нахожу новые фишки.http://www.valentina-db.com/valentina-studio-overview

Во-первых, какие именно там преимущества?Во-вторых, как он может быть "более бесплатным", чем совершенно бесплатный PHPMyAdmin?К тому же, как мне показалось, Valentina Studio - это клиентское приложение. А PHPMyAdmin - это набор PHP скриптов, предоставляющий WEB интерфейс для управления базами данных. То есть, совершенно разные вещи.

[аноним]

15.06.2013, 16:56

У меня apache не хочет устанавливаться вообще. Ввожу в терминале первую строчку, оно выдает: ... &amp;quot;будет отнято место на диске. Продолжить(Д/н)?&amp;quot; Я набираю д, а оно:Ош http://ua.archive.ubuntu.com/ubuntu/ natty-updates/main libapr1 i386 1.4.2-7ubuntu2.1404 Not Found [IP: 91.189.92.201 80]Ош http://ua.archive.ubuntu.com/ubuntu/ natty/main libaprutil1 i386 1.3.9+dfsg-5ubuntu3404 Not Found [IP: 91.189.92.201 80]Ош http://ua.archive.ubuntu.com/ubuntu/ natty/main libaprutil1-dbd-sqlite3 i386 1.3.9+dfsg-5ubuntu3404 Not Found [IP: 91.189.92.201 80]Ош http://ua.archive.ubuntu.com/ubuntu/ natty/main libaprutil1-ldap i386 1.3.9+dfsg-5ubuntu3Это начало того, что оно вывело. Что делать?

[аноним]

06.07.2013, 21:32

Нужно вместо "д" вводить английскую букву "y" от yes.

[аноним]

03.10.2013, 18:24

Окей, а как его удалить, не можете подсказать?:)

[аноним]

21.10.2013, 16:17

Не могу подключиться через phpmyadmin. Не знаю в чем проблема... Пишет нет такого адреса... Пробовал по этой инструкции http://sysadmin.te.ua/linux/nastrojka-apache-php-mysql-pod-ubuntu-12-04.html то же самое....

[аноним]

24.03.2014, 19:44

Статья супер. Все получилось с первого раза. Спасибо

[аноним]

05.05.2014, 18:24

аналогичная ошибка phpmyadmin не открывается 404 not Found

[аноним]

11.05.2014, 03:07

Почему после установки и попытке зайти на http://localhost/ открывается просто белая страница?

[аноним]

22.07.2014, 16:23

Что делать, я на вот этом шаге http://joxi.ru/ElfOU_3JTJD5R28FLMc нажал сразу Enter без проблеа, по запарке. Всё поставилось но localhost/phpmyadmin/ выдаёт NotFound в браузере. Хотя Apache работает http://joxi.ru/iVfOU_3JTJBxDivYZ74. Попытался удалить phpmyadmin и потом поставить занова, но повторно такого окошка с выбором сервера не выдало. Как настроить phpmyadmin чтобы он запускался нормально?

[аноним]

31.05.2015, 14:17

sudo gedit /etc/apache2/apache2.confпрописать в самомм низу Include /etc/phpmyadmin/apache.conf

[аноним]

01.03.2015, 13:44

Отличная статья! Спасибо! Но вот у меня такой вопрос: как всю эту красоту теперь можно удалить? Я тут просто понатыкал лишнего, хотел бы переустановить по-нормальному, предварительно удалив всё.

[аноним]

15.04.2015, 17:09

Спасибо друг, статья помогла!Всё чётко и ясно. Правда реализововал под Mint 17.1Но как и у многих phpmyadmin не стартовал.Сейчас всё работает, но вопрос остался - как убрать из адресной строки http://localhost/mysite.ru а нужно что бы выводилось http://mysite.ru без localhost

[аноним]

22.06.2015, 22:31

Как исправили? Тоже не стартует((

[аноним]

31.05.2015, 14:15

sudo apache2ctl status[sudo] password for авапгнор: /usr/sbin/apache2ctl: 101: /usr/sbin/apache2ctl: www-browser: not found'www-browser -dump http://localhost:80/server-status' failed.Maybe you need to install a package providing www-browser or youneed to adjust the APACHE_LYNX variable in /etc/apache2/envvarsдальше phpmyadmin сообщение not found

[аноним]

29.08.2016, 05:24

Спасибо! Сделала все, как в статье - поставилось без проблем!

[аноним]

08.03.2017, 12:56

sudo apt-get install php5 libapache2-mod-php5На ubuntu 16.10 не прокатит.Она не поддерживает php5Делайте просто через sudo apt-get install php

pingvinus.ru

LAMP (apache mysql php) | Русскоязычная документация по Ubuntu

В этой статье описана установка и настройка LAMP (Linux-Apache-MySQL-PHP) сервера на базе Ubuntu включающего Apache 2, PHP 5, и MySQL 5.0.

Установка стандартного набора LAMP

Начиная с Ubuntu 7.04 (Feisty Fawn) поумолчанию установлена полезная утилита Tasksel(англ.). Она поможет вам установить LAMP. Просто выполним команду:

sudo tasksel install lamp-server

При установке будет запрошен пароль для создания администратора БД MySQL.

Удаление LAMP

Для удаления LAMP вам придется удалить его компоненты отдельно:

apache2 apache2-mpm-prefork apache2-utils apache2.2-common libapache2-mod-php5 libapr1 libaprutil1 libdbd-mysql-perl libdbi-perl libmysqlclient15off libnet-daemon-perl libplrpc-perl libpq5 mysql-client-5.0 mysql-common mysql-server mysql-server-5.0 php5-common php5-mysql

Установка Apache 2

Если требуется установить только веб-сервер Apache 2 используйте любой метод для того, чтобы установить пакет apache2. Для того, чтобы Apache заработал его следует перезапустить:

sudo /etc/init.d/apache2 restart

Возможные ошибки

Если при запуске появляется следующая ошибкаapache2: Could not determine the server's fully qualified domain name, using 127.0.0.1 for ServerNameзапустите свой любимй текстовый редактор (например sudo nano или gksu gedit) и создайте файл /etc/apache2/conf.d/fqdn , со следующим содержанием:

ServerName localhost

Это так же можно сделать выполнив комманду:

echo "ServerName localhost" | sudo tee /etc/apache2/conf.d/fqdn

Виртуальные хосты

Apache2 позволяет создавать различные конфигурационные файлы для сайтов. Они находятся в папке /etc/apache2/sites-available. По-умолчанию создается только один сайт default, на который можно зайти введя в браузере http://localhost или http://127.0.0.1.

Директория для файлов сайта находится в /var/www. Необходимы права root для доступа к этой папке. Но вы можете изменить права на нее командой

sudo chown -R $USER:$USER /var/www

Вы также можете создать собственные сайты.

Для примера мы создадим новый сайт в папке /home/user/public_html/ :

sudo cp /etc/apache2/sites-available/default /etc/apache2/sites-available/mysite
  • Отредактируем новый конфиг-файл в текстовом редакторе выполнив в консоли sudo nano или gksudo gedit, например:

    gksudo gedit /etc/apache2/sites-available/mysite
  • Добавляем строчку с параметром ServerName. Для примера, ServerName mysite

  • Добавляем строчку с параметром ServerAlias. Для примера, ServerAlias www.mysite

  • Изменяем параметр DocumentRoot на новое месторасположение сайта. Для примера, /home/user/public_html/

  • Изменяем параметр Directory, заменив <Directory /var/www/> на <Directory /home/user/public_html/>

  • Вы можете иметь раздельные log-файлы для ваших сайтов. Для этого измените ErrorLog и CustomLog параметры.

  • Сохраняем файл.

Теперь вы можете деактивировать ваш старый сайт и включить новый. Ubuntu содержит две маленькие утилиты для помощи в этом: a2ensite (apache2enable site) и a2dissite (apache2disable site).

sudo a2dissite default && sudo a2ensite mysite

Осталось только перезапустить Apache2:

sudo /etc/init.d/apache2 restart

Если вы не создали папку /home/user/public_html/, то получите сообщение с предупреждением об этом.

Внесем имя сайта в список хостов сервера:

sudo gedit /etc/hosts

Дописать в строчку 127.0.0.1 localhost через пробел mysite www.mysite Перезапустить Apache2

sudo /etc/init.d/apache2 restart

Для проверки вашего нового сайта создайте файл в папке /home/user/public_html:

echo '<b>Hello! It is working!</b>' > /home/user/public_html/index.html

И откройте в браузере адрес http://localhost/

Установка PHP 5

Чтобы установить модуль PHP для Apache используйте любой метод для того, чтобы установить пакет libapache2-mod-php5. Включить модуль PHP 5 в Apache можно выполнив:

sudo a2enmod php5

Это создаст символическую ссылку /etc/apache2/mods-enabled/php5 указывающую на /etc/apache2/mods-availble/php5 . Если не вы используете устаревшие в PHP короткие теги <? (что крайне нерекомендуемо) вместо <?php откройте от имени суперпользователя файл /etc/php5/apache2/php.ini , найдите в нем строчку

short_open_tag = On

и замените ее на

short_open_tag = Off

Это заставит игнорировать открывающие теги <?xml в файлах, обрабатываемых PHP.

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

sudo service apache2 restart

note

Проверка PHP

В папке /var/www создайте файл test.php, дайте права на чтение из него всем (или хотя бы пользователю apache) и запишите в него следующую строку:

<?php phpinfo(); ?>

Теперь попробуйте в своем браузере перейти на страницу http://localhost/test.php. Если вы видите описание установленного PHP, значит вы все настроили правильно.

Возможные ошибки

Ваш браузер предлагает вам скачивать PHP-страницы, а не показывает вам их? Если Apache не обрабатывает PHP-страницы после того как вы ео перезапустили, попробуйте установить пакет libapache2-mod-php5 . Обычно он устанавливается вместе с пакетом php5, но он может быть удален изза конфликта пакетов, которым нужна другая версия PHP.

Если при выполнении команды sudo a2enmod php5 вы получаете в ответ

This module does not exist!

попробуйте полностью удалить пакет libapache2-mod-php5

sudo apt-get purge libapache2-mod-php5

и установить его заново.

Не забывайте очищать кеш браузера перед тем как снова тестировать свой сайт.

Помните, что Apache будет обрабатывать файл только если URI начинается с http:// . Если адрес начинается с file:// , то файл будет отображатся напрямую браузером, по этому вы увидите только CSS и (X)HTML, но не PHP. Если вы не конфигурировали виртуальные хосты, то локальный адрес будет иметь вид http://127.0.0.1 , http://localhost или http://ваш_IP.

Установка MySQL и его модулей для PHP 5

Чтобы установить MySQL используйте любой метод для того, чтобы установить пакеты mysql-server libapache2-mod-auth-mysql php5-mysql.

PhpMyAdmin

Все задачи которые требуется выполнить при момощи MySQL можно делать используя графический интерфейс программ phpmyadmin. Устанавливаем утилиту

sudo apt-get install phpmyadmin

При установке она запросит пароли которые были заданы при установке MySQL.

Зайти в него можно с адреса http://localhost/phpmyadmin/

При ошибке 404 внесите в файл /etc/apache2/apache2.conf строчку Include /etc/phpmyadmin/apache.conf

FAQ

Где лежат настройки Apache/PHP/MySQL?
ПутьОписание
/etc/mysql/my.cnfФайл настроек MySQL
/etc/apache2/apache2.confФайл настроек Apache 2
/etc/php5/apache2/php.iniФайл настроек PHP5
Как включить отображение ошибок PHP?

В используемом файле настроек php.ini, точное местоположение которого подскажет функция phpinfo() (для устанавливаемого по умолчанию Apache это /etc/php5/apache2/php.ini) за отображение ошибок отвечают следующие опции:

Ссылки

help.ubuntu.ru

linux установка apache

Apache — это веб-сервер из мира свободного ПО. Согласно данным netcraft.com, по состоянию на май 2009 года около 47 % всех сайтов работают с Apache. Если же учитывать только миллион наиболее посещаемых сайтов, то доля Apache на рынке оказывается просто баснословной — 68%. В этой главе мы лишь немного коснемся Apache.

Установка

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

В Fedora в консоли выполняется команда yum groupinstall 'Web-Server'. В SUSE в разделе YaST, отведенном для управления пакетами, выбирается Сервер ► Веб-и LAMP-сервер, а затем устанавливаются все нужные пакеты. В Ubuntu с помощью Synaptic или apt-get устанавливается пакет apache2-mpm-prefork. Вместе с ним устанавливается и несколько других зависящих от него пакетов.

Начиная с версии 2, Apache поддерживает три различных режима многопоточной работы: perchild, prefork и worker. От выбранного метода зависит, насколько эффективно Apache сможет синхронно обрабатывать несколько запросов. При установке Apache вам необходимо выбрать один из трех этих вариантов. Если вы собираетесь использовать вместе с Apache язык программирования РНР, то лучше всего выбрать prefork. При работе с другими вариантами возможны ошибки, так как их библиотеки не приспособлены к работе с потоками .

Запуск/остановка. Apache — это демон, который в некоторых дистрибутивах нужно специально запускать. Названия сценария Init-V в разных дистрибутивах могут быть различными: apache2 в Debian, SUSE и Ubuntu или httpd в Fedora и Red Hat.

Название программы и учетная запись. Названия программы, представляющей собой веб-сервер Apache, в разных дистрибутивах также различаются. По причинам, связанным с безопасностью, веб-сервер, подобно многим другим сетевым демонам, выполняется не от имени администратора, а под другой учетной записью. Чтобы узнать ее название, лучше всего выполнить ps axu. Собственные HTML-страницы. Чтобы вместо тестовой страницы на экране появилась главная страница вашего сайта, нужно сохранить HTML-файлы в каталоге документов Apache. Ваши HTML-файлы должны быть доступны для чтения с той учетной записи, под которой выполняется веб-сервер Apache!

Конфигурация

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

Ранее конфигурация Apache выполнялась в файле httpd.conf, точное местоположение которого зависело от дистрибутива. Но со временем этот конфигурационный файл становился все более путаным. Вместе с этим возрастала сложность автоматизированной технической поддержки, в частности активизации и деакти-визации плагинов.

В результате в большинстве дистрибутивов стал использоваться другой метод — настройки распределялись между несколькими файлами, а затем считыва-лись из различных каталогов с помощью команд include. Такой метод позволяет сделать отдельные файлы более понятными, но сама система становится совсем запутанной. Кроме того, становится практически невозможно перенести настройки одного дистрибутива в другой. Если вы ищете в конфигурационных файлах определенное ключевое слово, то лучше всего действовать так:

user$ cd /etc/httpd (или) cd /etc/apache2 user$ find -type f -exec grep -i -q ключевоеслово -print

В Debian/Ubuntu в каталоге mods-available содержится коллекция файлов *.load и *.conf для различных модулей Apache. Для активизации других модулей создайте в mods-enabled ссылки на эти файлы. При управлении ссылками в Debian вам пригодятся специфичные для этого дистрибутива команды a2enmod и a2dismod. В дальнейшем вы сможете активизировать и деактивизировать виртуальные хосты с помощью команд a2ensite и a2dissite. По умолчанию в sites-available содержится только файл default: он конфигурирует стандартную веб-страницу сервера (каталог / var/www), а кроме того, содержит разнообразные базовые настройки для протоколирования ошибок и обращений к страницам.

Механизм работы такой же, как и с модулями: в каталоге sites-available содержатся все конфигурационные файлы для всех хостов, а в sites-enabled находятся соответствующие ссылки.

В SUSE все CONF-файлы из каталога sysconf.d при каждом запуске Apache создаются сценарием Init-V /etc/init.d/apache2 заново! По этой причине вносить изменения в эти файлы бессмысленно. Напротив, вам следует изменить переменные, находящиеся в /etc/sysconfig/apache2. Кроме того, в данном файле определяется, какие модули должны загружаться при запуске Apache (переменная APACHE MODULES). Если хотите добавить к конфигурационным файлам SUSE собственный файл, укажите его название в переменной APACHE_CONF_INCLUDE_FILES.

Тестирование конфигурации

Изменив синтаксис, с помощью команд httpd -t, httpd2 -tnnnapache2 -t вы можете проверить, нет ли в конфигурации синтаксических ошибок. В Debian и Ubuntu сначала нужно считать из файла envvars некоторые переменные окружения:root# . /etc/apache2/envvars root# apache2 -t Syntax OK

После этого прикажите Apache заново считать конфигурационные файлы:

root# /etc/init.d/имя_1пН-сценария reload

Переменная ServerName

Обычно веб-сервер Apache запускается сразу. Но в зависимости от настроек конкретной сети вам потребуется изменить или добавить в конфигурационных файлах как минимум одну строку: переменная ServerName должна содержать имя вашего компьютера. Если эта настройка не подействует, укажите UseCanonicalName Off.

<code> # в /etc/apache2/httpd.conf (Debian/<a href="http://www.modx.cc/linux/zapusk-sistemyi-ubuntu/">Ubuntu</a>) # или /etc/httpd/conf/httpd.conf (<a href="http://www.modx.cc/linux/zapusk-sistemyi-v-fedora/">Fedora</a>/Red Hat) ServerName mars.sol # здесь укажите имя вашего компьютера</code>

В SUSE имя компьютера записывается в файле /etc/sysconfig/apache2 в переменной APACHE_SERVERNAME.

Стандартная кодировка

Во всех распространенных дистрибутивах Linux автоматически применяется кодировка Unicode UTF-8. Иначе говоря, если вы создаете в текстовом редакторе новый текстовый файл, в котором есть специальные символы, например немецкие буквыа, б, и илиВ, они сохраняются в кодировке UTF-8.

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

Настройка кодировки. Теперь Apache должен правильно указать кодировку. Если этого не получится сделать, пользователь увидит у себя в браузере неа или й, а какие-нибудь причудливые комбинации символов. Во избежание такого в Apache предусмотрена возможность настройки конфигурации кодировки. О AddDefaultCharset off — при такой настройке Apache интерпретирует МЕТА-тег передаваемого HTML-файла и сообщает браузеру, какая кодировка указана в этом теге. Если файл HTML начинается так, как это показано ниже, то применяется кодировка Unicode UTF-8:

<code><!D0CTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> <html><head> <meta http-equiv="Content-Type" content="text/htm!:charset=utf-8" /> </code> AddDefaultCharset charset — Apache сообщает указанную здесь кодировку всем страницам браузера. Настройка действует для HTML- и PHP-файлов. МЕТА-тег в HTML-коде игнорируется. О AddDefaultCharset charset extension—так настраивается кодировка для файлов, имеющих определенное расширение. Если указать AddCharset utf-8 .utf8, то все файлы, название которых заканчивается на .utf8, будут посланы в браузер в кодировке Unicode UTF-8. Для работы AddCharset требуется модуль Apache mod_mime, который по умолчанию активен во всех дистрибутивах.

Debian, Ubuntu. Разумеется, стандартная конфигурация в разных дистрибутивах неодинакова. Для глобальной настройки кодировки в Ubuntu предусмотрен конфигурационный файл /etc/apache2/conf.d/charset. По умолчанию он пуст, то есть действует AddDefaultCharset off.

Кроме того, AddDefaultCharset и AddCharset можно использовать в конфигурационных файлах для виртуальных хостов (каталог sites-available), а также в файлах. htaccess, если вам нужна особая конфигурация отдельно взятого хоста или каталога. Но не забывайте, что настройки кодировки, указываемые в .htaccess, учитываются лишь в тех случаях, когда для веб-каталога задан параметр AHowOverride АН или FileInfo.

Fedora, Red Hat. В Fedora и Red Hat также может применяться AddDefaultCharset UTF-8. Эта настройка находится в файле /etc/httpd/conf/httpd.conf. В том же файле находится настройка AHowOverride None для каталога /var/www/html.

В SUSE отсутствуют особые функции для задания кодировки в конфигурационных файлах. Таким образом, действует AddDefaultCharset off, то есть кодировка определяется только по данным, указанным в МЕТА-теге HTML-файла. Для настройки AddDefaultCharset хорошо подходит файл /etc/apache2/mod_mime-defaults.conf.

Кроме того, в SUSE действует AllowOvern'de None для каталога /srv/www/htdocs. Эту настройкуможно изменить в файле /etc/apache2/default-server.conf.

Обеспечение безопасности при работе дома или внутри организации

Если вы собираетесь использовать Apache только в рамках отдельно взятой фирмы или в локальной сети, то вам потребуется запретить доступ к серверу извне. Это можно сделать, используя брандмауэр (см. главу 18) либо изменив несколько строк в конфигурационных файлах.

. В принципе управление доступом к отдельным веб-каталогам происходит в разделах конфигурационных файлов (как обычно, их расположение различается от дистрибутива к дистрибутиву). При этом, если имеются настройки для корневого каталога, все остальные каталоги соблюдают их по умолчанию. Затем в иных разделах для конкретных каталогов могут быть указаны и другие настройки, отличающиеся от стандартных. Из следующего примера должно быть понятно, каковы значения ключевых слов Order, Deny и Allow.

Приведенный далее код действует так, что все веб-страницы, находящиеся в стандартном каталоге, могут быть запрошены только страницами, расположенными в локальной сети. Кроме того, перестают работать символьные ссылки, так как они зачастую серьезно угрожают безопасности сети (обратите внимание, что deny.allow указывается без пробела!). Действующие строгие правила немного смягчаются для каталога /var/www/html/public. Благодаря параметру Indexes в браузере отображается список файлов, находящихся в том или ином каталоге, если в нем отсутствует файл index.html.

<code># Более надежная стандартная конфигурация, задаваемая для всего дерева каталогов «Directory /> Options None # Без параметров AllowOvern'de None # .htdocs не оказывает никакого влияния Order deny.allow # Сначала запретить, затем разрешить Deny from all # Запретить все, но... Allow from 192.168.0.0/8 # Доступ из локальной сети Allow from .sol # Разрешить доступ из локальной сети Allow from localhost # Доступ для localhost </Directory> # Разрешить доступ к Интернету на http://<site>/public (для <a href="http://www.modx.cc/linux/zapusk-sistemyi-v-fedora/">Fedora</a>/Red Hat) «Directory "/var/www/htm!/public"> Options Indexes FollowSymLinks Order allow.deny Allow from all # Свободный доступ для всех! </Directory></code>

Защита веб-каталогов паролем

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

Такой метод может применяться в тех случаях, когда у вас на сайте есть несколько административных страниц (например, PhpMyAdmin для администрирования MySQL. Неважно, где вы (администратор MySQL) сейчас находитесь, — если хотите, то можете получить доступ к этой странице. Одновременно следует исключить возможность выхода обычных пользователей на административные страницы.

Файл с паролем

Для решения таких проблем каталог необходимо защитить с помощью файла с паролем. По возможности файл с паролем нужно сохранять за пределами веб-каталога, чтобы исключить доступ к этому файлу по адресу servername/verzeichnis/ password-file. В следующем примере предполагается, что файл с паролем сохранен в каталоге /private.

Для создания нового файла с паролем используйте команду htpasswd (htpasswd2 в SUSE) с параметром -c (create). Пароль, разумеется, зашифровывается:

<code>user$ cd /private user$ htpasswd -c passwords.pwd имяпользователя New password: ******** Re-type new password: ******** Adding password for user username Остальные пары логин/пароль добавляются командой htpasswd без параметра -c. user$ cd /private user$ htpasswd passwords.pwd имя2 New password: ******** Re-type new password: ******** Adding password for user username </code>

ПРИМЕЧАНИЕ

He забудьте дать Apache право чтения файла с паролем и каталога, в котором этот файл находится! Из соображений безопасности Apache работает не под учетной записью администратора, а под другой учетной записью (www-date в Debian и Ubuntu, apache в Fedora и Red Hat, wwwrun в SUSE). Если ваш компьютер защищен SELinux или AppArmor, то правила этих систем безопасности также не должны мешать доступу сервера к файлу с паролем.

Существует два варианта конфигурации Apache, при которых пароли действительно учитываются. При использовании первого варианта требуется изменить центральные конфигурационные файлы (httpd.conf и пр.). Второй вариант предусматривает конфигурацию в файле .htaccess, находящемся внутри веб-каталога.

Файл httpd.conf

Чтобы Apache учитывал файл с паролем, нужно вставить защищаемый паролем каталог в httpd.conf в виде отдельного раздела . В следующем примере показано, как это делается:

<code># Каталог, защищенный паролем «Directory "/var/www/html/admin/"> AuthType Basic AuthUserFile /pn'vate/passwords.pwd AuthName "admin" Require valid-user # Другие параметры, если они требуются </Directory> </code> Параметр AuthName обозначает область, в которую разрешен доступ. Смысл в том, что вам не требуется каждый раз заново входить в систему, если вы хотите получить доступ к разным каталогам, которые защищены одним и тем же паролем. Если вы вошли в систему с определенным обозначением AuthName, то имеете доступ и ко всем остальным каталогам с таким же AuthName.

Настройка Require valid-user означает, что для входа в систему может применяться любое действующее сочетание имени пользователя и пароля. Вы также можете здесь указать, что вход в систему разрешен только определенному пользователю:

Require user имя! имя2 Файлы .htaccess Описанный выше процесс можно осуществить лишь в том случае, если у вас есть доступ к центральным конфигурационным файлам Apache, то есть если вы сами являетесь администратором сети. Если вы не администратор, то можете обеспечить не менее надежную защиту с помощью файла .htaccess, который находится в каталоге, защищенном паролем. В этом файле должны быть указаны те же команды, что и в группе , то есть AuthType, AuthUserFile, AuthName и Require.

Обратите внимание — файл .htaccess учитывается лишь при условии, что в httpd.conf в группе данного каталога допускается изменение информации, связанной с аутентификацией (вместо AllowOvern'de AuthConfig также может быть указано AllowOvern'de АН). На веб-серверах, где отдельные пользователи отвечают за собственные сетевые каталоги, это условие обычно выполняется.

<code># Каталог, который можно защитить с помощью .htaccess «Directory "/var/www/htm!/admin/"> AllowOvern'de AuthConfig # Другие параметры, если они требуются </Directory></code>Читайте так же:PHP

modx.cc

Установка Apache2 + PHP на сервере Linux

В этой статье я приведу пример пошаговой установки с нуля веб сервера Apache2 и PHP на сервере c ОС Linux OpenSUSE 11магнет: openSUSE_11.3_DVD_x86_64.iso (4,18 ГБ)

1. Установка и настройка ApacheНет особой разницы, каким образом вы установите Apache, через консоль, или же через приложение “Установка программ”. Выбрал второй вариант т.к. считаю, что умная программа это сделает быстрее и правильне, чем делал бы я это вручную, из командной строки.

После установки Apache2 можно приступить к его начальному конфигурированию.Открываем консоль и переключаем пользователя на рута

Теперь следует проверить, не запущен ли apache.

В статусном сообщении должно красоваться значение unused. В противном случае необходимо усыпить apache командой:

Теперь можно приступать к редактированию конфигов.

Конфиг /etc/sysconfig/apache2В нем нужно внести изменения лишь в 2х директивах:1. APACHE_SERVERNAME="localhost:80"2. APACHE_MODULES В этой директиве перечислены через запятую модули, подключаемые при старте apache. Пришлось удалить от туда perl из-за его отсутсвия и ненадобности. И важно добавить туда rewrite и php5.

Получилась такая портянка:APACHE_MODULES="actions alias auth_basic authn_file authz_host authz_groupfile authz_default authz_user autoindex cgi dir env expires include log_config mime negotiation setenvif ssl userdir rewrite php5"

После внесения описанных выше изменений можно сохранять конфигурационный файл и проводить тестовый запуск apache на “орбиту”.

В ответ должны увидеть такую строчку:

Starting httpd2 (worker) <strong> <span>done</span></strong>

Starting httpd2 (worker) <strong> <span>done</span></strong>

Если там выпало что-то лишнее, то значит не все проблемы решены, и чтобы продолжать дальше необходимо перво-наперво внимательно изучить “артефакт” и выполнить соответствующие действия.

Итак, если apache успешно запустился, то можно продолжать дальше.

Следующий шаг в настройке apache – создание виртуального хоста test.locЧтобы создать виртуальный хост, достаточно создать в директории /etc/apache2/vhosts.d его конфигурационный файл и директорию для рабочих файлов будущего сайта.Начнем с директорий:

md /srv/www/vhosts/test.loc

md /srv/www/vhosts/test.loc

После создания директории, необходимо установить ей права на доступ группе wwwrun

chown wwwrun /srv/www/vhosts/test.loc

chown wwwrun /srv/www/vhosts/test.loc

Теперь можно приступать к оформлению конфига, и для это создаем его:

touch /etc/apache2/vhosts.d/test.loc.conf

touch /etc/apache2/vhosts.d/test.loc.conf

Вот что там должно быть:

#test.loc <VirtualHost *:80> ServerAdmin [email protected] ServerName test.loc DocumentRoot /srv/www/vhosts/test.loc # if not specified, the global error log is used # ErrorLog /var/log/apache2/test.loc-error_log # CustomLog /var/log/apache2/test.loc-access_log combined ScriptAlias /cgi-bin/ "/srv/www/vhosts/test.loc/cgi-bin/" <Directory "/srv/www/vhosts/test.loc"> AllowOverride All Options +FollowSymlinks -Includes AllowOverride All Allow from all </Directory> </VirtualHost>

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

#test.loc

<VirtualHost *:80>

ServerAdmin [email protected]

ServerName test.loc

 

DocumentRoot /srv/www/vhosts/test.loc

 

# if not specified, the global error log is used

# ErrorLog /var/log/apache2/test.loc-error_log

# CustomLog /var/log/apache2/test.loc-access_log combined

 

ScriptAlias /cgi-bin/ "/srv/www/vhosts/test.loc/cgi-bin/"

 

<Directory "/srv/www/vhosts/test.loc">

AllowOverride All

Options +FollowSymlinks -Includes

AllowOverride All

Allow from all

</Directory>

 

</VirtualHost>

На этом оформление конфига заканчивается.

Конфиг /etc/apache2/httpd.confДиректива DirectoryIndex должна иметь следующий вид:

DirectoryIndex index.html index.php index.htm index.shtm index.shtml index.pl index.cgi default.htm default.html default.php

DirectoryIndex index.html index.php index.htm index.shtm index.shtml

index.pl index.cgi default.htm default.html default.php

Необходимо добавить пару типов перед :

AddType application/x-httpd-php .php AddType application/x-httpd-php-source .phps

AddType application/x-httpd-php .php

AddType application/x-httpd-php-source .phps

Все. На этом настройка “индейца” окончена.

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

Вот так должен выглядеть результат перезапуска:

Syntax OK Shutting down httpd2 (waiting for all children to terminate) <strong><span>done</span></strong> Starting httpd2 (worker) <strong><span>done</span></strong>

Syntax OK

Shutting down httpd2 (waiting for all children to terminate)  <strong><span>done</span></strong>

Starting httpd2 (worker)  <strong><span>done</span></strong>

Это означает, что apache успешно запущен с нашими настройками.Поскольку название тестового виртуального хоста для нашего сайта test.loc, то необходимо сообщить об этом местному “dns серверу”.Для этого открываем файл /etc/hosts и вставляем в конец, или где вам удобнее, такую строчку:

127.0.0.1 test.loc

127.0.0.1         test.loc

Теперь, если перейдете в браузере на адрес http://test.loc/, то увидите сообщение 403 Forbidden. Что означает, что ваш веб сервер функционирует, а index.html с главной страницей сайта не найден.

Страницу мы создадим чуть позже.Сейчас настало время ставить php.

2. Установка и настройка PHP

Выполняем установку свежей версии PHP через “Установка прогшрамм” или zypper или как вам больше нравится. Я это делал через “Установка программ”.На момент написания этой статьи последняя версия в репозитарии была 5.3.3

После, надо установить модуль apache2-mod_php5 аналогичным образом.Когда все необходимые модули установлены, можно приступать к настройке PHP.

Файл настроек находится тут: /etc/php5/apache2/php.iniВ этом конфигурационном файле необходимо найти и проставить настройки следующим образом:

short_open_tag = On error_reporting = E_ALL & ~E_DEPRECATED & ~E_NOTICE display_errors = On register_globals = Off post_max_size = 128M upload_max_filesize = 128M date.timezone = "Asia/Vladivostok"

short_open_tag = On

error_reporting = E_ALL & ~E_DEPRECATED & ~E_NOTICE

display_errors = On

register_globals = Off

post_max_size = 128M

upload_max_filesize = 128M

date.timezone = "Asia/Vladivostok"

На этом этап настроек можно счить оконченым.Осталось перезапустить apache и создать тестовые файлы в директории web сервера /srv/www/vhosts/test.loc

Файл index.html:

<html> <a href="/phpinfo.php">PHP info</a> </html>

<html>

<a href="/phpinfo.php">PHP info</a>

</html>

Файл phpinfo.php:

После создания этих файлов, протестируем наш сервер.Заходим на страничку http://test.loc/И переходим по ссылке PHP infoНа странице должна появиться большая таблица с версией PHP и его параметрами.То что мы видим эту таблицу, говорит о том, что операция установки настройки web сервера apache и PHP успешно произведена.

Просмотров : 5204

Похожие публикации:

blog.lineradio.ru