Как включить lamp в ubuntu после выключения. Загрузка образа виртуальной машины. подтверждение настройки при помощи dbconfig-common.

Если вы когда нибудь уже создавали блоги или сайты, вы наверняка знаете, что перед запуском проекта, его бы желательно сначала протестировать на локальном компьютере. С простыми html страницами все просто. Но если вы создаете динамический сайт на какой нибудь CMS, WordPress или Joomla, например, то для их работы нужен веб-сервер. В Windows чаще всего для этого используют Denwer. Но сейчас, как я понимаю, вы собираетесь создать сайт в Linux. И наверное уже успели поискать Denwer для Linux, или Denwer для Ubuntu. Спешу сообщить вам — Denwer для Linux вы не найдете. Он только для Windows. В Linux используют LAMP .

LAMP — это набор серверного ПО, который используют на серверах либо для веб-разработки на персональных компьютерах. Расшифровывается как: L inux A pache M ySQL P HP — основные составляющие комплекса.

Ниже я на своем примере покажу, как установить LAMP в Ubuntu . После этого можно буднет устанавливать CMS и настраивать сайт.

Установка LAMP

Сначала мы установим web-сервер Apache, систему управления базами данных (СУБД) MySQL и язык программирования PHP. Для этого в Ubuntu существует специальная команда. Открываем терминал и пишем:

Sudo apt-get install lamp-server^

Во время настройки MySQL указываем пароль пользователя root:


Хоть это и не обязательно, тем более для локального сервера, но давайте привыкать делать все по правилам. Повторяем пароль еще раз.


Ждем окончания установки и проверяем работу установленных компонентов

Проверяем Apache

Здесь все просто. В браузере переходим по ссылке http://localhost. Должна открыться следующая страница.


Тестируем PHP

Для этого создадим файл «test.php» по адресу /var/www/html, который будет выводить информацию о нашем сервере.

Echo "" | sudo tee /var/www/html/test.php

Перезапустим Apache

Открываем в браузере созданный файл http://localhost/test.php


Страница открылась. PHP работает.

Проверка работы MySQL

Вводим в терминале команду

Mysql -p -u root

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


Для выхода пишем:

Sudo apt-get install phpmyadmin

Во время установки нужно будет указать сервер для phpMyAdmin.


Мы используем Apache, поэтому из списка выбираем apache2, нажимаем «Enter»

Теперь нужно настроить базу данных для phpMyAdmin.


Сделать это можно либо вручную, либо при помощи dbconfig-common . Поскольку мы не опытные администраторы (хотя вдуг кто-то из вас таким и является), не будем рисковать и выбираем настройку с помощью dbconfig-common, то есть выбираем «Да». Нажимаем «Enter».

Вводим пароль root пользователя MySQL, жмем «Enter».


Создаем пароль для регистрации phpMyAdmin на сервере базы данных.


Повторяем его еще раз.


Ждем окончания установки и по окончании перезагружаем Apache

Sudo service apache2 restart

Проверка phpMyAdmin

Пробуем зайти в phpMyAdmin по адресу http://localhost/phpmyadmin. Должна открыться страница входа.


Если вместо этого появилась страница ошибки 404 Not Found (это случается очень часто) — открываем в текстовом редакторе файл «apache2.conf»:

Gedit /etc/apache2/apache2.conf

И в самом конце файла дописываем строчку

Include /etc/phpmyadmin/apache.conf

Сохраняем файл и перезагружаем сервер

Sudo /etc/init.d/apache2 restart

Теперь все должно работать.

Ну вот мы и установили LAMP на Ubuntu. Теперь вы можете создавать свои сайты в Linux. А в следующей статье я расскажу для большего удобства.

Предыдущая запись
Следующая запись

Стек LAMP – это группа открытых программ, которая необходима серверу для поддержки динамических сайтов и веб-приложений. Акроним LAMP расшифровывается как Linux (операционная система), Apache (веб-сервер), MySQL (система управления базами данных) и PHP (серверный язык сценариев для обработки динамического контента).

На сервере уже установлен первый компонент – операционная система Ubuntu, которая является дистрибутивом Linux. Данное руководство поможет установить остальные компоненты стека.

Требования

  • Сервер Ubuntu 16.04.
  • Не-root пользователь с доступом к команде sudo (все инструкции по созданию такого пользователя можно найти ).

1: Установка Apache и настройка брандмауэра

Apache является одним из самых популярных веб-серверов в мире.

Установить Apache очень просто, пакеты этого веб-сервера доступны в стандартном репозитории Ubuntu. Для установки используйте пакетный менеджер apt; он помогает устанавливать программное обеспечение и поддерживать его в актуальном состоянии.

Примечание : Подробнее о менеджере apt — в .

Обновите индекс пакетов и установите Apache:

sudo apt-get update
sudo apt-get install apache2

Чтобы запустить команды с правами sudo, нужно предоставить пароль текущего пользователя.

Получив валидный пароль, менеджер apt сообщит, какие пакеты он собирается установить и сколько дискового пространства для этого потребуется.

Чтобы продолжить, нажмите Y и Enter.

Теперь нужно убедиться, что брандмауэр UFW пропускает трафик HTTP и HTTPS. Просмотрите доступные профили Apache:

sudo ufw app list
Available applications:
Apache
Apache Full
Apache Secure
OpenSSH

Профиль Apache Full разрешает трафик на порт 80 и 443.

sudo ufw app info "Apache Full"
Profile: Apache Full
Title: Web Server (HTTP,HTTPS)
Description: Apache v2 is the next generation of the omnipresent Apache web
server.
Ports:
80,443/tcp

Разрешите входящий трафик:

sudo ufw allow in "Apache Full"

Чтобы убедиться, что теперь брандмауэр поддерживает входящий трафик на порт 80 или 443, посетите внешний IP своего сервера в браузере.

http://your_server_IP_address

На экране должна появиться стандартная страница Apache для Ubuntu:

It works!
This is the default welcome page used to test the correct operation of the Apache2 server after installation on Ubuntu systems. …

Как узнать свой внешний IP-адрес

Существует несколько способов определить внешний IP-адрес сервера при помощи командной строки.

Во-первых, можно использовать инструменты iproute2:

ip addr show eth0 | grep inet | awk "{ print $2; }" | sed "s/\/.*$//"

Команда вернёт несколько адресов, однако сервер может использовать не все эти адреса, а только один из них; проверьте каждый полученный адрес.

Также можно запросить свой адрес у третьей стороны при помощи утилиты curl.

sudo apt-get install curl
curl http://icanhazip.com

2: Установка MySQL

MySQL – это реляционная система управления базами данных (СУБД), которая систематизирует и хранит данные сайта.

Эту систему также можно установить с помощью менеджера apt. Чтобы установить MySQL и несколько вспомогательных программ, введите:

sudo apt-get install mysql-server

Примечание: В данном случае обновлять индекс пакетов не нужно, потому что он был обновлён перед установкой Apache.

Менеджер сообщит список пакетов, которые будут установлены, и необходимое для этого дисковое пространство.

Во время установки программа предложит выбрать и подтвердить пароль root пользователя MySQL. Это пароль администратора MySQL. Обязательно выберите надёжный пароль и установите его.

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

sudo mysql_secure_installation

Сценарий предложит указать root-пароль MySQL, а затем задаст ряд вопросов.

Предупреждение: Сценарий предложит включить параметр VALIDATE PASSWORD PLUGIN. Если этот параметр включен, пароли, которые не соответствуют указанным критериям, будет отклонены системой MySQL как ошибка. Это вызовет проблемы, если вы используете слабый пароль в программах, которые автоматически настраивают учетные данные пользователя MySQL (например PhpMyAdmin). Безопаснее отключить этот параметр и использовать надёжные уникальные пароли.

Чтобы принять настройки по умолчанию, нажмите y на остальные вопросы сценария.

VALIDATE PASSWORD PLUGIN can be used to test passwords
and improve security. It checks the strength of password
and allows the users to set only those passwords which are
secure enough. Would you like to setup VALIDATE PASSWORD plugin?
Press y|Y for Yes, any other key for No:

Если вы включили валидацию паролей, программа предложит выбрать уровень. Уровень 2 – наивысший; при этом валидацию пройдут только пароли, содержащие цифры, буквы верхнего и нижнего регистра и специальные символы. Пароли, состоящие из обычных слов, будут отклонены.

There are three levels of password validation policy:
LOW Length >= 8
MEDIUM Length >= 8, numeric, mixed case, and special characters
STRONG Length >= 8, numeric, mixed case, special characters and dictionary file
Please enter 0 = LOW, 1 = MEDIUM and 2 = STRONG: 1

Если валидация паролей включена, программа покажет надёжность текущего root пароля и предложит изменить его. Если вас устраивает ваш пароль, введите n.

Using existing password for root.
Estimated strength of the password: 100
Change the password for root ? ((Press y|Y for Yes, any other key for No) : n

На остальные вопросы можно нажать Y и Enter. Это удалит анонимных пользователей и тестовые базы данных, отключит удалённый root логин и обновит текущие настройки MySQL.

3: Установка PHP

PHP – это серверный язык сценариев для создания динамических страниц. Он позволяет запускать сценарии, подключаться к БД MySQL и передавать обработанный контент в браузер для отображения.

PHP также можно установить с помощью менеджера apt. Чтобы установить PHP и несколько вспомогательных пакетов (для настройки взаимодействия с Apache и MySQL), введите команду:

sudo apt-get install php libapache2-mod-php php-mcrypt php-mysql

В большинстве случаев рекомендуется настроить обработку файлов веб-сервером Apache при запросе каталога. На данный момент Apache сначала обслуживает index.html. Чтобы веб-сервер обслуживал PHP-файлы первыми, нужно отредактировать файл dir.conf:

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

Файл выглядит так:


DirectoryIndex index.html index.cgi index.pl index.php index.xhtml index.htm

Как видите, файлы index.php находятся в конце строки, а значит, веб-сервер будет обслуживать их в последнюю очередь. Переместите index.php в начало строки DirectoryIndex:


DirectoryIndex index.php index.html index.cgi index.pl index.xhtml index.htm

Сохраните и закройте файл (Ctrl-X, Y, Enter).

Теперь перезапустите Apache, чтобы обновить настройки:

sudo systemctl restart apache2

Проверьте состояние сервиса apache2 при помощи systemctl:

sudo systemctl status apache2
apache2.service - LSB: Apache2 web server
Loaded: loaded (/etc/init.d/apache2; bad; vendor preset: enabled)
Drop-In: /lib/systemd/system/apache2.service.d
└─apache2-systemd.conf
Active: active (running) since Wed 2016-04-13 14:28:43 EDT; 45s ago
Docs: man:systemd-sysv-generator(8)
Process: 13581 ExecStop=/etc/init.d/apache2 stop (code=exited, status=0/SUCCESS)
Process: 13605 ExecStart=/etc/init.d/apache2 start (code=exited, status=0/SUCCESS)
Tasks: 6 (limit: 512)
CGroup: /system.slice/apache2.service
├─13623 /usr/sbin/apache2 -k start
├─13626 /usr/sbin/apache2 -k start
├─13627 /usr/sbin/apache2 -k start
├─13628 /usr/sbin/apache2 -k start
├─13629 /usr/sbin/apache2 -k start
└─13630 /usr/sbin/apache2 -k start
Apr 13 14:28:42 ubuntu-16-lamp systemd: Stopped LSB: Apache2 web server.
Apr 13 14:28:42 ubuntu-16-lamp systemd: Starting LSB: Apache2 web server...
Apr 13 14:28:42 ubuntu-16-lamp apache2: * Starting Apache httpd web server apache2
Apr 13 14:28:42 ubuntu-16-lamp apache2: AH00558: apache2: Could not reliably determine the server"s fully qualified domain name, using 127.0.1.1. Set the "ServerNam
Apr 13 14:28:43 ubuntu-16-lamp apache2: *
Apr 13 14:28:43 ubuntu-16-lamp systemd: Started LSB: Apache2 web server.

Установка модулей PHP (опционально)

Функционал PHP можно расширить при помощи модулей.

Чтобы просмотреть список доступных модулей и библиотек PHP, используйте следующую команду:

apt-cache search php- | less

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

На экране появится список опциональных компонентов с кратким описанием каждого из них:

libnet-libidn-perl - Perl bindings for GNU Libidn
php-all-dev - package depending on all supported PHP development packages
php-cgi - server-side, HTML-embedded scripting language (CGI binary) (default)
php-cli - command-line interpreter for the PHP scripting language (default)
php-common - Common files for PHP packages
php-curl - CURL module for PHP
php-dev - Files for PHP module development (default)
php-gd - GD module for PHP
php-gmp - GMP module for PHP

Чтобы получить подробную информацию о модуле, используйте:

apt-cache show package_name

Данная команда вернёт объёмный вывод, включая поле Description-en, в котором содержится подробное объяснение работы запрашиваемого модуля.

К примеру, можно узнать больше о модуле php-cli:

apt-cache show php-cli

Description-en: command-line interpreter for the PHP scripting language (default)
This package provides the /usr/bin/php command interpreter, useful for
testing PHP scripts from a shell or performing general shell scripting tasks.
.
PHP (recursive acronym for PHP: Hypertext Preprocessor) is a widely-used
open source general-purpose scripting language that is especially suited
for web development and can be embedded into HTML.
.
This package is a dependency package, which depends on Debian"s default
PHP version (currently 7.0).

Чтобы установить выбранный модуль, используйте команду apt-get install, указав имя модуля. Например, чтобы установить php-cli, нужно ввести:

sudo apt-get install php-cli

Чтобы установить несколько модулей с помощью одной команды, просто перечислите имена необходимых модулей через пробел.

sudo apt-get install package1 package2 ...

4: Тестирование PHP

Итак, стек LAMP полностью установлен и готов к работе. Теперь нужно убедиться в том, что веб-сервер взаимодействует с PHP. Для этого нужно создать простой сценарий PHP, info.php. Чтобы веб-сервер Apache мог найти этот файл, его нужно поместить в root-каталог веб-сервера (в Ubuntu это /var/www/html/).

sudo nano /var/www/html/info.php

На экране появится пустой файл. Поместите в него такой код:

phpinfo();

Сохраните и закройте файл.

Теперь попробуйте открыть его в браузере:

http://server_domain_or_IP/info.php

На экране появится веб-страница, содержащая информацию о сервере. Если такая страница появилась, веб-сервер обслуживает файлы PHP.

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

sudo rm /var/www/html/info.php

Заключение

Теперь на сервере Ubuntu 16.04 установлен программный стек LAMP – надёжная и гибкая платформа для развёртывания сайта или приложения.

Чтобы защитить соединения веб-сервера с клиентами, .

Также вам могут пригодиться следующие статьи:

Tags: ,

Который позволяет быстро развернуть на своем компьютере локальный сервер. К сожалению, Denwer работает только на операционной системе (ОС) Windows. Что делать, если Вы используете ОС Linux? В этом случае стоит воспользоваться похожим инструментом под названием LAMP. В этой статье я подробно рассмотрю установку LAMP на Ubuntu , пожалуй самый популярный на сегодняшний день дистрибутив Linux.

Что такое LAMP

LAMP — это аббревиатура, первые буквы слов L inux + A pache + M ySQL + P HP:

  • Linux — операционная система;
  • Apache — веб-сервер;
  • MySQL — система управления базами данных (СУБД);
  • PHP — скриптовый язык программирования, используемый для создания серверной части сайтов.

Фактически, это все что нужно для локального хостинга. Единственное чего не хватает, так это phpMyAdmin, которая упрощает работу с базами данных MySQL. PhpMyAdmin устанавливается отдельно, и о ней я расскажу в одной из следующих статей.

Инструкция по установке LAMP

Откройте терминал и введите команду:

sudo apt- get install lamp- server^

После ввода пароля администратора, пройдет проверка, какие пакету уже есть в операционной системе, а какие следует установить.

Появится вопрос: «Хотитие продолжить?». Вводите букву д и жмите Enter.

Начнется процесс инсталляции.


От вас потребуется только дважды ввести пароль администратора MySQL, остальное будет сделано автоматически.

Как только установка LAMP на Ubuntu будет закончена, откройте браузер и введите адрес локального сервера: http://localhost. Должна появится тестовая страница с надписью «It works!».


Если для запуска, остановки и перезагрузки Denwer"а используются три ярлыка на рабочем столе, то в LAMP для этих целей используются команды:

После этого любой пользователь может делать с этой папкой и файлами в ней все что угодно.

Проверим работоспособность PHP. Для этого скачайте файл (распакуйте архив) и скопируйте его в каталог /var/www. Введите в браузере следующий URL адрес: http://localhost/www/test.php/. Должна появится страница с подробной информацией об используемой версии PHP.


Как создать несколько сайтов на LAMP

На практике гораздо удобнее создавать папки с файлами локальных сайтов у себя в домашней директории, но в этом случае для каждого нового хоста придется выполнить следующий порядок действий:

1. В домашней директории /home/USERNAME создаем папку www. В ней создаем подкаталог с именем нашего будущего сайта. К примеру, mysite. Именно в этот подкаталог впоследствии и нужно будет загружать файлы сайта. Если хотите поднять второй хост, создавайте для него отельную папку в директории /home/USERNAME/www и повторите все действия, описанные ниже.

2. Открываем терминал и переходим в директорию /etc/apache2/sites-available:

Данный файл сразу откроется на редактирование. Прописываем в нем строчки:

и добавляем строчку:

6. Остается только перезапустить сервер apache:

sudo / etc/ init. d/ apache2 restart

Теперь новый сайт будет доступен по адресу http://mysite .

На этом на сегодня все, спасибо за внимание! Берегите себя!

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

Поскольку с Windows отношения у меня не сложились, ни о каких Денверах, WAMP и прочих наборах для этой ОС речи у нас здесь идти не будет. Наш тестовый сервер ставится на Ubuntu 14.04 (или на Linux Mint 17, что, в сущности, одно и то же). В более ранних версиях возможны некоторые отличия. Постараюсь их оговаривать (то, что вспомню).

Введение

Итак, определимся, что нам нужно. Ну для начала (на всякий случай, для новичков) расшифруем аббревиатуру LAMP - L inux, A pache, M ySQL, P HP. Предполагается, что Linux у нас уже есть (Если нет, то ставим, не боимся. Ubuntu или Mint, например, ставится сейчас едва ли не проще, чем Винда.). Что нужно установить.

  1. Apache - собственно, сам web-сервер.
  2. MySQL - система управления базами данных (СУБД).
  3. PHP - язык программирования.

Если вы не являетесь гуру MySQL, и не собираетесь управлять базами в консоли, вводя команды ручками, то следующим пунктом будет

  1. phpMyAdmin - графический интерфейс управления СУБД MySQL

Также нужно подумать и об отправке почты с сайта - это тоже частенько приходится тестировать.

  1. Sendmail - почтовый сервер

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

  1. GD - библиотека для работы с изображениями
  2. CURL - библиотека для работы с URL

Также стоит озаботиться удаленным доступом к нашему серверу. Зачем? Ну, как я уже упоминал, сервер у меня на нетбуке. А работать мне все же удобнее за компьютером с нормальной клавиатурой и большим монитором. Поэтому непосредственно за нетбуком я работаю только в дороге. А у вас может быть наоборот, сервер на рабочем компьютере (или вообще выделенный где-нибудь в кладовке), а вам хочется развалиться с планшетом на диване. Или хочется получать доступ к своему домашнему серверу из любой точки земного шара (правда для этого нужен реальный внешний IP-адрес вашей квартирной сети). В общем, удобная штука. Впрочем, если все это вам не нужно, то следующий пункт опускаем.

  1. SSH-сервер - позволяет работать с удаленным компьютером, как с родным

Ну и наконец, еще один необязательный, но очень полезный пункт. Система контроля версий (СКВ). Если у вас что-то перестало работать, а изменения перед этим были значительными, то откатить их может быть достаточно тяжело. СКВ позволяет вести учет всех изменений и откатиться в любое из предыдущих состояний одной командой. Существеут множество СКВ, но для локального использования (без доступа к интернету) лучше всего подойдет Git - детище Линуса Торвальдса.

  1. Git - система контроля версий

С необходимыми компонентами web-сервера определились, приступаем к установке и настройке

Первые три пункта вполне можно установить одной командой в терминале

Sudo apt-get install lamp-server^

Символ ^ в конце не случаен, это часть команды. У нас требуют пароль администратора, вводим.

Первая оговорка: эта команда действует, кажется, начиная с Ubuntu 13.04. В более ранних версиях все компоненты устанавливать придется отдельно. Впрочем, сделать это тоже можно одной командой

Sudo apt-get install apache2 php5 php5-mysql mysql-server

По ходу установки необходимо ответить на два вопроса. Сначала будет перечень устанавливаемых пакетов и вопрос, хотим ли мы продолжить установку. Жмем Enter. Затем нас попросят ввести пароль рута для MySQL. Вводим, подтверждаем. Дожидаемся конца установки.

Теперь настроим и протестируем все компоненты.

Apache

Открываем браузер и вводим в адресной строке

Http://localhost

После перехода по этому адресу видим приветственную страницу.

Это означает, что сервер работает. В прошлых версиях, кстати, эта страница выглядела значительно проще - просто две строчки текста с заголовком "It works!" на белом фоне.

Теперь выполним кое-какие настройки. Для этого откроем конфигурационный файл Apache /etc/apache2/apache2.conf . Причем сделать это надо из-под рута, т.е. с правами администратора. Можно эту операцию провернуть и в графической оболочке, но их сейчас расплодилось столько, что рассказывать, как это сделать в каждой из них, придется долго. Поэтому, если знаете как - делайте. Если нет, то здесь я опишу, пожалуй, самый простой способ - консольным текстовым редактором nano.

Sudo nano /etc/apache2/apache2.conf

Не забываем. что после ввода команды, начинающейся с sudo, нужно ввести пароль администратора. Больше напоминать не буду.

Здесь ищем теги (это легко сделать встроенным в nano поиском; вызывается он комбинацией клавиш, или, как говорят, хоткеем Ctrl+w) и под последним из них дописываем

AllowOverride All Require all granted

Здесь мы побежали немного впереди паровоза, но раз уж нам пришлось открыть этот файл, то все изменения сразу и внесем. Яснее станет позже, пока объясню вкратце. Мы прописали опции общей директории (папки) для всех наших сайтов, а именно: разрешили использовать для нее файл.htaccess (для ЧПУ, например; но не только) и предоставили права доступа (через веб-сервер) для всех.

ServerName localhost

Сохраняем хоткеем Ctrl+o, подтверждаем энтером и выходим из nano (Ctrl+x).

Поскольку в подавляющем большинстве (если не у всех) у наших сайтов дефолтной страницей будет index.php, а не index.html, то открываем следующий файл.

Sudo nano /etc/apache2/mods-available/dir.conf

И здесь index.php помещаем в начало строки DirectoryIndex, перед index.html. Должно получиться так.

DirectoryIndex index.php index.html index.cgi index.pl index.xhtml index.htm

Сохраняем и закрываем.

Виртуальные хосты

Теперь настроим виртуальные хосты. Зачем? Ну, в общем-то, можно обойтись и без этого. Все сайты хранить в отдельных папках в /var/www/html и заходить на них по адресам вида localhost/sitename (где sitename - имя папки с сайтом). Но тут есть нюанс. Если мы работаем с клоном уже существующего сайта, где прописаны URL вида "/file.html", т.е. со слешем в начале (а такие урлы встречаются довольно часто), то при переходе по такому урлу попадем в localhost/file.html (т.е. в никуда, поскольку такого пути у нас нет) вместо localhost/sitename/file.html. Ведь корневая папка у сервера прописана одна - /var/www/html. И она будет корневой для всех сайтов. Т.е. нам нужно, чтобы корневой папкой каждого сайта была именно его папка. И для каждого нашего сайта нужно будет прописать виртуальный хост.

Предположим, что у нас есть тестовый сайт. И расположен он не в /var/www/html, а в (где user - ваше имя пользователя в Linux). Почему там? В случае переустановки системы (ну мало ли что...) не придется заново заливать все сайты (я ж надеюсь /home у вас на отдельном разделе?). Да и с правами меньше мороки.

Сайт этот у нас состоит всего из одного файла index.html , содержащего следующее

Тестовая страница Тестовая страница

Откроем /etc/hosts

Sudo nano /etc/hosts

Здесь в первую строку добавим имя нашего сайта.

127.0.0.1 localhost testsite

Сохраняем и закрываем (напомню, Ctrl+o и Ctrl+x соответственно).

Теперь выполняем в терминале

Sudo cp /etc/apache2/sites-available/000-default.conf /etc/apache2/sites-available/testsite.conf

Таким образом мы создали кофигурационный файл сайта testsite, скопировав конфигурационный файл дефолтного сайта. Теперь откроем этот файл и настроим его под наш сайт.

Sudo nano /etc/apache2/sites-available/testsite.conf

Здесь раскомментируем (т.е. уберем #) строчку

#ServerName www.example.com

И пропишем имя нашего сайта. Должно получиться:

Сохраняем и закрываем. Теперь включаем наш сайт.

Sudo a2ensite testsite

В терминале нам любезно подсказывают, что активировать новую конфигурацию мы можем, перезагрузив настроки Апача.

Sudo service apache2 reload

В адресной строке браузера пишем

Http://testsite

И видим нашу тестовую страничку. Если не видим - тщательно проверяем правильность своих предыдущих действий.

Ну и в дальнейшем будем работать уже с этим тестовым сайтом, а не с дефолтным.

ЧПУ

В большинстве случаев нам придется работать с ЧПУ-ссылками. Поэтому необходимо подключить модуль Апача mod_rewrite.

Sudo a2enmod rewrite

Теперь проверим. Создадим в корне нашего сайта (папке testsite ) файл .htaccess и запишем сюда следующее

RewriteEngine on RewriteRule ^test sef.html [L]

Это означает, что запросы на testsite/test будем перенаправлять на страницу sef.html.

Теперь создаем этот самый файл sef.html с содержимым, аналогичным index.html, кроме заголовка и текста:

Тест ЧПУ Тест ЧПУ

Идем на http://testsite/test . Если видим нашу новосозданную страницу, значит порядок.

PHP

Теперь проверим PHP. Для этого в папке /home/user/public_html/testsite создадим текстовый файлик со следующим содержимым:

Сохраняем этот файлик под именем, например, info.php. Если мы теперь перейдем по адресу http://testsite/info.php , то увидим полную информацию об установленном в системе PHP.



Если увидели - PHP работает.

Если сервер локальный, и доступа извне к нему нет, то файлик этот можно оставить, он, возможно, еще пригодится. Но ни в коем случае не делайте этого на общедоступном сервере, здесь этот файл должен быть удален незамедлительно после проверки!

php.ini

Ну а теперь поковыряемся в конфигурационном файле PHP, находящемся по адресу /etc/php5/apache2/php.ini . Да не просто поковыряемся, а и кое-что поменяем.

Sudo nano /etc/php5/apache2/php.ini

Короткая форма записи
short_open_tag = Off

Это значит, что по умолчанию запрещено использовать короткую форму записи тегов, т.е.

Показ ошибок
display_errors = Off

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

Display_startap_errors = Off

Показ ошибок при запуске. Если нужно отследить ошибки при запуске PHP, меняем на On .

Track_errors = Off

Если поставим On , то последняя произошедшая ошибка будет первой в переменной $php_errormsg.

Сохраняем и закрываем.

Размеры файлов

По умолчанию максимальный размер загружаемого файла ограничен 2 МБ. Это касается и импорта баз данных в phpMyAdmin. А базы довольно часто бывают больше, и даже значительно. В крупных интернет-магазинах база размером 40 МБ - не редкость. Но даже этот размер меркнет перед базой размером более 800 МБ, с которой мне пришлось однажды столкнуться. Там изображения хранились прямо в базе - в формате BLOB. Поэтому в случае, если нам придется работать с подобными базами, меняем следующие параметры:

Upload_max_filesize = 2M post_max_size = 8M

Устанавливаем устраивающие нас значения.

Вполне возможно, придется поменять еще и

Max_execution_time = 30

MySQL

Теперь проверяем MySQL. Для этого в терминале вводим

Mysql -p -u root

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

Welcome to the MySQL monitor. Commands end with ; or \g.
Your MySQL connection id is 36
Server version: 5.5.38-0ubuntu0.14.04.1 (Ubuntu)

Copyright (c) 2000, 2014, Oracle and/or its affiliates. All rights reserved.

Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners.

Type "help;" or "\h" for help. Type "\c" to clear the current input statement.

Все OK. MySQL работает. Вводим quit для выхода.

Можно еще одним махом проверить работу связки MySQL и PHP. Для этого создадим файл db-test.php (все там же, в корне нашего сайта - /home/user/public_html/testsite ) и запишем туда следующее.

Перейдем по адресу http://testsite/db-test.php . Если видим текст "OK... Localhost via UNIX socket", то все хорошо.

Sudo apt-get install phpmyadmin

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



Нажимаем Enter. Через некоторое время появится еще одно окно с предложением установить и настроить базу данных. У нас уже выбрано "Да", жмем Enter. Вводим пароль административного пользователя базы данных (тот самый, который вводили при установке MySQL), жмем Enter, задаем пароль для регистрации phpmyadmin в базе, подтверждаем. Дожидаемся конца установки.

Теперь в терминале последовательно вводим

Sudo php5enmod mcrypt sudo service apache2 restart

И идем в браузер.

Http://localhost/phpmyadmin

Видим окно входа в phpMyAdmin



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



Библиотеки GD и CURL

Теперь доустановим библиотеки PHP GD и CURL. Здесь все крайне просто. В терминале вводим

Sudo apt-get install php5-gd php5-curl

Опять-таки, подтверждаем, что мы действительно хотим их установить (тоже упоминаю об этом в последний раз). И перезагружаем Apache.

Sudo service apache2 restart

Почтовый сервер

SSMTP

Теперь почтовик. В принципе, можно обойтись SSMTP - это легкая утилита, отправляющая письма через сторонний SMTP-сервер, например Gmail. Но в этом случае о тестировании почты оффлайн придется забыть. Если тестирование оффлайн не актуально, то ставим и настраиваем:

Sudo apt-get install ssmtp sudo nano /etc/ssmtp/ssmtp.conf

И здесь меняем значения на следующие (для Gmail-сервера).

[email protected] mailhub=smtp.gmail.com:587 [email protected] AuthPass=password UseSTARTTLS=YES

Здесь [email protected] - ваш существующий адрес на Gmail; password - пароль вашего аккаунта на Gmail. Если не хотите Gmail, то для других сервисов настройки принципиально отличаться не будут.

Sendmail_path = /usr/sbin/ssmtp -t

Перезагружаем сервер.

Sudo service apache2 restart

А теперь проверим. Создадим файл index.php в testsite, откроем его и пропишем туда следующее

Здесь опять же [email protected] - ваш существующий адрес, к которому у вас есть доступ (здесь - какой угодно, не обязательно Gmail).

Теперь перейдем по http://testsite . Отобразиться у нас должна пустая страница. Теперь проверяем [email protected] - туда должно прийти наше тестовое письмо.

Sendmail

Если же необходимо тестировать отправку почты оффлайн, ставим Sendmail.

На всякий случай. Речь не идет об одновременном использовании SSMTP и Sendmail - устанавливаем либо то, либо другое!

Sudo apt-get install sendmail

По окончанию установки запускаем

Sudo sendmailconfig

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

Sudo nano /etc/hosts

И здесь в строчку с 127.0.0.1 дописываем через пробел

Localhost.loc testserver

Здесь testserver - имя нашего сервера. Оно уже прописано строчкой ниже для 127.0.1.1. Сохраняем, закрываем и перезапускаем сервер.

Sudo service apache2 restart

Теперь командуем

Telnet localhost smtp

Получаем.

Trying 127.0.0.1...
Connected to localhost.
Escape character is "^]".
220 localhost.loc ESMTP Sendmail 8.14.4/8.14.4/Debian-4.1ubuntu1; Sat, 26 Jul 2014 21:46:56 +0300; (No UCE/UBE) logging access from: localhost(OK)-localhost

Начинаем тестирование. Вводим

Helo localhost Ответ 250 localhost.loc Hello localhost , pleased to meet you Далее чередуются команды и ответы mail from: [email protected] 250 2.1.0 [email protected]... Sender ok rcpt to: user@localhost

Здесь user - ваше имя пользователя в Linux.

250 2.1.5 user@localhost... Recipient ok data 354 Enter mail, end with "." on a line by itself

Теперь мы вводим текст тестового письма. Закончить его обязательно точкой.

Test message .

Жмем Enter и получаем ответ.

250 2.0.0 s6QItc6L010145 Message accepted for delivery

Прекрасно. А теперь настроим почтовый клиент, чтобы иметь возможность видеть отправленные с сайта и полученные в user@localhost письма. Я пользуюсь Thunderbird, поэтому настраивать будем его. Идем в Создать - Другие учетные записи. Выбираем тип учетной записи Unix Mailspool (Movemail), жмем Далее. Выводимое имя абсолютно без разницы, мы сюда письма только получать будем, а Адрес электронной почты прописываем user@localhost (вновь, user - это ваше имя пользователя в Ubuntu). Жмем Далее, затем еще раз Далее, и еще раз Далее, и, наконец, Готово. Если все сделали правильно - во входящих видим наше только что отправленное при тестировании письмо.

Можем протестировать через PHP, аналогично тому, как мы делали это с , только в index.php исправим адрес получателя на user@localhost .

Теперь при работе с популярными CMS в админке будем прописывать адрес получателя писем с сайта [email protected] . Почему не user@localhost ? Потому что такой адрес не пройдет валидацию. И не устаю напоминать: user заменяем на ваше имя пользователя в Ubuntu.

SSH

Осталось установить SSH-сервер. Как уже говорилось, это нужно лишь в том случае, если необходимо управлять сервером удаленно.

Sudo apt-get install ssh sudo nano /etc/ssh/sshd_config

Открыли конфигурационный файл. Здесь я бы рекомендовал поменять порт, на котором ssh-сервер будет ожидать подключения. Находим строку

Port 22

и меняем на любой из диапазона от 1025 до 65536, . Главное - не забыть его потом. В нашем примере пропишем

Port 1111

и будем его использовать в дальнейших примерах.

PermitRootLogin yes

и меняем значение yes на no .

Можно вообще запретить входить по SSH всем, кроме одного пользователя - вас. Для этого добавляем следующую строку (здесь, как всегда, user нужно заменить на ваше имя пользователя).

AllowUsers user

Перезагружаем SSH-сервер

Sudo service ssh restart

А теперь пробуем подключиться с удаленного устройства. Предположим, что IP-адрес сервера - 192.168.1.2. Вводим (заменив user на свое имя пользователя на сервере)

Ssh -p 1111 [email protected]

Вводим свой пароль на сервере и наслаждаемся. Чтобы отключиться, вводим exit .

Примечание . Если вы уже подключались к серверу с какого-либо устройства, но переустановили ОС на сервере, то после этого подключиться уже не получится. В этом случае удалите файл /home/user/.ssh/known_hosts на клиенте, подключитесь вновь и ответьте yes на вопрос Are you sure you want to continue connecting? (действительно ли вы хотите подключиться?). Все, можно работать.

Для заливки файлов на сервер удаленно также можно воспользоваться SSH, а не традиционным FTP. Можно это делать и в консоли. Но можно и проще. Показываю на примере файлового менеджера Dolphin в KDE.

В левой панели (Точки входа) жмем Сеть, здесь Добавить сетевую папку. Выбираем Папка SSH, жмем Далее и заполняем поля:

Имя - пишем что угодно, лишь бы понимать, куда мы подключаемся. Ну например, LocalServer.

Пользователь - имя пользователя на сервере.

Сервер - IP-адрес (или имя, если прописано в /etc/hosts) сервера.

Порт - мы меняли на 1111, его здесь и прописываем. Если не меняли - оставляем 22.

Протокол - выбираем fish.

Папка - для удобства пропишем корневую папку нашего web-сервера, т.е. /home/user/public_html. Теперь при подключении будем сразу попадать туда. Если оставить поле пустым - будет открываться корень Ubuntu, т.е. /.

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

Git

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

Sudo apt-get install git

Настраиваем.

Git config --global user.name "User Name" git config --global user.email "[email protected]"

Здесь username - ваше имя, а [email protected] - ваша существующая почта. В общем-то, это все. Об использовании Git в ближайшем будущем надеюсь написать отдельную статью.

Удаленный доступ к сайтам

Осталось понять, как зайти браузером с удаленного компьютералокальной сети) на наш сервер. Возьмем мою ситуацию. Напомню, сервер - на нетбуке, а работаю я на стационарном компьютере. Так вот, на компьютере открываем /etc/hosts и в новой строке прописываем

192.168.1.2 testsite

Здесь 192.168.1.2 - IP-адрес нашего сервера, testsite - имя тестового сайта (их может быть много через пробел). Теперь, набрав в адресной строке http://testsite, мы попадем именно на testsite на нашем сервере.

Владельцы и права

Ну и напоследок, еще три команды.

Sudo adduser user www-data chown user:www-data -R public_html chmod -R 775 public_html

Здесь user - ваше имя пользователя в Ubuntu. Мы добавили себя в группу www-data (поскольку от пользователя www-data группы www-data работает Apache и, как следствие, все популярные CMS) и сделали группу www-data группой владельца корневой папки наших сайтов и присвоили для этой папки права чтения и записи для владельца и его группы. Это нужно для того, чтобы у пользователя user (от имени которого мы заливаем файлы на сервер) и пользователя www-data (от имени которого работет CMS) имели одинаковые права. При добавлении каждого сайта над его папкой нужно будет производить эту процедуру (кроме первой команды; только не ко всей public_html, а лишь к папке нового сайта). Также нужно это делать для новых файлов, требующих изменения со стороны сервера.

Все, можно работать.

В продолжение темы:
Linux

Социальная сеть «Фотострана» многим не нравится своей навязчивостью, что также проявляется, когда пользователь желает удалить свой аккаунт. В самой сети есть подводные камни,...

Новые статьи
/
Популярные