Продолжаем создавать сервер на обычном компе для своего сайта на Ubuntu Server. И сегодня подключим сервер к сайту.
Скачать исходники для статьи можно ниже
Предыдущие статьи по установке/настройке сервера Ubuntu Server для сайта:
– Сервер для сайта: Устанавливаем Ubuntu Server 16
– Настраиваем Ubuntu Server (хостинг для сайта на ПК)
– Настраиваем Ubuntu Server (хостинг для сайта на ПК) Часть 2
1. Подключаем статический ip адрес.
У меня Ростелеком и на момент написания статьи статический ip стоит 150 руб. в месяц.
Позвонил в службу поддержки Ростелекома и подключил статический ip.
Подключения к интернету было следующим:
Статический IP прописали к MAC адресу роутера. MAC адрес роутера можно посмотреть на обратной стороне роутера (переворачиваем роутер и записываем его MAC, понадобится для настройки), вот примеры:
МАС состоит из 12 знаков (цифры с буквами).
При подключении статического IP в службе поддержки мне дали логин и пароль для создания pppoe соединения. Тоже пригодиться для настройки.
2. Устанавливаем pppoe соединение на Ubuntu Server
После установки статического ip мой ранее установленный сервер перестал видеть интернет – может быть проблема была в чем-то другом – поэтому я заново установил Ubuntu Server 16. Интернет установился автоматически!
Далее я обновил пакеты:
sudo apt-get update -y
И установил Apache:
sudo apt-get install apache2
Чтобы не терять времени (всё остальное настрою потом) запустил команду ifconfig:
Открыл браузер (на другом компе, смартфоне) и ввел ip сайта, на картинке выше это 195.209.66.149 и открылась дефолтная страница Apache:
Сайт работает.
Продолжаем настраивать соединение pppoe.
После этого устанавливаем pppoeconf, вводим следующую команду:
sudo apt-get install pppoeconf
Перед тем как установить соединение PPPoE нам нужно поменять MAC адрес сервера, чтобы он стал таким же как и у роутера (Или же позвонить в службу поддержки Ростелекома и попросить присоединить Статический IP адрес к другому MAC адресу – к MAC адресу вашего сервера, его можно узнать введя команду ifconfig:
И видим нечто вроде:
eth0 Link encap:Ethernet HWaddr <strong>00:0A:E4:53:AA:2D</strong> inet addr:10.26.49.77 Bcast:10.26.63.255 Mask:255.255.240.0 UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1 RX packets:208554 errors:0 dropped:0 overruns:0 frame:0 TX packets:125071 errors:0 dropped:0 overruns:0 carrier:0 collisions:0 txqueuelen:1000 RX bytes:40664531 (38.7 MiB) TX bytes:45919980 (43.7 MiB) Interrupt:21 Base address:0x4c00 lo Link encap:Local Loopback inet addr:127.0.0.1 Mask:255.0.0.0 UP LOOPBACK RUNNING MTU:16436 Metric:1 RX packets:18511 errors:0 dropped:0 overruns:0 frame:0 TX packets:18511 errors:0 dropped:0 overruns:0 carrier:0 collisions:0 txqueuelen:0 RX bytes:537155 (524.5 KiB) TX bytes:537155 (524.5 KiB)
00:0A:E4:53:AA:2D – это и есть MAC адрес.
).
Для примера мы временно изменим MAC адрес сервера (будет действовать до перезагрузки сервера) с помощью следующей команды:
sudo ifconfig eth0 hw ether 00:0A:E4:53:AA:2D
То есть для интерфейса под названием eth0 мы присвоим MAC 00:0A:E4:53:AA:2D
Проверить какой Вы используете интерфейс и какой MAC адрес к нему привязался можно с помощью команды ifconfig.
А мы продолжаем настраивать сервер и теперь нам нужно выткнуть сетевой кабель и подключить компьютер непосредственно к Ростелекомовскому модему, в моем примере F612, напомню, что схема соединения у меня следующая:
Здесь вытаскиваем из компа кабель №2 и вставляем в него кабель №1 и схема соединения становится следующей:
Далее осталось создать PPPoE соединения введя при установке логин и пароль, который Вам выдал Ростелеком при подключении статического IP адреса, а для этого вводим следующую команду:
sudo pppoeconf
Утилита выполнит поиск доступных концентраторов PPPoE и в случае успеха перейдет к интерфейсу настройки соединения:
Указываем логин и пароль:
Все соединение настроено! Интернет на сервере работает.
3. Прописываем в А запись домена наш статический IP адрес.
Осталось зайти на сайт регистратора домена и изменить для сайта DNS записи, указав в них наш статический IP адрес.
Сайт открывается, но появилась проблема – работает только главная страница сайта, если перейти на любую другую страницу выходит ошибка, что такая страница на сервере не найдена.
Решил данную проблему следующим образом:
Создал файл .htaccess в корне сайта со следующим кодом:
# BEGIN WordPress <IfModule mod_rewrite.c> RewriteEngine On RewriteBase / RewriteRule ^index\.php$ - [L] RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-d RewriteRule . /index.php [L] </IfModule> # END WordPress
Далее зашел в конфигурационный файл Apache для моего сайта, в данном примере – это файл site1.conf
sudo nano /etc/apache2/sites-available/site1.conf
И дописал в нем строчки:
<Directory /var/www/site1> Options FollowSymLinks AllowOverride All </Directory>
В итоге файл /etc/apache2/sites-available/site1.conf стал выглядеть следующим образом, для примера, статический ip адрес будет 12.34.56.78:
<VirtualHost *:80> ServerName 12.34.56.78 ServerAdmin user@localhost DocumentRoot /var/www/site1 <Directory /var/www/site1> Options FollowSymLinks AllowOverride All </Directory> ErrorLog ${APACHE_LOG_DIR}/error.log CustomLog ${APACHE_LOG_DIR}/access.log combined </VirtualHost>
Нажимаем Ctrl+O и Enter, сохраняя изменения. Далее жмем Ctrl+X и выходим из редактора.
Также в командной строке ввел следующую команду:
sudo ln -s /etc/apache2/mods-available/rewrite.load /etc/apache2/mods-enabled/
И перезапустил сервер Apache:
sudo apache2ctl restart
После этого ссылки заработали!
Появилась ещё одна проблема – не загружаются изображения на сайт.
Пришлось установить на папку upload права 777 – сделал через webmin панель:
На этом всё! Красивых Вам сайтов!
PS: Также, чтобы сервер мог правильно работать с файлами можно установить пользователя и группу www-data на файлы сайта (в данном примере папка /var/www/site1/html:
sudo chown -R www-data:www-data /var/www/site1/html/ sudo chmod -R 755 /var/www/site1/html/
При переносе на другой сервер, также может получится, что у файлов стал новый владелец, а скрипты из админки wordpress выполняются от имени старого владельца. Проблема может быть решена следующим образом: создать в wordpress нового пользователя, такого же как и владельца файлов на сервере, либо создать пользователя в webmin (выбрать группу www-data для него), такого же как админа на wordpress.
При подключении статического IP пришлось в роутере D-LInk DIR320NRU в пункте “Сеть”, подпункт “Соединения” удалить предыдущее соединение и создать новое: