Установка apache, php, mysql, phpmyadmin в ubuntu linux

Настройка apache2

Тут я буду рассказывать основные настройки веб-сервера апач, но по мере возможности. Я с каждым разом редактирую данную статью и добавляю что — то новое в описание.

Виртуальные хосты (Virtualhosts).

Хочу начать я свою настройку с создания и настройки Virtualhosts (виртуальных хостов). Есть много разных способов чтобы создать виртуальные хосты, но я бы посоветовал данный метод (поискав и перебрал много вариантов и литературы, я выбрал именно его).

По умолчанию, веб-сервер апач «слушает» все IP-адреса которые доступны для виртуального сервера. Это не есть хорошо, по этому нужно подредактировать  и настроить его на прослушивание только определенного ИП-адреса. Даже если Вы имеете только один IP адрес!

Делаем изменение в файле ports.conf:

# vim /etc/apache2/ports.conf
NameVirtualHost 192.168.16.66 :80

Измените данный ИП-адрес на свой!

Делаем изменение в файле default:

# vim /etc/apache2/sites-available/default
<VirtualHost 192.168.16.66:80>

Теперь я создам 1 виртуальный хост в качестве примера:

# vim /etc/apache2/sites-available/test
<VirtualHost 192.168.16.66:80>
ServerAdmin mail@192.168.16.66 # введите свой емейл
ServerName 192.168.16.66 # замените на свой IP
ServerAlias www.192.168.16.66 # замените на свой ИП-адрес или доменное имя
DocumentRoot /var/www/192.168.16.66/public_html/ # домашняя директория для данного домена или сайта
ErrorLog /var/www/192.168.16.66/logs/error.log # файл для хранения ошибок
CustomLog /var/www/192.168.16.66/logs/access.log combined # # папка для хранения ошибок
</VirtualHost>

Создадим папки которых нет:

# mkdir -p /var/www/192.168.16.66/
# mkdir -p /var/www/192.168.16.66/public_html
# mkdir -p /var/www/192.168.16.66/logs

После всех изменений, нужно подключить данный домен в apache:

# a2ensite test

И перезагрузить веб-сервер:

# /etc/init.d/apache2 reload

Можно отключить данный сайт (виртуальный хост test)следующей командой:

# a2dissite test

Чтобы проверить работает ли все нормально, я скопирую файл (php_info):

# cp /var/www/php_info.php /var/www/192.168.16.66/public_html/

Можно открыть браузер и перейти:http://192.168.16.66/php_info.php

Настройка phpMyAdmin в Ubuntu

Теперь phpMyAdmin будет доступен по адресу ip_вашего_сервера/phpmyadmin. Вы можете проверить, всё ли работает, просто открыв этот адрес в браузере:

1. Создание пользователя для phpMyAdmin

По умолчанию, вы не сможете авторизоваться в phpMyAdmin от пользователя root, потому что по умолчанию данная особенность отключена. В целях безопасности включать данную опцию не рекомендуется. В данном случае необходимо создать нового пользователя и наделить его полномочиями root. Для создания нового пользователя перейдите в консоль MySQL введя команду в терминале:

После ввода пароля root пользователя MySQL, введите следующие команды:

При помощи первых двух команд был создан новый пользователь с именем test, ему был присвоен пароль и предоставлены все возможные привилегии (такие как создание, удаление, редактирование баз данных, таблиц и т.д.). Третья команда обновляет заданные ранее привилегии.

Теперь необходимо авторизоваться в phpMyAdmin при помощи созданного пользователя:

2. Защита phpMyAdmin

Если phpMyAdmin установлен на производственном сервере, который доступен из сети, то его необходимо обезопасить, добавив авторизацию. Для этого создайте файл /usr/share/phpmyadmin/.htaccess со следующим содержимым:

Данные строки означают:

  • AuthType Basic — устанавливает тип аутентификации, мы указываем, что будем использовать пароль;
  • AuthName — задает сообщение, которое будет видеть пользователь;
  • AuthUserFile — файл, откуда программа будет брать имена пользователей и пароли;
  • Require — указываем, что аутентификация обязательна.

Далее создайте новый пароль для своего пользователя:

Чтобы настройки из файла .htaccess заработали в этой директории, необходимо, чтобы для неё в файле /etc/apache2/apache2.conf значение AllowOverride было All:

Сохраните изменения и закройте файл. Далее перезапустите apache:

Теперь, если вы попытаетесь открыть phpMyAdmin, то вам необходимо пройти авторизацию:

Установка phpmyadmin на Linux — Debian

Перед установкой phpmyadmin на Дебиан, у вас уже должны быть установлены Apache, MySQL и PHP. Т.е. хостинг работает, но недостает phpmyadmin — инструмента для удобства при работе с базами данных, значительно упрощающего администрирование сервера БД (добавление и удаление пользователей, создание и удаление баз данных, выполнение SQL-запросов).

Для установки phpMyAdmin на Debian выполните команду:

apt-get install phpmyadmin

После этого загрузятся все компоненты и начнется процесс установки — перед вами будет мастер настройки phpMyAdmin. Первый вопрос мастера установки — об установленном вебсервере, выберите свой (apache2, lighthttpd).

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

Далее введите пароль root пользователя (администратора) MySQL-сервера. Нажмите «Enter» и затем задайте пароль для phpMyAdmin.

Добавьте phpMyAdmin к конфигурации вашего Apache и длительная установка phpMyAdmin будет завершена. Для этого откройте файл конфигурации Apache:

nano /etc/apache2/apache2.conf

Переместитесь в самый конец и добавьте одну строчку — путь к конфигу:

Include /etc/phpmyadmin/apache.conf

Сохраните изменения (Ctrl+O) и закройте файл (Ctrl+X)

Перезапустите Апач:

service apache2 restart

Само время проверить работу phpMyAdmin. Откройте браузер и перейдите по адресу http://ip/phpmyadmin. Ура, открылась страница входа в панель phpMyAdmin — значит все работает как надо!

Если у вас возникли проблемы, вы можете посмотреть дополнительное видео по теме установки phpMyAdmin:

https://youtube.com/watch?v=wHpLhiBsLY4

Шаг 5 — Тестирование обработки PHP на веб-сервере

Мы указали персонализированное расположение для хостинга файлов и папок сайта и теперь можем создать тестовый скрипт PHP, чтобы подтвердить способность Apache обрабатывать запросы для файлов PHP.

Создайте новый файл с именем в корневой папке сайта:

В результате откроется пустой файл. Вставьте в файл следующий код PHP:

/var/www/your_domain/info.php

После завершения редактирования сохраните и закройте файл.

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

Вы увидите приблизительно следующую страницу:

На этой странице содержится информация о вашем сервере с точки зрения PHP. Эта информация полезна для отладки и обеспечения правильного применения настроек.

Если вы видите эту страницу в своем браузере, ваша система PHP работает надлежащим образом.

После проверки соответствующей информации о вашем сервере PHP с помощью данной страницы рекомендуется удалить созданный вами файл, поскольку он содержит конфиденциальную информацию о вашей среде PHP и о вашем сервере Ubuntu. Для этого можно использовать :

Если впоследствии вам снова потребуется эта информация, вы всегда можете воссоздать эту страницу.

Как установить Apache на Windows

Перейдите на сайт apachelounge.com/download и скачайте .zip архив с веб-сервером:

Распакуйте папку Apache24 из этого архива в C:\Server\bin\.

Перейдите в каталог C:\Server\bin\Apache24\conf\ и откройте файл httpd.conf любым текстовым редактором.

В нём нам нужно заменить ряд строк.

Меняем

Define SRVROOT "c:/Apache24"

на

Define SRVROOT "c:/Server/bin/Apache24"

меняем

#ServerName www.example.com:80

на

ServerName localhost

меняем

DocumentRoot "${SRVROOT}/htdocs"
<Directory "${SRVROOT}/htdocs">

на

DocumentRoot "c:/Server/data/htdocs"
<Directory "c:/Server/data/htdocs">

меняем

DirectoryIndex index.html

на

DirectoryIndex index.php index.html index.htm

меняем

    # AllowOverride controls what directives may be placed in .htaccess files.
    # It can be "All", "None", or any combination of the keywords:
    #   AllowOverride FileInfo AuthConfig Limit
    #
    AllowOverride None

на

    # AllowOverride controls what directives may be placed in .htaccess files.
    # It can be "All", "None", or any combination of the keywords:
    #   AllowOverride FileInfo AuthConfig Limit
    #
    AllowOverride All

и меняем

#LoadModule rewrite_module modules/mod_rewrite.so

на

LoadModule rewrite_module modules/mod_rewrite.so

Сохраняем и закрываем файл. Всё, настройка Apache завершена! Описание каждой изменённой директивы вы найдёте на этой странице.

