Установка Apache + PHP + MySQL + phpmyadmin на Ubuntu для извращенцев


Эту шпаргалку я написал для себя еще несколько месяцев назад в прошлом году. На самом деле я всего пару раз воспользовался ею. Мне не понравилось выполнять столько итераций, чтобы запустить простенький сайт на серваке. Да и вместо Apache я пользую Nginx в последнее время.

Я стал искать другие решения и оказалось, что готовые конфигурации можно устанавливать в два клика на современных облачных решениях типа DigitalOcean или SimpleCloud. Это быстрее и удобнее.

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

В общем виде это будет выглядеть так. Допустим у нас есть свежеустановленная серверная Ubuntu. Теперь нужно прикрутить к ней виртуальный сервер, базу данных, PHP и подружить их всех. Поехали!

01. Устанавливаем Apache

sudo apt-get install apache2

Проверяем, установился ли? Заходим по IP адресу (http://your_server_IP_address)

02. Устанавливаем MySQL

sudo apt-get install mysql-server php5-mysql

Создаем дирректорию мускуля

sudo mysql_install_db

Удаляем дефолтные настройки, секурити

sudo mysql_secure_installation

03. Установка PHP

sudo apt-get install php5 libapache2-mod-php5 php5-mcrypt

Ставим приоритетным .php

sudo nano /etc/apache2/mods-enabled/dir.conf

Перезагружаем апач

sudo service apache2 restart

Устанавливаем еще парочку расширений

sudo apt-get install php5-curl php5-gd php5-json php5-xsl

Создаем файл для теста php

nano /var/www/html/info.php

<?php phpinfo(); ?>

Протестили — удаляем

rm /var/www/html/info.php

04. Установка phpMyAdmin

Этой штукой тоже не пользуюсь, есть прекрасный бесплатный софт под названием Sequel Pro. В нем очень удобно админить сразу несколько БД на разных серваках.

Установка

sudo apt-get install phpmyadmin apache2-utils

Добавляем в конфигурацию Апача

sudo nano /etc/apache2/apache2.conf

Секурити для phpmyadmin

sudo nano /etc/phpmyadmin/apache.conf

<Directory /usr/share/phpmyadmin>
Options FollowSymLinks
DirectoryIndex index.php
AllowOverride All
[...]

Создаем htaccess

sudo nano /usr/share/phpmyadmin/.htaccess

AuthType Basic
AuthName "Restricted Files"
AuthUserFile /etc/apache2/.htpasswd
Require valid-user

sudo htpasswd -c /etc/apache2/.phpmyadmin.htpasswd username

Перезагрузим апач до кучи

sudo service apache2 restart

05. Создание БД

Заходим в мускуль под рутом

mysql -u root -p

Создаем базу

CREATE DATABASE mybase;

Создаем пользователя для этой БД

CREATE USER user@localhost IDENTIFIED BY 'pass';

Проставляем привилегии

GRANT ALL PRIVILEGES ON mybase.* TO user@localhost;

Обновляем привилегии

FLUSH PRIVILEGES;

Выход

exit

06. Виртуальные хосты для Апача

Хотите крутить разные сайты в разных папках, отличной от дефолтной? Придется настроить виртуальные хосты на сервере:

Создаем дирректорию

sudo mkdir -p /var/www/example.com/public_html

Пермишены

sudo chown -R $USER:$USER /var/www/example.com/public_html

Создаем конфигурацию для виртуального сервера

sudo cp /etc/apache2/sites-available/000-default.conf /etc/apache2/sites-available/example.com.conf

Открываем, редактируем:

sudo nano /etc/apache2/sites-available/example.com.conf

<Directory /var/www/html>
Options FollowSymLinks
AllowOverride all
Require all granted
</Directory>

Применяем конфигурацию

sudo a2ensite example.com.conf

Не забываем включить реврайт

sudo a2enmod rewrite

Перезагружаем апач

sudo service apache2 restart

07. Выводы

Оценили объем ковыряний в непонятных вещах? Вывод очевиден: это только для извращенцев одминов. Вот я — извращенец, но даже мне это быстро наскучило.

Обычный рядовой въебмастер либо не осилит эту штуку, либо накосячит жутко и плюнет на это дело, либо потратит непозволительно много времени на то, чтобы во всем этом разобраться. А время — деньги. А деньги в руБЛЯх. А рубль — это пиздец, падающий в бездну.

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


20 комментов

12 января 2016

Треп по сабжу

  • WebSEO77 WebSEO77.info

    12 января 2016 в 11:36

    Поэтому простые вебмастера необремененные интеллектом идут к хостерам где все идет из коробки. Например к Бегет. Удобно и не нужно во всех этих непонятных штуках разбираться. ОНО ПРОСТО РАБОТАЕТ!

    • Alex Black alexblack.wtf

      12 января 2016 в 11:37

      Согласен. Бегет хорошо постарались, чтобы их админка была удобной и функциональной. Действительно удобно. У самого есть у них аккаунт =)

  • FinBo$$ finboss.com

    12 января 2016 в 12:08

    Никогда таким не занимался. А зачем?

  • xtra

    12 января 2016 в 12:14

    апач не нужен, есть nginx.

    • Alex Black alexblack.wtf

      12 января 2016 в 12:15

      Согласен, об этом упомянуто в посте…

  • Ginger Dog gingerdog.ru

    12 января 2016 в 12:50

    установка LAMP (при прямых руках) дело 5 минут, сам часто ставил руками, когда на сервере 1-2 сайта. но когда сайтов на сервере много (а такое гораздо чаще встречается), то заябывает каждый раз вирт хосты апача делать. поэтому ставлю простую панельку типа vesta и не парюсь

    • Alex Black alexblack.wtf

      12 января 2016 в 13:00

      Затверждаю, Vesta неплохой вариант, кстати… Ставил, тестил ее, вполне годно.

  • Alex

    12 января 2016 в 13:19

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

  • Запил коммент

    12 января 2016 в 13:55

    Так рассказал сразу бы как ставить в 2 клика, а не заниматься насилованием мозга. А так конечно полезно для ОФП. Вообще ты же должен знать, что человек ленивая тварь. И лень двигает прогресс, т.е. получается нуно сначала поебстись, что бы потом оценить уют. Тогда получается прально сделал.

  • wisest

    12 января 2016 в 18:25

    Про самое главное забыл, про фаервол

    • wisest

      12 января 2016 в 18:26

      Лол, у самого порты то открыты

      • wisest

        12 января 2016 в 18:27

        начитаются своего стэк оферфлоу и делают дроплеты дырявые

      • Alex Black alexblack.wtf

        12 января 2016 в 18:35

        Про какой сайт идет речь?

        • wisest

          12 января 2016 в 18:38

          про бложик этот, много не чекал, но мускул например наружу торчит

          • Alex Black alexblack.wtf

            12 января 2016 в 18:41

            Старый «добрый» Бегет =)

  • Вася

    13 января 2016 в 15:43

    Капитан очевидность поведает в следующем посте про докер

    • Э вАся

      14 января 2016 в 09:33

      Да пусть ведает. Мне так интересно. Уважаемый расскажите пжл. Про чудо хостинги зарубежные, где дорвеи хостить.

  • noxon

    14 января 2016 в 17:20

    дальше nginx, node.js, memcached

    • Alex Black alexblack.wtf

      14 января 2016 в 17:23

      Ага, почему бы и нет. Сам используешь? Или теперь только биткоинами торгуешь и никаких веб-разработок?

  • Archil archil.net

    14 января 2016 в 18:24

    Дабы не ипать себе мозг всякими апачами пользуй VestaCP http://vestacp.com/

  •