Как убедиться в работоспособности связки apache php в браузере
В этой статье мы приведем краткий обзор этапов настройки Apache в среде Windows , а также ссылки на различные дополнительные ресурсы.
Предупреждение
Если на вашем компьютере уже установлен один из вариантов AMP :
- Впоследствии вам будет затруднительно вернуться к старой версии AMP . Потому что различные настройки, которые мы будем задавать, перепишут значения реестра и приведут к изменению среды в целом;
- Если вам нужно сохранить какие-либо конфигурации ( Apache , PHP , MySQL ) или данные, прежде чем выполнять шаги, описанные в этой инструкции, создайте все необходимые резервные копии.
Настройка MySQL
Примечание
Чтобы сделать эту инструкцию максимально доступной, мы пропустили несколько сценариев конфигурации сервера MySQL для Apache Windows 7 . Это и многое другое изложено здесь .
По умолчанию MySQL устанавливается с режимом STRICT , который может привести к возникновению некоторых ошибок при использовании расширений и приложений, не рассматриваемых в данной инструкции. Для получения дополнительной информации обратитесь к этому ресурсу.
Настройка Apache
- Загрузите инсталляционный пакет. На данный момент предпочтительно использовать версию 2.2;
- Запустите мастер установки и выполните все этапы, пока не дойдете до шага « Информация о сервере ». Здесь задайте для каждого из полей приведенные ниже значения, если у вас нет конкретных требований для настройки сервера Apache :
1. localhost
2. localhost
3. admin@localhost
Ресурсы
Настройка PHP
Скачайте PHP и выберите предпочтительную версию в формате Zip . Различные настраиваемые опции связаны с тем, как PHP-код базы компилируется в двоичный код, и вам ничего не нужно изменять.
Создайте в папке, где у вас устанавливаются программные файлы, директорию под названием PHP .
Найдите загруженный Zip-файл , переместите его во вновь созданную папку и распакуйте архив.
Теперь добавим путь к PHP к глобальной переменной PATH . Для этого следуйте инструкциям, приведенным выше.
Конфигурирование PHP
Конфигурирование PHP сводится к редактированию файла php.ini . Пример файла для различных сценариев уже находятся в вашей папке PHP . Переименуйте файл php.ini-development в php.ini и откройте его в текстовом редакторе. Доступные значения для различных параметров задокументированы в файле php.ini ( обратите внимание, что это общие настройки для сервера, применяемые для всех проектов ):
- max_execution_time - если у вас есть скрипты, которые выполняются слишком долго, и сервер возвращает различные неожиданные результаты, потому что не может выполнить весь процесс;
- memory_limit ;
- error_reporting ;
- display_errors ;
- log_errors - переменная, на которую нужно обращать внимание при сценариях разработки;
- upload_tmp_dir ;
- upload_max_filesize ;
- extension_dir - чтобы не усложнять все, мы укажем папку, в которой расположены следующие расширения, вынеся эту переменную из комментариев и задав для нее абсолютный путь к этой папке. Вся строка должна выглядеть следующим образом:
- Динамические расширения содержат дополнительные модули, которые можно загрузить вместе с PHP . В файле вы найдете закомментированные названия модулей, которые были добавлены в пакете с PHP ( директория ext ). Если вы хотите, активировать какой-либо из этих модулей, выведите из комментариев одно из следующих имен расширений:
- php_curl.dll ;
- php_gd2.dll ;
- php_mbstring.dll ;
- php_mysql.dll ;
- php_mysqli.dll ;
- php_pdo.dll ;
- php_pdo_mysql.dll ;
- php_xsl.dll ;
- session.save_path .
Настройка Apache для работы с PHP
Для настройки PHP в Apache откройте файл httpd.conf. и в разделе " Dynamic Shared Object (DSO) Support " добавьте следующие директивы ( если вы разместили папку PHP в другом месте, внесите соответствующие изменения для пути к файлу php5apache2_2.dll ):
Для DirectoryIndex добавьте index.php и index.htm в качестве возможных файлов, если запрашивается каталог. Это делается следующим образом:
В конце файла добавьте следующую строку, которая будет указывать, где размещается файл php.ini :
Перезагрузка и тестирование PHP
После внесения изменений в конфигурационные файлы вам необходимо перезапустить Apache , чтобы изменения вступили в действие. Поэтому давайте перезапустим Apache с помощью инструмента Apache Monitor , который можно найти в строке состояния Windows .
Теперь мы протестируем, как работает PHP . Перейдите в корневой каталог документов веб-сервера ( по умолчанию это C:Program FilesApache Software FoundationApache2.2htdocs ) и добавьте файл с именем phpinfo.php со следующим содержимым:
Установка и настройка XDebug
Пакет установки Apache Php MySQL в Windows 7 будет неполным без Xdebug . На этой странице вы сможете найти актуальную версию Xdebug .
Скопируйте всю страницу phpinfo , которую мы запустили ранее и вставьте ее в текстовое поле, после этого следуйте инструкциям по установке.
Данное описание подходит для любой редакции Windows 7/8/8.1.
Установка веб-сервера Apache
Извлекаем из него папку Apache24 в раздел диска C:\
Далее нам необходимо установить Apache используя командную строку. Нажимаем Пуск → Выполнить, вводим команду cmd и нажимаем OK. У нас должно открыться окно командной строки
Если при выполнении программы у вас возникает следующая ошибка: failed to open the winnt service manager perhaps you forgot to log in as administrator, заходим в следующую папку: C:\Users\Здесь_имя_вашего_пользователя\AppData\Roaming\Microsoft\Windows\Start Menu\Programs\System Tools, запускаем командную строку от имени администратора
И повторяем команду установки.
Установка завершена. Откройте директорию bin (полный путь: C:\Apache24\bin\) и запустите файл: ApacheMonitor.exe. В системном трее появится значок Apache, с помощью которого можно быстро запускать/останавливать службу Apache, жмем start (запуск):
Установка PHP (ручная)
Нужен ли нам Apache без PHP? Конечно нет, это нонсенс! Поэтому далее мы рассмотрим ручную (без использования инсталлятора) установку PHP.
Содержимое архива распаковываем в директорию C:\PHP (папку PHP создаём сами). Далее в папке C:\PHP находим два файла php.ini-development и php.ini-production. Эти файлы содержат базовые настройки. Первый файл оптимизирован для разработчиков, второй для рабочих систем. Основная разница в настройках: для разработчиков разрешен вывод на экран ошибок, тогда как для рабочих систем вывод ошибок запрещен из соображений безопасности.
Продолжаем установку. И так, выбираем нужный вам файл (я выбрал php.ini-development). Выбранный файл нужно будет просто немного переименовать. Правый клик по файлу → Переименовать → стираем «-development», оставляя только php.ini
Теперь открываем php.ini, нам необходимо внести несколько изменений (будьте внимательны при внесении изменений, если в начале строки стоит точка с запятой, ее надо будет убрать):
- Найти опцию extension_dir (строка 721) и изменить путь к папке ext в соответствии с путем установки PHP. У меня это выглядит так:
extension_dir = "C:\PHP\ext" - Найти опцию upload_tmp_dir (строка 791). Здесь надо указать путь к временной папке. Я выбрал c:\windows\temp. Всё вместе:
upload_tmp_dir = "C:\Windows\Temp" - Найти опцию session.save_path (строка 1369). Здесь также требуется указать путь к временной папке:
session.save_path = "C:\Windows\Temp" - В разделе Dynamic Extensions необходимо раскомментировать несколько строк (убрать точку с запятой в начале), соответствующих модулям PHP, которые могут понадобиться для работы: 866, 873, 874, 876, 886, 895, 900
Сохраняем изменения и закрываем.
Переходим в конец файла и в самом низу добавляем следующие строчки:
Путь к папке php указываете тот, который вы выбрали в процессе установки (если вы устанавливали в другую директорию).
В этом же файле находим следующие строки (строки примерно 274-276):
Перед index.html дописываем через пробел index.php. В итоге получается:
Чтобы изменения вступили в силу, перезапускаем службу Apache (значок в трее - Apache monitor). Если служба перезапустится - это хороший знак. Если нет (выскочит ошибка) - ищите ошибки в конфигурационных файлах. Особенно внимательно проверьте все пути.
Чтобы нам убедиться в работоспособности PHP, откройте папку C:\Apache24\htdocs (здесь содержатся файлы веб-сайта по умолчанию). Создайте в этой папке файл index.php со следующим содержанием:
Если у вас вместо страницы с инфомацией о php открылась страница с надписью «It works!», тогда просто нажмите обновить страницу.
Установка MySQL
Запускаем установщик, после небольшой загрузки видим следующее окно:
Нажимаем Install MySQL Products, появляется следующее окно, в котором мы принимаем лицензионное соглашение (ставим галочку) и жмем Next >
Следующее окно нам предлагает проверить, есть ли более новая версия MySQL, ставим галочку Skip. (пропустить) и нажимаем Next >
В следующем окне нам предлагают выбрать тип установки, выбираем Custom и жмем Next >:
В следующем окне нам предоставляется возможность выбратьнеобходимые компоненты: убираем галочку с MySQL Connectors, в Application убираем галочку с MySQL Workbench CE 6.0.8 и MySQL Notifier 1.1.5, в MySQL Server 5.6.16 убираем галочки с Development Components и Client C API library (shared) и жмем Next >
Далее нам пишут, что ничего дополнительно нам устанавливать не нужно и мы можем приступить к установке, просто жмем Next >
Следующее окно нам сообщает что именно будет установлено, просто нажимаем Execute
После успешной установки жмем Next >
Вследующем окно нам сообщается о том, что далее мы немного настроим наш сервер, жмем Next >
В первом окне настрокйки, устанавливаем галочку Show Advanced Options, остальное оставляем как есть и жмем Next >
В следующем окне нам предлагается установить пароль администратора (root). Этот пароль лучше не терять! Устанавливаем пароль и жмем Next >
В следующем окне стираем в поле ввода цифры 56, остальное оставляем как есть и жмем Next >
Осталось проверить успешно ли прошла установка. (win 8): Заходим в меню пуск → переходим к приложениям (стрелочка вниз) → находим MySQL5.6 Command Line Client (терминал для работы с MySQL в командной строке) → открываем его. Далее вводим пароль администратора (root). Если пароль правильный, вы попадете в командную строку ( mysql> ). Введите команду: show databases; (точка с запятой на конце обязательна). В результате вы должны увидеть список баз данных (как минимум две - information_schema и mysql). Это означает, что сервер работает правильно. Закрываем командную строку выполнив команду exit.
Установка и базовая настройка phpMyAdmin
Теперь, чтобы настроить параметры подключения к MySQL, нажимаем на кнопку «Новый сервер», нам открывается новое окно, в графе «Хост сервера» localhost необходимо заменить на 127.0.0.1:
Полученный файл (config.inc.php) сохраняем в корень установки phpMyAdmin (C:\Apache24\htdocs\phpmyadmin). Закрываем страницу, она нам больше не понадобится.
Устанавливаем Apache2 + PHP5 + MySQL + phpMyAdmin
Прежде чем выносить свое Web-приложение в интернет его надо разработать. Лучше всего делать это локально, установив необходимое программное обеспечение на своем компьютере. Так вы сможете создавать и тестировать ваше приложение без доступа к Интернету.
- Beб-cepвep (в нашем случае Apache)
- Язык программирования, работающий на стороне сервера (в нашем случае PHP)
- Cepвep баз данных (в нашем случае MySQL).
Рассмотрим, как установить и настроить связку Apache, PHP и MySQL:
Установка и проверка работоспособности Web-сервера Apache
Для установки сервера Apache в Debian используем команду apt-get:
Чтобы убедиться в том, что сервер установлен на вашей машине, в строке браузера набираем:
Если все OK в ответ получаем нечто вроде этого: » It works! This is the default web page for this server. The web server software is running but no content has been added, yet.»
Если необходимо, после установки Apache можно перейти к настройке виртуальных хостов
Установка и проверка работоспособности PHP
- С помощью apt-get устанавливаем необходимые файлы:
3. Проверяем работоспособность PHP. Для этого создаем тестовый файл в директории, в которой находятся html файлы localhost (допустим, это директория /var/www):
и запускаем его в браузере:
Если все OK, вы увидите таблицу с информацией о текущем статусе PHP
Устанавливаем и проверяем работоспособность MySQL
Для установки mysql вводим команду:
После завершения установки MySQL необходимо выполнить сценарий mysql_secure_installation. Для этого в окне терминала пишем команду:
- Сценарий сразу запросит пароль от учетной записи «root», который был задан во время установки. Вводим пароль и жмем клавишу “Enter”.
- Если пароль был введен правильно, сценарий предложит его сменить.
- Следующим вопросом будет предложение на удаление анонимных пользователей. На боевом хостинге они не нужны, поэтому соглашаемся (вводим в терминале “Y”).
- Далее сценарий предложит заблокировать root пользователю возможность подключаться с удаленных хостов. Для безопасности это очень хорошо, поэтому соглашаемся. Пользователь с полными правами должен подключаться к серверу баз данных только локально. Вводим «Y» и жмем клавишу «Enter».
- В очередном вопросе мастер предложит удалить тестовые базы. Они нам не нужны, поэтому соглашаемся.
- Последний вопрос будет связан с разрешение перезагрузки таблицы привилегий. Соглашаемся, и все наши ответы на предыдущие вопросы немедленно вступят в силу.
Далее попробуем поработать в терминале с MySQL. Для входа в MySQL вводим команду:
после этого mysql запросит пароль root-пользователя. После этого в терминале появится приглашение:
Далее можно вводить команды, запросы (не забываем, что mysql — СУБД, поэтому язык SQL-запросов в нашем распоряжении). Например, чтобы посмотреть имеющиеся базы данных, вводим команду:
Просмотреть таблицы в базе данных mysql можно так:
Среди прочих таблиц, там есть таблица user, которая содержит учетные записи пользователей. Просмотреть ее содержимое можно с помощью запроса:
Не забываем ставить точку с запятой в конце каждого запроса!
Для выхода задаем команду
На этом шаге можешь считать, что WEB-сервер на Debian 7 полностью готов к работе. Ключевые компоненты установлены и готовы обслуживать толпы клиентов. Для полного счастья не хватает FTP доступа и удобной панели управления базами данных.
Установка и настройка phpMyAdmin
Для тех, кто предпочитает графическую оболочку для работы с базами данных, можно установить phpMyAdmin.
ВАЖНО:
необходимо иметь в виду некоторые вопросы безопасности при использовании phpMyAdmin, поскольку он:
- Напрямую взаимодействует с MySQL.
- Выполняет аутентификацию использую логин и пароль MySQL.
- Выполняет и возвращает результаты произвольных запросов SQL.
Учли все вышесказанное? — тогда вперед!
Устанавливаем phpmyadmin как обычно:
В процессе установки будут заданы несколько вопросов — ЧИТАЕМ их и отвечаем (Apache, Yes, пароль пользователя root MySQL-сервера, новый пароль посложнее для доступа в phpMyAdmin).
Установка phpMyAdmin завершена. Чтобы протестировать этот инструмент в работе, необходимо добавить phpMyAdmin к конфигурации Apache.
Добавляем phpMyAdmin к конфигурации Apache
Для этого открываем конфигурационный файл Apache:
Перемещаемся в его конец и добавляем строчку для подключения phpMyAdmin:
Сохраняем изменения и перезагружаем Apache (service apache2 restart)
Проверяем работоспособность phpMySql
В браузере переходим по ссылке
Открылась страница входа — значит все OK!
Защищаем phpMyAdmin
Проще всего это сделать с помощью установки дополнительной аутентификации на уровне web-сервера. При обращении к директории, в которой установлен phpMyAdmin, web-сервер будет запрашивать связку логин/пароль. Неправильный ввод данных на этом уровне не позволит злоумышленнику получить доступ к странице ввода учетных данных phpMyAdmin. Пробить такую защиту тоже можно, но сделать это будет намного сложней.
-
Настроим авторизацию на уровне Apache
Сначала откроем конфигурационный файл phpMyAdmin, который используется с Apache:
Находим в файле блок «» и дописываем директиву «AllowOverride All». Отредактированный блок в итоге должен выглядеть так:
Options FollowSymLinks
DirectoryIndex index.php
//Остальной текст оставляем как есть
AllowOverride All
Прописываем в этом файле необходимость авторизации на уровне web-сервера:
AuthType Basic
AuthName «Авторизация на уровне Apache»
AuthUserFile /home/.htpasswd
Require valid-user
В конфигурационном файле использовались следующие директивы:
- AuthType – директива определяет тип идентификации пользователя.
- AuthName – директива используется совместно с предыдущей. В ней пишем текст, который будет отображаться в диалоге запроса логина/пароля. Значением директивы может быть абсолютно любой текст.
- AuthUserFile – значением директивы выступает путь к файлу, содержащий информацию о пользователях и их паролях, которые могут получить доступ к закрытому ресурсу. На данном этапе этого файла нет, мы создадим его чуть позже.
- Require – директива позволяет определить принцип аутентификации. Она может принимать несколько значений (например, мы можем перечислить пользователей или группы пользователей, которые могут получать доступ к закрытому ресурсу). Значение Valid-user подразумевает, что получить доступ к закрытому ресурсу могут получить все пользователи, доступные в файле AuthUserFile.
Имя пользователя выбираем любое, с системными пользователями оно не переплетается. Утилита htpasswd запросит пароль для нового пользователя. Придумываем пароль и после завершения создания пользователя перезапускаем apache:
Проверяем авторизацию на уровне web-сервера
Попробуем обратиться к phpMyAdmin. Если все описанные выше манипуляции были проделаны правильно, то страница входа phpMyAdmin сразу будет недоступна. Вместо нее появится окно с запросом имени пользователя и пароля. Вводим данные, которые мы указали утилите htpasswd и только после этого попадаем на страницу входа в phpMyAdmin.
Устанавливаем Apache2 + PHP5 + MySQL + phpMyAdmin
Прежде чем выносить свое Web-приложение в интернет его надо разработать. Лучше всего делать это локально, установив необходимое программное обеспечение на своем компьютере. Так вы сможете создавать и тестировать ваше приложение без доступа к Интернету.
- Beб-cepвep (в нашем случае Apache)
- Язык программирования, работающий на стороне сервера (в нашем случае PHP)
- Cepвep баз данных (в нашем случае MySQL).
Рассмотрим, как установить и настроить связку Apache, PHP и MySQL:
Установка и проверка работоспособности Web-сервера Apache
Для установки сервера Apache в Debian используем команду apt-get:
Чтобы убедиться в том, что сервер установлен на вашей машине, в строке браузера набираем:
Если все OK в ответ получаем нечто вроде этого: » It works! This is the default web page for this server. The web server software is running but no content has been added, yet.»
Если необходимо, после установки Apache можно перейти к настройке виртуальных хостов
Установка и проверка работоспособности PHP
- С помощью apt-get устанавливаем необходимые файлы:
3. Проверяем работоспособность PHP. Для этого создаем тестовый файл в директории, в которой находятся html файлы localhost (допустим, это директория /var/www):
и запускаем его в браузере:
Если все OK, вы увидите таблицу с информацией о текущем статусе PHP
Устанавливаем и проверяем работоспособность MySQL
Для установки mysql вводим команду:
После завершения установки MySQL необходимо выполнить сценарий mysql_secure_installation. Для этого в окне терминала пишем команду:
- Сценарий сразу запросит пароль от учетной записи «root», который был задан во время установки. Вводим пароль и жмем клавишу “Enter”.
- Если пароль был введен правильно, сценарий предложит его сменить.
- Следующим вопросом будет предложение на удаление анонимных пользователей. На боевом хостинге они не нужны, поэтому соглашаемся (вводим в терминале “Y”).
- Далее сценарий предложит заблокировать root пользователю возможность подключаться с удаленных хостов. Для безопасности это очень хорошо, поэтому соглашаемся. Пользователь с полными правами должен подключаться к серверу баз данных только локально. Вводим «Y» и жмем клавишу «Enter».
- В очередном вопросе мастер предложит удалить тестовые базы. Они нам не нужны, поэтому соглашаемся.
- Последний вопрос будет связан с разрешение перезагрузки таблицы привилегий. Соглашаемся, и все наши ответы на предыдущие вопросы немедленно вступят в силу.
Далее попробуем поработать в терминале с MySQL. Для входа в MySQL вводим команду:
после этого mysql запросит пароль root-пользователя. После этого в терминале появится приглашение:
Далее можно вводить команды, запросы (не забываем, что mysql — СУБД, поэтому язык SQL-запросов в нашем распоряжении). Например, чтобы посмотреть имеющиеся базы данных, вводим команду:
Просмотреть таблицы в базе данных mysql можно так:
Среди прочих таблиц, там есть таблица user, которая содержит учетные записи пользователей. Просмотреть ее содержимое можно с помощью запроса:
Не забываем ставить точку с запятой в конце каждого запроса!
Для выхода задаем команду
На этом шаге можешь считать, что WEB-сервер на Debian 7 полностью готов к работе. Ключевые компоненты установлены и готовы обслуживать толпы клиентов. Для полного счастья не хватает FTP доступа и удобной панели управления базами данных.
Установка и настройка phpMyAdmin
Для тех, кто предпочитает графическую оболочку для работы с базами данных, можно установить phpMyAdmin.
ВАЖНО:
необходимо иметь в виду некоторые вопросы безопасности при использовании phpMyAdmin, поскольку он:
- Напрямую взаимодействует с MySQL.
- Выполняет аутентификацию использую логин и пароль MySQL.
- Выполняет и возвращает результаты произвольных запросов SQL.
Учли все вышесказанное? — тогда вперед!
Устанавливаем phpmyadmin как обычно:
В процессе установки будут заданы несколько вопросов — ЧИТАЕМ их и отвечаем (Apache, Yes, пароль пользователя root MySQL-сервера, новый пароль посложнее для доступа в phpMyAdmin).
Установка phpMyAdmin завершена. Чтобы протестировать этот инструмент в работе, необходимо добавить phpMyAdmin к конфигурации Apache.
Добавляем phpMyAdmin к конфигурации Apache
Для этого открываем конфигурационный файл Apache:
Перемещаемся в его конец и добавляем строчку для подключения phpMyAdmin:
Сохраняем изменения и перезагружаем Apache (service apache2 restart)
Проверяем работоспособность phpMySql
В браузере переходим по ссылке
Открылась страница входа — значит все OK!
Защищаем phpMyAdmin
Проще всего это сделать с помощью установки дополнительной аутентификации на уровне web-сервера. При обращении к директории, в которой установлен phpMyAdmin, web-сервер будет запрашивать связку логин/пароль. Неправильный ввод данных на этом уровне не позволит злоумышленнику получить доступ к странице ввода учетных данных phpMyAdmin. Пробить такую защиту тоже можно, но сделать это будет намного сложней.
-
Настроим авторизацию на уровне Apache
Сначала откроем конфигурационный файл phpMyAdmin, который используется с Apache:
Находим в файле блок «» и дописываем директиву «AllowOverride All». Отредактированный блок в итоге должен выглядеть так:
Options FollowSymLinks
DirectoryIndex index.php
//Остальной текст оставляем как есть
AllowOverride All
Прописываем в этом файле необходимость авторизации на уровне web-сервера:
AuthType Basic
AuthName «Авторизация на уровне Apache»
AuthUserFile /home/.htpasswd
Require valid-user
В конфигурационном файле использовались следующие директивы:
- AuthType – директива определяет тип идентификации пользователя.
- AuthName – директива используется совместно с предыдущей. В ней пишем текст, который будет отображаться в диалоге запроса логина/пароля. Значением директивы может быть абсолютно любой текст.
- AuthUserFile – значением директивы выступает путь к файлу, содержащий информацию о пользователях и их паролях, которые могут получить доступ к закрытому ресурсу. На данном этапе этого файла нет, мы создадим его чуть позже.
- Require – директива позволяет определить принцип аутентификации. Она может принимать несколько значений (например, мы можем перечислить пользователей или группы пользователей, которые могут получать доступ к закрытому ресурсу). Значение Valid-user подразумевает, что получить доступ к закрытому ресурсу могут получить все пользователи, доступные в файле AuthUserFile.
Имя пользователя выбираем любое, с системными пользователями оно не переплетается. Утилита htpasswd запросит пароль для нового пользователя. Придумываем пароль и после завершения создания пользователя перезапускаем apache:
Проверяем авторизацию на уровне web-сервера
Попробуем обратиться к phpMyAdmin. Если все описанные выше манипуляции были проделаны правильно, то страница входа phpMyAdmin сразу будет недоступна. Вместо нее появится окно с запросом имени пользователя и пароля. Вводим данные, которые мы указали утилите htpasswd и только после этого попадаем на страницу входа в phpMyAdmin.
Если вообще не понятно куда отсылается почта при использовании функции mail(), то внимательно прочитайте статью настройка почты. Ошибки, возникающие при отправке смотрим в файле логов для вашего агента пересылки почты (MTA) — в Debian по умолчанию — exim4 (/var/log/exim4/mainlog).
Если у вас динамический IP-адрес, то скорее всего ваша почта приниматься не будет, так как на серверах установлены средства борьбы со спамом. В этом случае необходимо перенастроить exim для отсылки почты через другую машину, называемую smarthost. Например, так: как настроить exim4 для отправки почты через yandex (google) аккаунт.
Чтобы узнать, от какого пользователя работает Apache можно в корне сайта создать php файл следующего содержания:
и запустить его со своего сайта.
Оказывается, у меня Apache2 выполняет скрипты php от пользователя www-data из одноименной группы. Отсюда проблемы с правами доступа при создании файлов с помощью Apache и при работе с ними.
- В этом случае для исполнения кода достаточно прав на чтение файлов и входа в директории. Это можно представить, как xx4 (a+r) для файлов и xx5 (a+x) для директорий. Расшифруем значения – мы даем возможность всем пользователям (поле a) права на чтение файлов (+r), а для директорий – на чтение и переход в них (+x).
- Для записи файлов (загрузки, записи в файлы кэширования и проч.) необходимо либо дать для необходимого файла/директории соответствующие права (xx6 для файлов, xx7 для директорий), либо сменить владельца файла/каталога на пользователя, с правами которого работает apache. Второй способ единственно возможен, если есть права суперпользователя – в UNIX-системах пользователь, отличный от root, не может сменить владельца файлов.
А может, лучше посмотреть на apache-mpm-itk? Говорят, он позволяет запускать каждый виртуальный хост от имени владельца.
Так что, как говорится, думайте сами, решайте сами [- иметь или не иметь.]
Устанавливаем Apache2 + PHP5 + MySQL + phpMyAdmin
Прежде чем выносить свое Web-приложение в интернет его надо разработать. Лучше всего делать это локально, установив необходимое программное обеспечение на своем компьютере. Так вы сможете создавать и тестировать ваше приложение без доступа к Интернету.
- Beб-cepвep (в нашем случае Apache)
- Язык программирования, работающий на стороне сервера (в нашем случае PHP)
- Cepвep баз данных (в нашем случае MySQL).
Рассмотрим, как установить и настроить связку Apache, PHP и MySQL:
Установка и проверка работоспособности Web-сервера Apache
Для установки сервера Apache в Debian используем команду apt-get:
Чтобы убедиться в том, что сервер установлен на вашей машине, в строке браузера набираем:
Если все OK в ответ получаем нечто вроде этого: » It works! This is the default web page for this server. The web server software is running but no content has been added, yet.»
Если необходимо, после установки Apache можно перейти к настройке виртуальных хостов
Установка и проверка работоспособности PHP
- С помощью apt-get устанавливаем необходимые файлы:
3. Проверяем работоспособность PHP. Для этого создаем тестовый файл в директории, в которой находятся html файлы localhost (допустим, это директория /var/www):
и запускаем его в браузере:
Если все OK, вы увидите таблицу с информацией о текущем статусе PHP
Устанавливаем и проверяем работоспособность MySQL
Для установки mysql вводим команду:
После завершения установки MySQL необходимо выполнить сценарий mysql_secure_installation. Для этого в окне терминала пишем команду:
- Сценарий сразу запросит пароль от учетной записи «root», который был задан во время установки. Вводим пароль и жмем клавишу “Enter”.
- Если пароль был введен правильно, сценарий предложит его сменить.
- Следующим вопросом будет предложение на удаление анонимных пользователей. На боевом хостинге они не нужны, поэтому соглашаемся (вводим в терминале “Y”).
- Далее сценарий предложит заблокировать root пользователю возможность подключаться с удаленных хостов. Для безопасности это очень хорошо, поэтому соглашаемся. Пользователь с полными правами должен подключаться к серверу баз данных только локально. Вводим «Y» и жмем клавишу «Enter».
- В очередном вопросе мастер предложит удалить тестовые базы. Они нам не нужны, поэтому соглашаемся.
- Последний вопрос будет связан с разрешение перезагрузки таблицы привилегий. Соглашаемся, и все наши ответы на предыдущие вопросы немедленно вступят в силу.
Далее попробуем поработать в терминале с MySQL. Для входа в MySQL вводим команду:
после этого mysql запросит пароль root-пользователя. После этого в терминале появится приглашение:
Далее можно вводить команды, запросы (не забываем, что mysql — СУБД, поэтому язык SQL-запросов в нашем распоряжении). Например, чтобы посмотреть имеющиеся базы данных, вводим команду:
Просмотреть таблицы в базе данных mysql можно так:
Среди прочих таблиц, там есть таблица user, которая содержит учетные записи пользователей. Просмотреть ее содержимое можно с помощью запроса:
Не забываем ставить точку с запятой в конце каждого запроса!
Для выхода задаем команду
На этом шаге можешь считать, что WEB-сервер на Debian 7 полностью готов к работе. Ключевые компоненты установлены и готовы обслуживать толпы клиентов. Для полного счастья не хватает FTP доступа и удобной панели управления базами данных.
Установка и настройка phpMyAdmin
Для тех, кто предпочитает графическую оболочку для работы с базами данных, можно установить phpMyAdmin.
ВАЖНО:
необходимо иметь в виду некоторые вопросы безопасности при использовании phpMyAdmin, поскольку он:
- Напрямую взаимодействует с MySQL.
- Выполняет аутентификацию использую логин и пароль MySQL.
- Выполняет и возвращает результаты произвольных запросов SQL.
Учли все вышесказанное? — тогда вперед!
Устанавливаем phpmyadmin как обычно:
В процессе установки будут заданы несколько вопросов — ЧИТАЕМ их и отвечаем (Apache, Yes, пароль пользователя root MySQL-сервера, новый пароль посложнее для доступа в phpMyAdmin).
Установка phpMyAdmin завершена. Чтобы протестировать этот инструмент в работе, необходимо добавить phpMyAdmin к конфигурации Apache.
Добавляем phpMyAdmin к конфигурации Apache
Для этого открываем конфигурационный файл Apache:
Перемещаемся в его конец и добавляем строчку для подключения phpMyAdmin:
Сохраняем изменения и перезагружаем Apache (service apache2 restart)
Проверяем работоспособность phpMySql
В браузере переходим по ссылке
Открылась страница входа — значит все OK!
Защищаем phpMyAdmin
Проще всего это сделать с помощью установки дополнительной аутентификации на уровне web-сервера. При обращении к директории, в которой установлен phpMyAdmin, web-сервер будет запрашивать связку логин/пароль. Неправильный ввод данных на этом уровне не позволит злоумышленнику получить доступ к странице ввода учетных данных phpMyAdmin. Пробить такую защиту тоже можно, но сделать это будет намного сложней.
-
Настроим авторизацию на уровне Apache
Сначала откроем конфигурационный файл phpMyAdmin, который используется с Apache:
Находим в файле блок «» и дописываем директиву «AllowOverride All». Отредактированный блок в итоге должен выглядеть так:
Options FollowSymLinks
DirectoryIndex index.php
//Остальной текст оставляем как есть
AllowOverride All
Прописываем в этом файле необходимость авторизации на уровне web-сервера:
AuthType Basic
AuthName «Авторизация на уровне Apache»
AuthUserFile /home/.htpasswd
Require valid-user
В конфигурационном файле использовались следующие директивы:
- AuthType – директива определяет тип идентификации пользователя.
- AuthName – директива используется совместно с предыдущей. В ней пишем текст, который будет отображаться в диалоге запроса логина/пароля. Значением директивы может быть абсолютно любой текст.
- AuthUserFile – значением директивы выступает путь к файлу, содержащий информацию о пользователях и их паролях, которые могут получить доступ к закрытому ресурсу. На данном этапе этого файла нет, мы создадим его чуть позже.
- Require – директива позволяет определить принцип аутентификации. Она может принимать несколько значений (например, мы можем перечислить пользователей или группы пользователей, которые могут получать доступ к закрытому ресурсу). Значение Valid-user подразумевает, что получить доступ к закрытому ресурсу могут получить все пользователи, доступные в файле AuthUserFile.
Имя пользователя выбираем любое, с системными пользователями оно не переплетается. Утилита htpasswd запросит пароль для нового пользователя. Придумываем пароль и после завершения создания пользователя перезапускаем apache:
Проверяем авторизацию на уровне web-сервера
Попробуем обратиться к phpMyAdmin. Если все описанные выше манипуляции были проделаны правильно, то страница входа phpMyAdmin сразу будет недоступна. Вместо нее появится окно с запросом имени пользователя и пароля. Вводим данные, которые мы указали утилите htpasswd и только после этого попадаем на страницу входа в phpMyAdmin.
Читайте также: