Debian.pro

Блог для пользователей и администраторов Debian


Debian, Ubuntu, LAMP (linux+apache+php+mysql). Very fast way. Часть 1.

Данная статья является статьей цикла «Установка LAMP на Debian/Ubuntu — very fast way»

Сегодня задумался над одной особенностью моей жизни. В среднем я устанавливаю LAMP один раз в сутки. Для экспериментов, по заказам, по просьбам друзей… в общем часто.

Lamp я ставлю одной командой:
Debian:~# aptitude update && aptitude upgrade && aptitude install apache2 php5 libapache2-mod-php5 mysql-server mysql-client php5-mysql phpmyadmin

По ходу установки у вас должны спросить пароль от mysql root’a и phpmyadmin попросить указать установленные web-серверы (выбираем apache2 стрелочками, нажимаем пробел, потом enter).

Перед выполнением этой команды в Ubuntu сделайте sudo su
Почему я не использую tasksel для лампы? А оно до сих пор глючит. На форумах всё ещё рождаются посты вида «поставил через tasksel, ничего не работает».

Ну и да….
Теперь по адресу http://server_ip должна быть белая страница с надписью «It works!». Phpmyadmin скрывается по адресу http://server_ip/phpmyadmin. Если чего то нет — ну что ж, не везет) Попробуйте связаться со мной в iRC. я постраюсь помочь. Заодно и темку для статьи, может быть, найду)

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

Не надейтесь, что этой статьей закончились материалы про LAMP. Впереди нас ожидает ещё много статей о том, как настраивать и администрировать web-сервер на Debian/Ubuntu.