Откройте командную строку (это можно сделать нажав одновременно клавиши Win+x).

Выберите там Windows PowerShell (администратор) и скопируйте туда:

c:\Server\bin\Apache24\bin\httpd.exe -k install

Если поступит запрос от файервола в отношение Apache, то нажмите Разрешить доступ.

Теперь вводим в командную строку:

c:\Server\bin\Apache24\bin\httpd.exe -k start

И нажмите Enter.

Теперь в браузере набираем http://localhost/ и видим следующее:

Это означает, что веб-сервер работает. Чтобы увидеть там файлы, добавьте их в каталог c:\Server\data\htdocs\ — это главная папка для данных сервера, где будут размещаться все сайты.

Установка PHP 5

Самый распространённый метод установки и использования PHP — как модуль сервера (в отличии от CGI). Установка и активация модуля достаточно проста:

Перезагружаем изменения:

sudo touch /var/www/site.loc/public_html/test.php
echo "<?php phpinfo(); ?>" | sudo tee /var/www/site.loc/public_html/test.php

По адресу http://site.loc/test.php нас должен ожидать подробный отчёт о статусе PHP на нашем сервере.

Несколько советов по первоначальной настройке php-интерпретатора:

  • Файл конфигурации можно найти в phpinfo, значение «Loaded Configuration File», в моём случае это «/etc/php5/apache2/php.ini»;
  • Установите значение «short_open_tag = On» в файле php.ini и перезагрузите сервер, это позволит использовать сокращённый синтаксис php;
  • Включиет mod_rewrite «sudo a2enmod rewrite» и перезагрузите сервер, это позволит создать ЧПУ. В конфигурацию VirtualHost полезно добавить для манипуляцией «RewriteEngine On» из файла .htaccess, в некоторых случаях отсутствие такой директивы не позволит управлять ЧПУ посредствам mod_rewrite.

Шаг 1: Установка Apache на Ubuntu 16.10 или 17.04

1. Начнём с установки веб-сервера Apache из официальных репозиториев Ubuntu. Это делается командой:

sudo apt install apache2 vim
# ИЛИ
sudo apt-get install apache2 vim

2. После успешной установки веб-сервера Apache, убедитесь следующими командами, что демон запущен и к какому порту он привязан (по умолчанию apache прослушивает 80 порт):

sudo systemctl status apache2.service
sudo ss -tlpn

3. Установка ServerName для подавления предупреждения

Далее мы добавим одну строку в файл /etc/apache2/apache2.conf чтобы убрать сообщение с предупреждением. Хотя это и безвредно, если вы не установили ServerName на глобальном уровне, вы будете получать следующее сообщение о синтаксической ошибке в конфигурации Apache:

sudo apache2ctl configtest
AH00558: 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
Syntax OK

Откройте главный конфигурационный файл текстовым редактором:

sudo gedit /etc/apache2/apache2.conf

Если вы настраиваете систему без графического интерфейса, вместо gedit используйте, например, vim:

sudo vim /etc/apache2/apache2.conf

Внутри, в конце файла добавьте директиву ServerName, указывающую на ваше основное доменное имя. Если у вас нет связанного с вашим сервером доменного имени, вы можете использовать внешний IP сервера:

. . .
ServerName server_domain_или_IP

Если вы забыли внешний IP сервера, то проверить его можно так:

curl suip.biz/ip/

Для локального веб-сервера можно сделать следующую запись:

ServerName localhost

Когда закончите, сохраните и закройте файл.

Далее, проверьте ошибки синтаксиса набрав:

sudo apache2ctl configtest
Syntax OK

Поскольку мы добавили глобальную директиву ServerName, предупреждения больше нет.

Для того, чтобы изменения вступили в силу, перезапустите Apache:

sudo systemctl restart apache2

4. Для проверки работы веб-сервера apache, откройте в браузере IP адрес сервера. Если вы устанавливаете на локальном компьютере, но наберите localhost. Должна появиться страница по умолчанию для веб-сервера, примерно как на скриншоте:

5. Следующей командой мы добавляем службу веб-сервера в автоматическую автозагрузку при каждом запуске компьютера:

sudo systemctl enable apache2

Установка PHP 5

Чтобы установить модуль PHP для Apache используйте любой метод для того, чтобы установить пакет .
Включить модуль PHP 5 в Apache можно выполнив:

sudo a2enmod php5

Это создаст символическую ссылку /etc/apache2/mods-enabled/php5 указывающую на /etc/apache2/mods-availble/php5 .
Если не вы используете устаревшие в PHP короткие теги (что крайне нерекомендуемо) вместо откройте от имени суперпользователя
файл , найдите в нем строчку

short_open_tag = On

и замените ее на

short_open_tag = Off

Это заставит игнорировать открывающие теги в файлах, обрабатываемых PHP.

Для того, чтобы изменения вступили в силу перезапустите Apache

sudo service apache2 restart

note

Проверка PHP

В папке /var/www создайте файл test.php, дайте права на чтение из него всем (или хотя бы пользователю ) и запишите в него следующую строку:

<?php phpinfo(); ?>

Возможные ошибки

Ваш браузер предлагает вам скачивать PHP-страницы, а не показывает вам их? Если Apache не обрабатывает PHP-страницы после того как вы ео перезапустили, попробуйте установить пакет . Обычно он устанавливается вместе с пакетом , но он может быть удален изза конфликта пакетов, которым нужна другая версия PHP.

Если при выполнении команды вы получаете в ответ

This module does not exist!

попробуйте полностью удалить пакет

sudo apt-get purge libapache2-mod-php5

и установить его заново.

Не забывайте очищать кеш браузера перед тем как снова тестировать свой сайт.

Шаг 6. Настройте Apache для phpMyAdmin.

Создайте файл конфигурации виртуального хоста Apache для phpMyAdmin:

nano /etc/apache2/conf-available/phpmyadmin.conf

Добавьте следующую строку:

Alias /phpmyadmin /usr/share/phpmyadmin

<Directory /usr/share/phpmyadmin>
    Options SymLinksIfOwnerMatch
    DirectoryIndex index.php

    <IfModule mod_php5.c>
        <IfModule mod_mime.c>
            AddType application/x-httpd-php .php
        </IfModule>
        <FilesMatch ".+\.php$">
            SetHandler application/x-httpd-php
        </FilesMatch>

        php_value include_path .
        php_admin_value upload_tmp_dir /var/lib/phpmyadmin/tmp
        php_admin_value open_basedir /usr/share/phpmyadmin/:/etc/phpmyadmin/:/var/lib/phpmyadmin/:/usr/share/php/php-gettext/:/usr/share/php/php-php-gettext/:/usr/share/javascript/:/usr/share/php/tcpdf/:/usr/share/doc/phpmyadmin/:/usr/share/php/phpseclib/
        php_admin_value mbstring.func_overload 0
    </IfModule>
    <IfModule mod_php.c>
        <IfModule mod_mime.c>
            AddType application/x-httpd-php .php
        </IfModule>
        <FilesMatch ".+\.php$">
            SetHandler application/x-httpd-php
        </FilesMatch>

        php_value include_path .
        php_admin_value upload_tmp_dir /var/lib/phpmyadmin/tmp
        php_admin_value open_basedir /usr/share/phpmyadmin/:/etc/phpmyadmin/:/var/lib/phpmyadmin/:/usr/share/php/php-gettext/:/usr/share/php/php-php-gettext/:/usr/share/javascript/:/usr/share/php/tcpdf/:/usr/share/doc/phpmyadmin/:/usr/share/php/phpseclib/
        php_admin_value mbstring.func_overload 0
    </IfModule>

</Directory>

# Authorize for setup
<Directory /usr/share/phpmyadmin/setup>
    <IfModule mod_authz_core.c>
        <IfModule mod_authn_file.c>
            AuthType Basic
            AuthName "phpMyAdmin Setup"
            AuthUserFile /etc/phpmyadmin/htpasswd.setup
        </IfModule>
        Require valid-user
    </IfModule>
</Directory>

# Disallow web access to directories that don't need it
<Directory /usr/share/phpmyadmin/templates>
    Require all denied
</Directory>
<Directory /usr/share/phpmyadmin/libraries>
    Require all denied
</Directory>
<Directory /usr/share/phpmyadmin/setup/lib>
    Require all denied
</Directory>

Сохраните и закройте файл, затем перезапустите веб-сервер Apache:

a2enconf phpmyadmin.conf
sudo systemctl reload apache2
Рейтинг
( Пока оценок нет )
Понравилась статья? Поделиться с друзьями:
Мой редактор ОС
Добавить комментарий

;-) :| :x :twisted: :smile: :shock: :sad: :roll: :razz: :oops: :o :mrgreen: :lol: :idea: :grin: :evil: :cry: :cool: :arrow: :???: :?: :!: