Практика
Итак, у нас есть Linux Debian (в нашем примере - это 6.0 Squeeze). На нем изначально не стоит ни MySQL, ни Apache, ни PHP. А нам надо, чтобы стояло.
Давайте реализуем это.
MySQL
Сначала ставим MySQL:
В ходе установки MySQL спросит пароль для локального пользователя root. Внимательно этот пароль набирайте - это именно тот единственный пользователь, который будет существовать сразу после установки "мускула" и под которым Вы будете администрировать сервер.
После установки проверим, что aptitude самостоятельно запустил MySQL сервер:
Если вылезла куча разной инфы - значит сервер работает. Если нет - запускаем:
И, наконец, проверяем подключение к серверу:
Тут вводим заданный выше пароль. Если все хорошо (нас пустило в MySQL и мы увидели заветное приглашение "mysql>" - то Вы все сделали правильно.
Если потребуется изменить настройки MySQL, то стоит знать где они лежат. Настройки сервера находятся по адресу:
Теперь запускаем скрипт:
Вводим заданный ранее пароль и выполняем предложенные скриптом действия (удаляются временные базы, убирается доступ из-вне и т.д.)
Apache
В LAMP кроме MySQL входят еще Apache и PHP. Сейчас займемся установкой первого - Apache, в нашем случае - Apache 2.
Снова прибегаем к помощи aptitude:
На самом деле таким образом мы ставим Apache без поддержки SSL. Установку поддержки SSL я здесь описывать не буду - на эту тему есть детальная статья на этом же сайте (SSL Apache Debian).
Теперь идем в каталог /etc/apache2 и открываем файл apache2.conf . Нам нужно добавить здесь опцию "ServerName" и задать в ней имя сервера. Апач, конечно, и сам может его прочитать из hostname или hostname.domain, но лучше самостоятельно статически определить - как сервер будет называться. Дело в том, что название сервера будет фигурировать в сообщениях и страницах об ошибках.
После этого перезапускаем сервер Апача:
В дефолтной конфигурации у нас есть сайт с названием default. Описание сайта (конфигурация) лежит в каталоге /etc/init.d/apache2/sites-available и сделана символическая ссылка в каталог /etc/init.d/apache2/sites-enabled.
Таким образом, в каталоге /etc/init.d/apache2/sites-available у нас лежат все сайты,
а в каталоге /etc/init.d/apache2/sites-enabled - только те, которые Апачу стоит обслуживать. А точнее - символические ссылки на файлы из каталога доступных сайтов.
Для создания сайта Вам потребуется директория под этот сайт в файловой системе Linux и файл конфигурации сайта. Итак, например, мы хотим разместить сайт в каталоге /www/mysite.ru.
1) Создаем каталог /www (по-умолчанию его нет и Апач дефолтный сайт берет из папки /var/www):
Здесь мы создаем директорию для всех сайтов, делаем Апач владельцем директории (чтобы сам сервер мог творить внутри что ему захочется - спорная модель безопасности, но для простоты делаем так) и назначаем права на запись для пользователя www-data и всех пользователей из группы www-data и на чтение для всех остальных.
А здесь создаем папку сайта. Да, нам снова надо назначить владельца и права - создаем то мы из-под sudo (root), соответственно, пользователем-владельцем автоматически назначается root, что не есть хорошо для Апача (работать то он будет, но если Ваш сайт предполагает запись в него чего-либо - тут же обломится).
2) Создаем конфигурационный файл сайта:
Здесь создаем файл mysite.ru следующего содержания:
Здесь мы указали, что следует принимать подключения к сайту mysite.ru, что www.mysite.ru - это то же самое, что и mysite.ru, что в качестве стартовой страницы следует использовать index.php и что сам сайт лежит по адресу /www/mysite.ru
Чтобы сайт заработал - нужно создать символическую ссылку на него в директорию /etc/apache2/sites-enabled. Например, если конфигурационный файл мы назвали mysite.ru, то символическую ссылку делаем так:
После любых изменений конфигурации необходимо попросить Апач перезагрузить его конфиги, что делаем следующей командой:
На этом первичную настройку Apache можно закончить - тут ведь описывается только установка LAMP, а не хитрости конфигурирования.
Для проверки работоспособности Апача - зайдите через браузер по IP-адресу Вашего сервера - Вы должны будете увидеть надпись что-то вроде "Ура, я Апач работаю, возрадуйся, админ".
PHP
Предполагается использование PHP 5.3 (версия 5.2 снята с поддержки и ее последняя версия 5.2.17).
Debian по-умолчанию предлагает пакеты для установки PHP 5.3, однако версия PHP в этой ОС обновляется крайне редко, что не очень хорошо с точки зрения безопасности и функционала.
Если Вас устраивает PHP 5.3.3 (или та версия, которая является последней в Debian Squeeze на момент прочтения статьи) - то делов мало - делаем так:
Оно за собой подтянет все что нужно и сделает ссылку с конфигурацией в /etc/apache2/mods-enabled.
Если хочется иметь обновляемый PHP 5.3 последней версии - варианта 2: либо регулярно проверять обновления на сайте PHP и скачивать дистрибьютивы, устанавливая из исходников, либо найти репозиторий, где это делают за нас. Я поведу Вас вторым путем, как более простым.
Репозиторий уже есть и находится на сайте www.dotdeb.org.
Сайт запутанный и найти ссылки для установки там не шибко легко, потому я даю уже готовое.
Итак, чтобы устанавливать PHP 5.3 с этого сайта делаем следующее.
1) Сначана нужно установить цифровую подпись для пакетов с этого сайта:
Если не получилось (бывает... по разным причинам - сервер занят, например) - можно сделать вручную:
2) Теперь идем в /etc/apt и правим файл sources.list
Нам нужно добавить следующие строки в файл:
3) Обновляем список портов
4) Устанавливаем PHP
Будет установлен плагин для Апача и минимум функционала.
Если утилита спросит - убрать ли apache2-worker - соглашаемся - вместо него будет установлен свой пакет.
По команде
можно узреть сколько еще плагинов php можно поставить. Например, часто используются следующие (тут сразу команда для их установки):
После этого перезапускаем Апач для применения изменений (чтобы оно поняло, что появился PHP).
ЗЫ. Для перезагрузки конфигов служит, вообще-то, команда graceful, но я предпочитаю серьезные изменения делать через полный перезапуск службы.
phpmyadmin
Следующим шагом - поставить веб-консоль для работы с MySQL сервером. Проверенная временем phpmyadmin используется на большинстве хостингов. Несмотря на то, что нередко быстрее все сделать ручками через ssh и mysql, веб-консоль бывает незаменима. Ну и интуитивно понятнее она, конечно, чем низкоуровненные sql-команды.
Во время установки Вас спросят - к каким веб-серверам (apache, lighthttpd) сразу прикрутить конфигурацию phpmyadmin. Отмечаем Apache и двигаемся дальше.
Следующим вопросом будет - устанавливать ли базу данных phpmyadmin по-умолчанию. Если Вы не вкуриваете что за база и с чем ее кушать - отвечаем "Да".
И последними вопросами будут вопросы про пароли. Сначала - пароль для MySQL сервера. Ввводим пароль, который мы указывали в разделе установки MySQL. Далее спрашивают пароль для доступа к базе данных самим phpmyadmin. Если оставим поле пустым - он будет сгенерирован случайным. Этот пароль не надо будет вводить нигде - он исключительно для нужд самого сервиса, потому можем смело жать на Enter.
Все, такая полезная вещь, как phpmyadmin, установлена. Обратиться к ней можно через сайт по пути ВАШ_IP/phpmyadmin, где вместо ВАШ_IP указывайте IP адрес Вашего сервера.
На этом завершаем потуги по установке LAMP сервера. В догонку хочется сказать, что все это происходит почти автоматически при выборе соответствующих пунктов меню во время установки Debian-системы, но если уж нам хочется вручную, или ОС уже установлена, а теперь понадобилось поднять веб-сервер - то выше руководство как это сделать.
ЗЫ. Как-бы, веб-сервер не есть сервер DNS, это как-бы надо учесть. Предполагается, что у Вас уже есть DNS-сервер, на котором Вы можете указывать доменные зоны, которые будет обслуживать этот веб-сервер. Если нет - на этом же сайте есть статья про настройку (и установку) bind-сервера (named), который можно поставить на ту же машину, что и веб-сервер, и который будет честно и увлеченно служить Вам DNS-сервером.
Ответы на вопросы для самопроверки пишите в комментариях, мы проверим, или же задавайте свой вопрос по данной теме.
Комментарии
Оставить комментарий
Выполнение скриптов на стороне сервера PHP (LAMP) NodeJS (Backend)
Термины: Выполнение скриптов на стороне сервера PHP (LAMP) NodeJS (Backend)