Данная статья является статьей цикла «Установка 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.
Воспользовался уже при установке на vps LAMP . Все стало. Но хотелось бы еще что бы по подробние было на счет конфигов php и mysql(Хотя можно и погуглить). И ДА СПАСИБО ТЕБЕ ЗА ТО ЧТО НАПРАВИЛ НА ПУТЬ ИСТИННЫЙ НАCЧЕТ kvm+debian.
Всё будет, я не железный по столько статей писать в рабочией дни)
Вообще в цикле LAMP fast ways я думаю написать статей 10, так что будет, что почитать.
ОК .Жду. И про настройку своих ns серверов было бы тож не плохо). Что бы можно было к своим домен именам привязвать.)
У меня так phpmyadmin на lenny и не появилсь.. Выдает ошибку о несуществующем пути. Хотя It Works! есть, конечно же.
Когда phpmyadmin спрашивал какой у вас веб сервер — нужно было apache2 выбрать пробелом, только потом нажимать энтер.
aptitude remove phpmyadmin && aptitude install phpmyadmin сделайте
Как раз apache2 у меня и было выбрано при установке.
Только что выполнил эту команду. Не помогло: Ошибка. Ссылка не работает.
Кстати, поддерживаю [v-8]_jupiter в его желании видеть про настройку ns серверов :)
попытался применить данное руководство для постепенного поднятия сервера на vds, споткнулся сразу же:
-bash: aptitude: command not found
тяжело не обладать даже элементарными знаниями в вопросе )
apt-get install aptitude
Какие то странные комменты…
Обычный track-back или как эта хрень зовецца
при установке вылетает диалог разрешения зависимостей:
Следующие пакеты имеют неудовлетворённые зависимости:
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
Корректно ли в данном случае доверится установщику, выбрав, например, первый вариант — все будет разрулено правильно?
Да. В обоих случаях всё будет правильно, вопрос только в том, какой механизм запуска процессов апачей вам нужен.
скажу вам как новый пользователь вашего сайта (я сейчас к автору статьи обращаюсь) сделайте навигацию в конце или в начале статьи, ладно я разберусь и сам найду остальные части, но согласитесь неудобно же все-таки.
Конкретно в этом цикле статей навигация есть. С остальными не все так просто.
как создать второй сайт на локальном сервере не попортив первый.
По наитию вроде правильно делаю ,но не получается.
Показывайте, что именно делаете.
Создать 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
Все на этом моя «фантазия» иссякла.
Вы советуете создавать дамп из консоли самого сервера. Что-то я не нашел в гугле ответ именно на этот вопрос. Мб подскажете как найти эту консоль
Хым? ssh же, если сервер удаленный.
Написано вроде правильно. Но я так и не увидел, что _сделали_ вы, и что не работает.
Вы уж меня извините. Я следую Вашим советам . И если на локальном сервере я не могу найти » консоли самого сервера»,то ,видимо ,ввод из консоли компа не приводит к нужным результатам. Во всяком случае
вот эта команда выдает стрелку внизу и все:
mysql>mysqldump —complete-insert —no-create-db -u имя -p dbname > dbname.sql
->
вот и все. То же со второй командой:
mysql>mysqldump —complete-insert —no-create-db -u имя -pпароль dbname > dbname.sql
->
а зачем вы mysqldump делаете внутри mysql-консоли?
Добрый день.
Огромное спасибо за статью! У меня вопрос: планирую на отдельную машину ставить MySQL, обязательно ли ставить связку c php и apache (т.е. можно ли без них поставить, так как сами сайты будут на другой машине)?
И второе (может конечно вопрос глупый, но всё же..) на что лучше ставить Debian 6 или 7?
Лучше 7, если php 5.4 подходит.
> планирую на отдельную машину ставить MySQL, обязательно ли ставить связку c php и apache
Уху, можно отдельно.
Благодарю. :)
Не за что.
Добрый день.
Спасибо за блог, лишил сна. Наконец-то нашел откуда копипастят и ведь спокойно предлагают эту строку на Debian9, а там aptitude сперва установить надо и пофигу на комменты, что не работает.
На данный момент влёт прошла:
Debian:~# apt update && apt upgrade && apt install apache2 php7.0 libapache2-mod-php7.0 mysql-server mysql-client php7.0-mysql phpmyadmin
Мат в текстах прям душу радует.
О, так это древняя статья)
https://debian.pro/1856 поновее есть.
если берешь что-то новое, надо начинать с древности — фундамент крепче, я каждые 10-11 лет полностью меняю свою специализацию, хотя сука из нас в универе сделали универсалами, но в 90 ….., но у нас столько смежных профессий, выкарабкались, это мой 3й прыжок, даже боюсь, что я тут натворю. Очень сожалею, что проффорумы загибаются, но форумдисциллер и форумхауз пока не сдаются, а вас реальных айтишников приходится просто выкапывать, хотя на моем сайте тоже не будет рекламы ибо это есть хорошо.
> приходится просто выкапывать
Работы много, на статьи времени не остаётся =) Да и не модно это сейчас уже.