Комментарии (32):

  1. Воспользовался уже при установке на vps LAMP . Все стало. Но хотелось бы еще что бы по подробние было на счет конфигов php и mysql(Хотя можно и погуглить). И ДА СПАСИБО ТЕБЕ ЗА ТО ЧТО НАПРАВИЛ НА ПУТЬ ИСТИННЫЙ НАCЧЕТ kvm+debian.

  2. Всё будет, я не железный по столько статей писать в рабочией дни)

    Вообще в цикле LAMP fast ways я думаю написать статей 10, так что будет, что почитать.

  3. ОК .Жду. И про настройку своих ns серверов было бы тож не плохо). Что бы можно было к своим домен именам привязвать.)

  4. У меня так phpmyadmin на lenny и не появилсь.. Выдает ошибку о несуществующем пути. Хотя It Works! есть, конечно же.

  5. Когда phpmyadmin спрашивал какой у вас веб сервер — нужно было apache2 выбрать пробелом, только потом нажимать энтер.

    aptitude remove phpmyadmin && aptitude install phpmyadmin сделайте

  6. Как раз apache2 у меня и было выбрано при установке.
    Только что выполнил эту команду. Не помогло: Ошибка. Ссылка не работает.

  7. Кстати, поддерживаю [v-8]_jupiter в его желании видеть про настройку ns серверов :)

  8. b2farm :

    попытался применить данное руководство для постепенного поднятия сервера на vds, споткнулся сразу же:
    -bash: aptitude: command not found
    тяжело не обладать даже элементарными знаниями в вопросе )

  9. apt-get install aptitude

  10. Green :

    Какие то странные комменты…

  11. basil :

    Обычный track-back или как эта хрень зовецца

  12. Сергей :

    при установке вылетает диалог разрешения зависимостей:
    Следующие пакеты имеют неудовлетворённые зависимости:
    apache2-mpm-worker: Конфликтует: apache2-mpm который является виртуальным пакетом.
    apache2-mpm-prefork: Конфликтует: apache2-mpm который является виртуальным пакетом.
    Internal error: found 2 (choice -> promotion) mappings for a single choice.
    Следующие действия разрешат зависимости:
    Сохранить для следующих пакетов их текущие версии:
    1) apache2-mpm-worker
    во втором варианте предлагается prefork + mod-php5

    Корректно ли в данном случае доверится установщику, выбрав, например, первый вариант — все будет разрулено правильно?

  13. Да. В обоих случаях всё будет правильно, вопрос только в том, какой механизм запуска процессов апачей вам нужен.

  14. szx :

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

  15. Конкретно в этом цикле статей навигация есть. С остальными не все так просто.

  16. как создать второй сайт на локальном сервере не попортив первый.
    По наитию вроде правильно делаю ,но не получается.

  17. Показывайте, что именно делаете.

  18. Создать DNS записи :
    открыть sudo gedt etc/hosts исделать запись 127.0.0.2 Tab site2.ru и 127.0.0.3 Tab http://www.site2.ru

    Далее:
    ping http://www.site2.ru Аналогично — для всех доменов, которые мы желаем сделать алиасами для нашего сайта.
    Алиас — это дополнительный домен для сайта. Наш сайт будет открываться по site1.ru и по http://www.site1.ru

    Приступим. Создадим нужный нам каталог:
    mkdir -p /home/sem/site2.ru

    Т

    В site2.ru по FTP или с помощью FileZilla или просто перетащить.
    Примечание:

    ———————————————————-

    1.chown -R sem:www-data site1.ru

    2 find /home/sem/site1.ru -type d -exec chmod 775 {} \;
    3. Создаем в site2.ru пустой файл configuranion.php и даем ему
    права 775 sem sem
    4. Файлам index.html в папках administrator/cache ;cache ;logs ;tmp задаем права 775

    Что мы сейчас сделали. разрешили процессам Apache (веб-сервер) доступ на чтение ко всем файлам данного каталога и запретили чтение каталога всем остальным.Всем папкам дали права 755. Для чего? Чтобы ваш сосед по серверу не смог просмотреть файлы вашего сайта. А там обычно в открытом виде хранится пароль доступа к mysql.
    ———————————————————-

    Введем такую команду:
    mysql> create database `dbname2`; grant all on `dbname2`.* to ‘имя2′@’localhost’; set password for ‘имя2′@’localhost’ = password(‘хххххх2′);
    Только что мы создали базу dbname2, дали на неё все права пользователю muser2 и назначили пароль ххххххх2 этому пользователю.
    Теперь нажимаем стрелку вверх, исправляем цифры 2 на 3, нажимаем enter…. дальше, думаю, вы поняли =) История сохраняется и после выхода из mysql-client. Кстати, выйти из него можно сочетанием клавиш ctrl+D.
    Для невнимательных хочу заметить, что имя базы обрамляется обратным апострофом (тем, что на букве Ё на клавиатуре).

    ———————————
    СОЗДАНИЕ ДАМПА БАЗЫ И ВОСТАНОВЛЕНИЕ ЕГО НА ДРУГОМ НОСТИНГЕ.

    Приступим. Для начала создадим бэкап отдельной базы, удобный для её восстановления в любую другую базу (например, для переноса на другой хостинг, где принята другая идеология наименования БД).
    Эти команды следует вводить уже в консоли самого сервера
    .
    mysqldump —complete-insert —no-create-db -u muser -p dbname > dbname.sql
    либо
    mysqldump —complete-insert —no-create-db -u muser -pmegapasswordhere dbname > dbname.sql
    В первом случае пароль будет запрошен в интерактивном режиме, во втором… Ну не безопасно, зато удобно)

    На выходе мы получим всем дампам дамп.
    Во-первых, на время создания бэкапа база будет заблокирована от любых изменений (наглый пользователь, написавший пост во время бэкапа базы форума не попортит вам дамп). (опция —add-locks)
    Во-вторых — запросы записываются полностью, с именем столбцов. Увеличивает размер, но снижает возможность ошибки (—complete-insert)
    В-третьих — в дамп не добавляется команда CREATE DATABASE, а значит мы можем восстановить этот дамп в любую другую базу по желанию. (—no-create-db —no-create-info)
    сам дамп будет в файлике dbname.sql Можно использовать конструкцию вида > /backup/dbname.sql)

    Сделаем импорт дампа на этом же сервере:

    mysql -u muser2 -p пароль2 dbname2 < dbname.sql
    или с ручным вводом пароля:
    inky@Debian:~$ mysql -u muser2 -p dbname2 < dbname.sql

    Обратите внимание, что бэкап мы восстанавливаем уже в dbname2.

    для mysqldump возможна проблемка, в дамп не записывается признак автоинкрементируемого поля, а стандартный id в большинстве задаётся как:
    `id` INT NOT NULL AUTO_INCREMENT PRIMARY KEY
    чтобы побороть это, нужно использовать дополнительную опцию —create-options
    такая своеобразная фича
    ————————————————————-

    А теперь, собственно, мы расскажем Апачу, что мы желаем разместить сайт.
    Создадим файл, который будет содержать информацию о нашем VirtualHost:

    sudo gedit /etc/apache2/sites-enabled/site2.ru

    и занесем в него :

    DocumentRoot /home/sem/site2.ru
    ServerName site1.ru
    ServerAlias http://www.site1.ru
    ServerAdmin webmaster@site1.ru

    Сохраним.

    Затем делаем перезагрузку или рестарт Апача:

    sudo /etc/init.d/apache2 reload
    илиsite1.ru

    sudo /etc/init.d/apache2 restart

    В site2.ru переносим все из site1.ru и правим configuration.php

    Все на этом моя «фантазия» иссякла.

  19. Вы советуете создавать дамп из консоли самого сервера. Что-то я не нашел в гугле ответ именно на этот вопрос. Мб подскажете как найти эту консоль

  20. Хым? ssh же, если сервер удаленный.

  21. Написано вроде правильно. Но я так и не увидел, что _сделали_ вы, и что не работает.

  22. Вы уж меня извините. Я следую Вашим советам . И если на локальном сервере я не могу найти » консоли самого сервера»,то ,видимо ,ввод из консоли компа не приводит к нужным результатам. Во всяком случае
    вот эта команда выдает стрелку внизу и все:
    mysql>mysqldump —complete-insert —no-create-db -u имя -p dbname > dbname.sql
    ->
    вот и все. То же со второй командой:
    mysql>mysqldump —complete-insert —no-create-db -u имя -pпароль dbname > dbname.sql
    ->

  23. а зачем вы mysqldump делаете внутри mysql-консоли?

  24. Ильдус :

    Добрый день.
    Огромное спасибо за статью! У меня вопрос: планирую на отдельную машину ставить MySQL, обязательно ли ставить связку c php и apache (т.е. можно ли без них поставить, так как сами сайты будут на другой машине)?
    И второе (может конечно вопрос глупый, но всё же..) на что лучше ставить Debian 6 или 7?

  25. Лучше 7, если php 5.4 подходит.

    > планирую на отдельную машину ставить MySQL, обязательно ли ставить связку c php и apache
    Уху, можно отдельно.

  26. Ильдус :

    Благодарю. :)

  27. Не за что.

Написать комментарий