Server Ubuntu на локальной машине — установка и настройка.
Для установки в качестве сервера, в гостевую операционную систему Ubuntu, воспользуемся пакетом LAMP — Linux + Apache + MySql + PHP. Это стандартный пакет Ubuntu, который устанавливается и настраивается с помощью утилиты tasksel. После установки, для работы сервера с нашими сайтами, нам потребуется внести небольшие изменения в настройках. Но, первым делом лечим русскую раскладку. В версии Ubuntu 12.04, при работе в консоли, есть проблема с отображением русских букв — вместо них квадраты).
Лечим квадраты в консоли Ubuntu 12.04.
Сочетание клавиш для перехода в консоль из графического интерфейса, если у вас установлена версия Desktop, — ctrl+alt+F1. Обратно — ctrl+alt+F7. Все дальнейшие примеры я буду приводить именно с консолью. Также можно воспользоваться графическим терминалом, не выходя из графического интерфейса — ctrl+alt+T.
Для начала проверим как отображается кириллица, переходим в консоль (ctrl+alt+F1) — вводим логин и пароль, пароль вводится без отображения символов. Заходим под root-ом:
sudo su
Эта команда будет актуальна в течение сессии. Root — это супер пользователь, который имеет доступ к системным файлам. Под root-ом может войти только первый зарегистрированный в системе. Если вы будете давать команды под своим именем, то перед каждой командой добавляем sudo.
dpkg-reconfigure console-setup
Если вы видите что-то на подобие этого:
![]()
значит, проблема существует и требует вмешательства. Эта проблема замечена только в версии 12.04, в русском сообществе Ubuntu я вычитал как это лечить — делюсь. Открываем файл:
nano /etc/initramfs-tools/initramfs.conf
В самый низ добавляем FRAMEBUFFER=Y, сохраняем изменения ctrl+o, для подтверждения Enter и закрываем файл ctrl+x. Обновляем образ рамдиска и рестартуем:
update-initramfs -u reboot
После этого, с отображением кириллицы будет порядок, проверяем:
dpkg-reconfigure console-setup
Подготовка перед установкой LAMP.
Первым делом обновляем индексы пакетов. Необходимо соединение с интернетом.
apt-get update
Обновляем пакеты.
apt-get upgrade
Устанавливаем OpenSSH сервер.
apt-get install ssh openssh-server
Теперь нам нужно прописать IP-адреса, откроем окно VirtualBox и переходим в настройки файл —> Настройки, в разделе <<Сеть>> жмём на изображение отвёртки.
![]()
В открывшемся окне будет IP-адрес, под которым работает VirtualBox. В вкладке DNCP cerver — IP-адреса для динамических настроек сервера. Здесь они нам не понадобятся.
![]()
Переходим в консоль командной строки и открываем файл:
nano /etc/network/interfaces
Пропишем статические IP-адреса:
- auto eth0
- iface eth0 inet static
- address 192.168.56.3
- netmask 255.255.255.0
- network 192.168.56.100
- broadcast 192.168.56.255
- gateway 192.168.56.100
Сохраним и рестартуем, чтобы изменения вступили в силу.
/etc/init.d/networking restart
Для редактирования настроек сети, завершаем работу Ubuntu. Открываем VirtualBox и переходим на вкладку сеть, нашего сервера. Адаптер 1 — изменяем на виртуальный адаптер хоста, кабель подключен — это позволит нам соединятся с сервером из основной операционной системы. Добавляем ещё один адаптер 2 — соединение NAT, кабель должен быть подключен. Эта настройка нам нужна для выхода в интернет из гостевой операционной системы. Сохраним изменения и запустим сервер ubuntu. С этого момента все дальнейшие настройки будем производить через PuTTY. Скачать можно перейдя по ссылке. Открываем PuTTY и коннектимся к нашему серверу, записываем наш IP адрес 192.168.56.3. Название сервера — Ubuntu-Server. Вкладка translyation устанавливаем кодировку UTF-8 и возвращаемся на вкладку session — сохраняем настройки Save.
![]()
Заходим через ssh — отмечаем созданное нами подключение и жмём Open. Логинимся и поехали дальше.
Установка LAMP-сервера.
Установим программу tasksel — это инструмент для установки несколько зависимых пакетов в вашу систему, в качестве единой задачи. Нам он нужен будет для установки LAMP-сервера
apt-get install tasksel
Теперь установим LAMP-сервер.
tasksel install lamp-server
Вас попросят указать пароль для доступа к базе данных MySQL. После установки, открываем свой браузер в windows и набираем в адресной строке 192.168.56.3, если всё сделано правильно, вы увидите стандартную надпись Apache — It works! Всё работает! Поздравляю, сервер установлен.
Установка phpMyAdmin.
Для доступа и работы с базой данных MySQL установим phpMyAdmin
apt-get install phpmyadmin
У вас запросят указать название сервера отмечаем — Apache2, чтобы отметить жмём пробел. Для перехода Tab. Дальше, у вас спросят о настройках БД — да. В следующем окне введите пароль, который вы задавали для базы данных MySQL. Далее пароль для учётной записи, если оставить пустым — сгенерируется автоматически. Ну что? Пошли проверять? В строке браузера вводим 192.168.56.3/phpmyadmin — авторизуемся и входим в базу данных. Пользователь по умолчанию root.
Чтобы не вводить в адресной строке браузера IP-адрес нашего сервера, пропишем его название в файле hosts — открываем в редакторе file:///C:\Winows\System32\drivers\etc\hosts и регистрируем IP:
192.168.56.3 www.ubuntu-server.ru ubuntu-server.ru
Это название для примера, вы можете обозвать ваш сервер как угодно. Теперь ваш сервер будет доступен по указанному адресу, соответственно phpMyAdmin — ubuntu-server.ru/phpmyadmin/
Настройка сервера.
Сейчас настроен только один сайт, с файлом It works!, который находится по адресу: /var/www/. К папке /var/, по умолчанию, имеет доступ только суперпользователь — root. Я не буду рассматривать, в рамках данной статьи, изменение прав на эту папку, для использовании этой директории в качестве корневого каталога для сайтов. Для нас, при регистрации, была создана директория в папке /home/, в ней и будем размещать наши будущие сайты. Если вы устанавливали версию Ubuntu Desktop, можно перейти и ознакомится с выделенной директорией.
![]()
Для начала, создадим каталог где будут находится тестируемые сайты. Пускай иерархия будет такой: /home/ваш_домашний_каталог/www/. Где, в папке /www/ будут находится все сайты. Например:
/home/ваш_домашний_каталог/www/mysite.ru/,
/home/ваш_домашний_каталог/www/site1.ru/,
/home/ваш_домашний_каталог/www/site2.ru/ и т.д.
В директорию каждого сайта добавляем ещё по три папки:
- cgi-bin — папка для хранения скриптов.
- logs — для файлов ошибок.
- httpdocs — для файлов сайта
Пример создания каталогов через командную строку:
mkdir -p /home/ваш_домашний_каталог/www/mysite.ru
В конце статьи я привёл несколько примеров часто встречающихся команд для работы в командной строке.
Ну что же, первый сайт создан. Чтобы его увидел Apache, нужно показать ему (серверу) где мы находимся и какие настройки используем. Все настройки, всех сайтов, хранятся в /etc/apache2/sites-available/. Для каждого сайта — отдельный файл с настройками Apache. Создадим файл и сразу откроем его для редактирования.
nano /etc/apache2/sites-available/mysite.ru
Таким образом создастся новый файл и будет доступен для редактирования.
<VirtualHost *:80>
ServerAdmin webmaster@mysite.ru
DocumentRoot "/home/ваш_каталог/www/mysite.ru/httpdocs"
ServerName mysite.ru
ServerAlias www.mysite.ru
ErrorLog "/home/ваш_каталог/www/mysite.ru/logs/error.log"
CustomLog "/home/ваш_каталог/www/mysite.ru/logs/access.log" common
<IfModule alias_module>
ScriptAlias /cgi-bin/ "/home/ваш_каталог/www/mysite.ru/cgi-bin/"
</IfModule>
<IfModule mime_module>
AddOutputFilter INCLUDES .shtml .php
</IfModule>
<Directory "/home/ваш_каталог/www/mysite.ru/httpdocs">
Options Indexes Includes FollowSymLinks SymLinksifOwnerMatch ExecCGI MultiViews
AllowOverride All
Order allow,deny
Allow from all
AddHandler server-parsed .shtml .shtm .html .htm
</Directory>
</VirtualHost>Где, ваш_каталог — название вашей директории. Сохраняем и закрываем файл. Чтобы настройки вступили в силу, нужно новый сайт зарегистрировать и перезапустить Apache/.
a2ensite mysite.ru
Зарегистрированные сайты появляются в папке /etc/apache2/sites-enabled/. Рестарт Apache:
service apache2 restart
В файл C:\Winows\System32\drivers\etc\hosts основной операционной системы добавляем новый сайт.
192.168.56.3 www.mysite.ru mysite.ru
Всё! Ваш сайт доступен.
Установим модуль cURL для PHP.
apt-get install curl php5-curl
Рестартуем систему. Возможно потребуется некоторые незначительные изменения в файле /etc/php5/apache2/php.ini, к примеру — указать date.timezone = «». При настройках по умолчанию, вообщем-то всё работоспособно. Единственное, что можно посоветовать, это пробежаться по настройкам и сравнить с настройками для сервера из под Windows.
engine = On
short_open_tag = On
asp_tags = Off
precision = 14
y2k_compliance = On
output_buffering = off
zlib.output_compression = Off
implicit_flush = Off
unserialize_callback_func =
serialize_precision = 100
allow_call_time_pass_reference = Off
safe_mode = Off
safe_mode_gid = Off
safe_mode_include_dir =
safe_mode_exec_dir =
safe_mode_allowed_env_vars = PHP_
safe_mode_protected_env_vars = LD_LIBRARY_PATH
disable_functions =
disable_classes =
highlight.string = #DD0000
highlight.comment = #FF9900
highlight.keyword = #007700
highlight.bg = #FFFFFF
highlight.default = #0000BB
highlight.html = #000000
expose_php = On
max_execution_time = 30
max_input_time = 60
memory_limit = 128M
error_reporting = E_ALL & ~E_DEPRECATED
display_errors = On
display_startup_errors = Off
log_errors =On
log_errors_max_len = 1024
ignore_repeated_errors = Off
ignore_repeated_source = Off
report_memleaks = On
track_errors = Off
html_errors = Off
variables_order = "GPCS"
request_order = "GP"
register_globals = Off
register_long_arrays = On
register_argc_argv = On
auto_globals_jit = On
post_max_size = 8M
magic_quotes_gpc = Off
magic_quotes_runtime = Off
magic_quotes_sybase = Off
auto_prepend_file =
auto_append_file =
default_mimetype = "text/html"
doc_root =
user_dir =
enable_dl = Off
file_uploads = On
upload_max_filesize = 8M
max_file_uploads = 20
allow_url_fopen = On
allow_url_include = Off
default_socket_timeout = 60
upload_tmp_dir="C:\Windows\Temp"
session.save_path="C:\Windows\Temp"
error_log="C:\Windows\temp\php-errors.log"
extension_dir="C:\webserver\server\php\ext"
date.timezone = "Asia/Yekaterinburg"
pdo_mysql.cache_size = 2000
pdo_mysql.default_socket=
define_syslog_variables = Off
SMTP = localhost
smtp_port = 25
mail.add_x_header = On
sql.safe_mode = Off
odbc.allow_persistent = On
odbc.check_persistent = On
odbc.max_persistent = -1
odbc.max_links = -1
odbc.defaultlrl = 4096
odbc.defaultbinmode = 1
ibase.allow_persistent = 1
ibase.max_persistent = -1
ibase.max_links = -1
ibase.timestampformat = "%Y-%m-%d %H:%M:%S"
ibase.dateformat = "%Y-%m-%d"
ibase.timeformat = "%H:%M:%S"
mysql.allow_local_infile = On
mysql.allow_persistent = On
mysql.cache_size = 2000
mysql.max_persistent = -1
mysql.max_links = -1
mysql.default_port = 3306
mysql.default_socket =
mysql.default_host = localhost
mysql.default_user = root
mysql.connect_timeout = 60
mysql.trace_mode = Off
mysqli.max_persistent = -1
mysqli.allow_persistent = On
mysqli.max_links = -1
mysqli.cache_size = 2000
mysqli.default_port = 3306
mysqli.default_socket =
mysqli.default_host =
mysqli.default_user =
mysqli.default_pw =
mysqli.reconnect = Off
mysqlnd.collect_statistics = On
mysqlnd.collect_memory_statistics = Off
pgsql.allow_persistent = On
pgsql.auto_reset_persistent = Off
pgsql.max_persistent = -1
pgsql.max_links = -1
pgsql.ignore_notice = 0
pgsql.log_notice = 0
sybct.allow_persistent = On
sybct.max_persistent = -1
sybct.max_links = -1
sybct.min_server_severity = 10
sybct.min_client_severity = 10
bcmath.scale = 0
session.save_handler = files
session.use_cookies = 1
session.use_only_cookies = 1
session.name = PHPSESSID
session.auto_start = 0
session.cookie_lifetime = 0
session.cookie_path = /
session.cookie_domain =
session.cookie_httponly =
session.serialize_handler = php
session.gc_probability = 1
session.gc_divisor = 1000
session.gc_maxlifetime = 1440
session.bug_compat_42 = Off
session.bug_compat_warn = Off
session.referer_check =
session.entropy_length = 0
session.cache_limiter = nocache
session.cache_expire = 180
session.use_trans_sid = 0
session.hash_function = 0
session.hash_bits_per_character = 5
url_rewriter.tags = "a=href,area=href,frame=src,input=src,form=fakeentry"
mssql.allow_persistent = On
mssql.max_persistent = -1
mssql.max_links = -1
mssql.min_error_severity = 10
mssql.min_message_severity = 10
mssql.compatability_mode = Off
mssql.secure_connection = Off
tidy.clean_output = Off
soap.wsdl_cache_enabled=1
soap.wsdl_cache_dir="/tmp"
soap.wsdl_cache_ttl=86400
soap.wsdl_cache_limit = 5
ldap.max_links = -1
[PHP_BZ2]
extension=php_bz2.dll
[PHP_CURL]
extension=php_curl.dll
[PHP_GD2]
extension=php_gd2.dll
[PHP_GETTEXT]
extension=php_gettext.dll
[PHP_IMAP]
extension=php_imap.dll
[PHP_MBSTRING]
extension=php_mbstring.dll
[PHP_MYSQL]
extension=php_mysql.dll
[PHP_MYSQLI]
extension=php_mysqli.dll
[PHP_OPENSSL]
extension=php_openssl.dll
[PHP_PDO_MYSQL]
extension=php_pdo_mysql.dll
[PHP_PDO_ODBC]
extension=php_pdo_odbc.dll
[PHP_PDO_SQLITE]
extension=php_pdo_sqlite.dll
[PHP_PGSQL]
extension=php_pgsql.dll
[PHP_SOAP]
extension=php_soap.dll
[PHP_SOCKETS]
extension=php_sockets.dll
[PHP_SQLITE3]
extension=php_sqlite3.dll
[PHP_TIDY]
extension=php_tidy.dll
[PHP_XMLRPC]
extension=php_xmlrpc.dll
[PHP_EXIF]
extension=php_exif.dll
Ну и на последок некоторые команды.
- chmod -R 777 /путь_до_каталога/ — изменение прав на каталог
- mkdir /…/…/… — создать каталог
- mkdir -p /…/…/ — создаёт вложенные каталоги
- rm -vR dir /…/…/ — удалить каталог
- rm -v /…/… — удалить файл
- /etc/init.d/apache2 start — запустить Apache
- /etc/init.d/apache2 stop — остановить Apache
- /etc/init.d/apache2 restart — рестарт Apache
- service apache2 restart — тоже рестарт Apache
- a2ensite название_сайта — регистрация нового сайта