Установка и настройка Apache, PHP, MySQL, phpMyAdmin на Ubuntu 14.04 LTS + 16.04 LTS

UPD. Статья обновлена до актуальной версии 24.08.2016
Однажды я уже писал статью, о том как установить  Lamp  на убунту, но с тех пор многие компоненты изменились, и соответственно, их установка изменилась.

Большинство команд выполняем в терминале (Ctrl+Alt+T)

Шаг 1. Установка Apache.

$ sudo apt-get install apache2

Далее перейдите по адресу http://localhost и вы должны увидеть стартовую страницу apache.

apache

Apache — стартовая страница.

Для того, чтобы после каждой перезагрузки апача, не получать уведомления вида:

apache2: Could not reliably determine the server’s fully qualified domain name, using 127.0.1.1. Set the ‘ServerName’ directive globally to suppress this message

Откройте конфиг апача:

$ sudo nano /etc/apache2/apache2.conf

В конце файла добавьте строки:

ServerName 127.0.0.1

 

Шаг 2. Установка MySQL.

$ sudo apt-get install mysql-server mysql-client

В ходе установке, нужно задать пароль администратора баз данных.

mysql config

Установка пароля

Проверьте, установку:

$ sudo service mysql status

в ответ должны увидеть что-то типа если у вас Ubuntu 14.04:

$ mysql start/running, process 3470

Или если у вас Ubuntu 16.04:

1471984511297

Шаг 3. Установка PHP

Для Ubuntu 16.04

Внимание! Если у вас Ubuntu 16.04 и выше тогда перейдите СЮДА

Для Ubuntu 14.04

$ sudo apt-get install php5 php5-mysql libapache2-mod-php5

Шаг 3.1 Проверка работы PHP

Создадим файл test.php

$ sudo nano /var/www/html/test.php

Добавим следующее содержание

<?php
phpinfo();
?>

И откроем в браузере ссылку: http://localhost/test.php

Вы должны увидеть информацию о установленном php, его версию, модули, и т.д.

phpinfo

Информация о PHP

Шаг 3.2 Настройка php.ini

Откроем php.ini для редактирования.
Для Ubuntu 14.04

$ sudo nano /etc/php5/apache2/php.ini

Для Ubuntu 16.04 PHP 5.6

$ sudo nano /etc/php/5.6/apache2/php.ini

Для Ubuntu 16.04 PHP 7.0

$ sudo nano /etc/php/7.0/apache2/php.ini

Находим директиву short_open_tag , и включаем ее, заменяем off на on

Этим мы включили  возможность использования коротких тегов php: <? ?>

P.S Из-за этой настройки, я два вечера не мог разобраться, почему у меня не работал скрипт, и выдавал ошибку:

Parse error: syntax error, unexpected ‘}’ in …

Раньше данная директива по-умолчанию была включена

Шаг 4. Установка phpMyAdmin.

$ sudo apt-get install phpmyadmin

Отвечаем на все вопросы, заданные при установке.
Проверим установку, перейдя по адресу http://localhost/phpmyadmin/

Вы увидите страничку авторизации.

Вводим логин и пароль, заданный администратора баз данных, при установке MySQL.

phpmyadmin

phpMyAdmin — авторизация

Шаг 5. Настройка виртуальных хостов.

Для удобства я размещаю свои сайты в домашней директории.

Создадим каталог в котором будет размещены наши сайты.

$ mkdir www

Далее каталог нашего сайта.

$ mkdir www/site.com

Создадим тестовый файл

$ nano www/site.com/index.php

И напишем что-то для проверки:

<?php echo '<h1>Hello world</h1>'; ?>

Создаем новый виртуальных хост.

Копируем файл шаблона.

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

Открываем его для редактирования.

$ sudo nano /etc/apache2/sites-available/site.com.conf

Вставляем следующие строки:

<VirtualHost *:80>
ServerAdmin webmaster@localhost
ServerName site.com
DocumentRoot /home/gansik/www/site.com
<Directory />
Options FollowSymLinks
AllowOverride All
</Directory>
<Directory /home/gansik/www/site.com/>
Options Indexes FollowSymLinks MultiViews
AllowOverride All
Require all granted
</Directory>

ErrorLog ${APACHE_LOG_DIR}/error.log

# Possible values include: debug, info, notice, warn, error, crit,
# alert, emerg.
LogLevel warn

CustomLog ${APACHE_LOG_DIR}/access.log combined

</VirtualHost>

Обратите внимание, не забудьте подставить свои данные.
gansik — имя моего пользователя

site.com — адрес моего сайта.

Включаем наш сайт

$ sudo a2ensite site.com

Перезагружаем apache

$ sudo service apache2 restart

Редактируем hosts, для того, чтобы мы могли зайти на сайт, по нашему адресу.

$ sudo nano /etc/hosts

В первой строке, после localhost, добавим адрес нашего сайта site.com 

hosts

Hosts

Сохраняем, закрываем, и переходим по адресу нашего локального сайта site.com  , в ответ мы должны увидеть Hello world.

На этом вся настройка завершена

Установка и настройка Apache, PHP, MySQL, phpMyAdmin на Ubuntu 14.04 LTS + 16.04 LTS: 24 комментария

  1. Точно так же получаю forbidden.

    [Wed Jul 23 21:40:59.809525 2014] [core:crit] [pid 15096] (13)Permission denied: [client 127.0.0.1:46896] AH00529: /home/user/.htaccess pcfg_openfile: unable to check htaccess file, ensure it is readable and that ‘/home/user/’ is executable

    Почему он ищет .htaccess в папке с пользователем а не сайтом? Как исправить?
    Заранее спасибо.

  2. проблема с доступом к локальным сайтам в том что в обновленном апаче ужесточены права так что лепите ваши сайты в стандартных каталогах /var/www
    или изучайте свежие статьи на эту тему http://stackoverflow.com/questions/22996652/install-apache-2-4-7-on-ubuntu-14-04

    там рекомендации есть на тему как побороть эти ограничения но я чет не смог разобраться в трех соснах поэтому на 14,04 переместил сайты в пути по умолчанию.

  3. автор у меня в комменте перед должно стоять <Directory /home/your_user/>

    Options Indexes FollowSymLinks
    AllowOverride None
    Require all granted

    и после </Directory>
    подумай об обрезке html тегов, а то как то не хорошо, важный кусок и выпал из сообщения, либо BB код поставь что-ли или для strip_tags сделай правило

    • Создаем ссылку sudo ln -s /usr/share/phpmyadmin/ /var/www
      или создаем ссылку sudo ln -s /usr/share/phpmyadmin/ /var/www/html
      и перезапускаем Apache. sudo /etc/init.d/apache2 restart .

  4. необходимо разрешить Apache отображать содержимое нашей директории иначе мы получим то самое пресловутое «Forbidden 403». Раньше это делалось с помощью директив «Order Allow, Deny» и «Allow from all» но теперь, начиная с версии Apache 2.4 они заменены одной директивой «Require all granted» подробнее об этом можно прочитать здесь. Поэтому в самый конец файла мы допишем

    Options Indexes FollowSymLinks
    AllowOverride All
    Require all granted

    Сохраним файл и перезапустим Apache командой
    sudo service apache2 restart
    Теперь по адресу http://site.com будет открываться директория с нашими проектами.

  5. Приветствую!

    Алексей, подскажите пожалуйста, в каком именно файле это надо прописать, и где именно — в начале или в конце?

    Ссылки на слове «здесь» к сожалению нет. ((

  6. > Maks:
    > подскажите пожалуйста, в каком именно файле
    в вашем файле виртуального хоста
    вместо

    order allow,deny
    allow from all

    напишите

    Require all granted

  7. У меня все равно выдает ошибку 403 при попытке перехода site.com

    Options FollowSymLinks
    AllowOverride None
    Require all denied

    AllowOverride None
    Require all granted

    Options Indexes FollowSymLinks
    AllowOverride All
    Require all granted

    Options Indexes FollowSymLinks
    AllowOverride None
    Require all granted

    Может быть здесь что-то лишнее или наоборот, что-то недописано???

  8. Я так понял (почитав другие способы установки), что в файл site.com.conf между тегами DIRECTORY после строк:
    Options FollowSymLinks
    AllowOverride None
    надо вставить
    Require all granted
    После этого у меня все запустилось… )))

  9. сорри народ, но все что в знаках больше меньше в коментах не отображается, по сему их заменю на Б и М
    в файле apache2.conf нужно найти где прописаны разрешенные директории,
    выглядят —
    «БDirectory /…./М»
    ….

    «М/DirectoryБ»

    и прописать
    «МDirectory /home/arky/www/Б «мой домашний каталог»»
    Options Indexes FollowSymLinks
    AllowOverride All
    Require all granted
    «М/DirectoryБ»
    Вуаля все заработало.
    Автору респект за статью.
    Админы сорри за флуд, удалите мои предыдущие коменты

  10. Большое спасибо за статью. Вроде всё правильно настроил, но выходит ошибка 403 forbidden. You don’t have permission to access /home/balakinv/www/balakinv.ru/index.php on this server.
    Подскажите, куда копать?

  11. Спасибо автору за статью, все грамотно написано. Жаль раньше эту статью не нашел, а то день мучился. Оказывается все просто, надо было в директиве short_open_tag, заменить off на on и сайт заработал.

  12. Уведомление: Ubuntu | PHP 7.0 и PHP 5.6 на одном сервере | Блог. Личные записки.

  13. Огромное спасибо за статью, однако у меня вылезает ошибка при открытии localhost/phpmyadmin… Вместо графической оболочки с запросом имени и пароля открывается страничка с кракозябрами и вот такой инфой «‘ . __(‘phpMyAdmin Demo Server’) . ‘»… Покопав гугль пока не нашла ответа, как исправить, может быть вы подскажете?

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *