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-адреса

В открывшемся окне будет IP-адрес, под которым работает VirtualBox. В вкладке DNCP cerver — IP-адреса для динамических настроек сервера. Здесь они нам не понадобятся.
IP-адрес

Переходим в консоль командной строки и открываем файл:

nano /etc/network/interfaces

Пропишем статические IP-адреса:

  1. auto eth0
  2. iface eth0 inet static
  3. address 192.168.56.3
  4. netmask 255.255.255.0
  5. network 192.168.56.100
  6. broadcast 192.168.56.255
  7. 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.
Настройки PuTTY

Заходим через 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/ и т.д.
В директорию каждого сайта добавляем ещё по три папки:

  1. cgi-bin — папка для хранения скриптов.
  2. logs — для файлов ошибок.
  3. 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 название_сайта — регистрация нового сайта

Источник

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

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

Этот сайт использует Akismet для борьбы со спамом. Узнайте, как обрабатываются ваши данные комментариев.