Thursday, December 28, 2023

Install LAMP on Ubuntu

 

Install LAMP on Ubuntu

Why should you install LAMP on Ubuntu? When working on web development, I prefer to work within the privacy of my own development environment located on my computer. I'd rather make the majority of my mistakes where no one else can see them rather than out in the wild of the Internet. In order to have that private development environment, I install a LAMP configuration. If you're not familiar with LAMP, it stands for LinuxApacheMySQLphp (and/or Perl). LAMP is one of the most common web hosting platforms on the Internet, so it's a great environment to build and test your website.

Follow these step by step instructions to install and configure LAMP  on Ubuntu 12.04-Precise Pangolin. This process has also been tested and works on Linux Mint 13,  14, and 15, Ubuntu 12.10-Quantal Quetzal and Ubuntu 13.04 Raring Ringtail. If you have a reasonably fast broadband connection, you should be done in less than half an hour.

Install LAMP on Ubuntu

The developers at Ubuntu have made it really easy to install and configure the packages for LAMP with a single terminal command. So open up a terminal window and let's get started.

sudo apt-get install lamp-server^

Yes, you read that right. Don't leave out the caret (^) at the end. The command won't work without it. It's magical!

Install LAMP on Ubuntu
Install LAMP on Ubuntu

The apt package manager will now show the packages to be installed and ask for confirmation. Hit <Enter> to confirm and continue with the install.

Install LAMP packages
Install LAMP packages

After some time downloading packages, you will be prompted to set a password for the root user for MySQL.

Set MySQL root password
Set MySQL root password

Enter the password you want to use for MySQLDo not leave it blank. You'll be prompted a second time to confirm your password.

Confirm MySQL root password
Confirm MySQL root password

After confirming your password, apt will continue installing the remaining packages.

Remaining LAMP package installation
Remaining LAMP package installation

Your LAMP installation is now complete. Wow, that was easy! Now there's just a few more steps to get things configured to make it easy to work with your system.

Test Apache

Open a web browser window and enter the address http://localhost/. You should see a web page that says "It Works!"

Apache works
Apache works

Test php

Now that you've confirmed that the Apache web server works, you want to make sure that your php installation is working. To do that you need to create a file in /var/www called testing.php. You can use your favorite text editor as root, or you can use the following terminal command:

echo "<?php phpinfo(); ?>" | sudo tee /var/www/testing.php

After that you need to restart the Apache web server.

sudo service apache2 restart

Go back to your web browser and enter the address http://localhost/testing.php/ and you should see a page displaying information about your php installation.

php information
php information

Fix Apache fully qualified domain name

You may have noticed an error message from Apache about the server's fully qualified domain name.

apache2: Could not reliably determine the server's fully qualified domain name, using 127.0.1.1 for ServerName

This is not a big deal, but if it bothers you, you can fix it with the following commands.

echo "ServerName localhost" | sudo tee /etc/apache2/conf.d/fqdn

Now reload the Apache web server.

sudo service apache2 reload

You should no longer see the error message.

Configure MySQL

Since this tutorial is for setting up a local web development environment, the MySQL needs to be bound to the localhost IP address. By default this should be 127.0.0.1 on your system. Just in case, you can verify it with these commands.

cat /etc/hosts | grep localhost

You should see something like
127.0.0.1 localhost
::1     ip6-localhost ip6-loopback

You now  want to verify that you have the correct bind address in MySQL's my.cnf file.

cat /etc/mysql/my.cnf | grep bind-address

You should see:
bind-address = 127.0.0.1

If the bind address doesn't match the one set for localhost on your system, you'll need to edit /etc/mysql/my.cnf as root to correct it.

Install phpMyAdmin

You don't need to install phpMyAdmin, but unless you're a wizard with SQL, you'll want it to do administrative tasks on your MySQL databases.

You can install phpMyAdmin with this terminal command:

sudo apt-get install libapache2-mod-auth-mysql phpmyadmin

You'll be prompted to confirm that you want to install the packages. Hit <Enter> to continue.

Install phpMyAdmin packages
Install phpMyAdmin packages

You'll next be prompted to select a web server to configure with phpMyAdmin. This is important! Use the arrow keys on your keyboard to highlight apache2 and then used the space bar to select it. Make sure there is a * next to apache2. Then hit <Enter> to continue. Make sure to click the picture below to see it in full size to see what I'm describing.

Configure phpMyAdmin for Apache
Configure phpMyAdmin for Apache

The next screen will ask if you want to configure phpMyAdmin with a database called dbconfig-common. Select "Yes" and hit <Enter>.

phpMyAdmin configure dbconfig-common
phpMyAdmin configure dbconfig-common

You'll next be prompted to enter the MySQL root password you created earlier so that the new database can be created. So enter your MySQL root password and hit <Enter>.

Enter MySQL root password
Enter MySQL root password

The next prompt is to create a MySQL application password for phpMyAdmin. You can hit <Enter> if you want a random password to be created. I usually use the same password that I used for the MySQL root password. It's probably not the greatest idea in terms of security, but since this is for a closed development environment, it's probably low risk.

phpMyAdmin MySQL application password
phpMyAdmin MySQL application password

Finally, you'll be prompted to confirm your MySQL application password. Type the same password as the previous step and hit <Enter>.

Confirm MySQL application password
Confirm MySQL application password

Installing and configuring phpMyAdmin is now complete.

Testing phpMyAdmin

The last step is to make sure that phpMyAdmin is working. Open a web browser and enter the address http://localhost/phpmyadmin/. You should see a page that looks like this.

phpMyAdmin login screen
phpMyAdmin login screen

You should now be able to log in with the username root and the root password that you created earlier.

phpMyAdmin logged in
phpMyAdmin logged in

Congratulations, you are now done installing and configuring LAMP and phpMyAdmin on Ubuntu 12.04. You can now start building the local version of your website. If you are only working on one site, you can place your files in /var/www. Note that /var/www is owned by the user and group root, so you will either need to copy files over as root, or change the ownership and/or permissions of that directory so you can write your files there. As an alternative, you can do some additional Apache configuration so that you can keep your files somewhere under your home directory. You can even set up multiple sites that way.

Friday, December 22, 2023

Cisco Wireless Controller 5508 - Настройка беспроводного доступа

    Пример настройки контроллера WLC5508 и точек беспроводного доступа. Собираемая схема:

   Задача: контроллер и точки доступа находятся в управляющем VLAN, DHCP-сервер для клиентов, подключающихся к беспроводной сети - в другом VLAN. Сами клиенты, подключившись к сети, попадают в свой отдельный VLAN. Клиенты должны подключиться к беспроводной сети, получить необходимые настройки со стороннего DHCP-Server'а и иметь возможность выхода в Internet.

Параметры сетей:
VLAN 2 - WireLess_Users - 192.168.0.0/24
VLAN 10 - Servers&Storages - 172.16.0.0/24
VLAN 20 - Management - 10.10.0.0/24
DHCP-Server - 172.16.0.20/24
Сеть между ядром и маршрутизатором: 192.168.100.0/30

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

   Настройка коммутатора ядра:

   Создаем требуемые VLAN:

Core_SW(config)#vlan 2
Core_SW(config-vlan)#name WireLess_Users
Core_SW(config-vlan)#vlan 10
Core_SW(config-vlan)#name Servers&Storages
Core_SW(config-vlan)#vlan 20
Core_SW(config-vlan)#name Management
Core_SW(config-vlan)#exit


 Настроим необходимые SVI:


Core_SW(config)#interface vlan 2
Core_SW(config-if)#ip address 192.168.0.253 255.255.255.0

Core_SW(config-if)#exit
Core_SW(config)#interface vlan 10
Core_SW(config-if)#ip address 172.16.0.253 255.255.255.0
Core_SW(config-if)#exit
Core_SW(config)#interface vlan 20
Core_SW(config-if)#ip address 10.10.0.253 255.255.255.0

Core_SW(config-if)#ip helper-address 172.16.0.20 // Добавляем адрес DHCP-Сервера,  т.к. мы должны будем перенаправлять запросы DHCP от точек доступа на внешний DHCP. Решено не использовать отдельный DHCP-Server для точек доступа непосредственно на контроллере. Пусть все DHCP-сервера находятся на одном устройстве (для простоты управления и администрирования). Подробнее о DHCP и о его настройках на Cisco и не только можно почитать здесь.
Core_SW(config-if)#exit

   Настраиваем принадлежность портов соответствующим VLAN. Особое внимание обратим на интерфейс Gi1/0/1, подключенный к контроллеру. Предполагается, что управляющий трафик будет инкапсулироваться в теги управляющего VLAN 20, а трафик пользователей будет идти с тегом VLAN 2:

Core_SW(config)#interface gigabitEthernet 1/0/1
Core_SW(config-if)#switchport trunk encapsulation dot1q
Core_SW(config-if)#switchport mode trunk

Core_SW(config-if)#switchport trunk allow vlan 2,20
Core_SW(config-if)#switchport trunk native vlan 20
Core_SW(config-if)#description WLC
Core_SW(config-if)#inter g1/0/2
Core_SW(config-if)#switchport mode access
Core_SW(config-if)#switchport access vlan 20
Core_SW(config-if)#spanning-tree portfast
Core_SW(config-if)#description LAP
Core_SW(config-if)#interf g1/0/48
Core_SW(config-if)#switchport mode access
Core_SW(config-if)#switchport access vlan 10
Core_SW(config-if)#spanning-tree portfast

Core_SW(config-if)#description DHCPServer

   Для связи с маршрутизатором создадим интерфейс L3 и назначим ему IP-адрес:
 
Core_SW(config)#int gi1/0/47
Core_SW(config-if)#description To_Outside
Core_SW(config-if)#no switchport
Core_SW(config-if)#ip address 192.168.100.2 255.255.255.252 

Core_SW(config-if)#exit

   Маршрутизацию между VLAN будем осуществлять на коммутаторе. Выход во внешнюю сеть - маршрутизатор:

Core_SW(config)#ip routing  // включаем возможность маршрутизации на нашем L3-коммутаторе
Core_SW(config)#ip route 0.0.0.0 0.0.0.0 192.168.100.1

   DHCP-Server выполнен на коммутаторе L3 Cisco 3750X. Команды для настройки "сервера" представлены ниже:

    Настраиваем интерфейс (L3 интерфейс с фиксированным адресом - IP DHCP-Сервера):

DHCPServer(config)#interface gigabitEthernet 2/0/24
DHCPServer(config-if)#no switchport
DHCPServer(config-if)#ip address 172.16.0.20 255.255.255.0


   Сразу же проверяем связь с основным шлюзом:

DHCPServer#ping 172.16.0.253
Type escape sequence to abort.
Sending 5, 100-byte ICMP Echos to 172.16.0.253, timeout is 2 seconds:
!!!!!
Success rate is 100 percent (5/5), round-trip min/avg/max = 1/4/9 ms


   Настраиваем DHCP-пул для мобильных пользователей:

DHCPServer(config)#ip dhcp pool WLess_Users
DHCPServer(dhcp-config)#network 192.168.0.0 255.255.255.0
DHCPServer(dhcp-config)#default-router 192.168.0.253
DHCPServer(dhcp-config)#dns-server 8.8.8.8
DHCPServer(dhcp-config)#exit
DHCPServer(config)#ip dhcp excluded-address 192.168.0.253


   Создадим пул для точек доступа. А на самом контроллере, как было сказано выше, мы отключим DHCP-сервер:

DHCPServer(config)#ip dhcp pool AP
DHCPServer(dhcp-config)#network 10.10.0.0 255.255.255.0
DHCPServer(dhcp-config)#default-router 10.10.0.10   // указали адрес контроллера

DHCPServer(dhcp-config)#exit
DHCPServer(config)#ip dhcp excluded-address 10.10.0.10

DHCPServer(config)#ip dhcp excluded-address 10.10.0.11 10.10.0.254

   Далее настроим последнее промежуточное устройство, которое участвует в нашем тесте - маршрутизатор. Здесь необходимо настроить только NAT, больше никаких функций на это устройство возлагать не будем:

 hostname GW
!
interface GigabitEthernet0/0
 ip address 192.168.100.1 255.255.255.252
 ip nat inside
 ip virtual-reassembly in
 duplex auto
 speed auto
!
interface GigabitEthernet0/1
 ip address х.х.х.х 255.255.255.0   //внешний адрес
 ip nat outside
 ip virtual-reassembly in
 duplex auto
 speed auto
!
!
ip nat inside source list NAT interface GigabitEthernet0/1 overload
ip route 0.0.0.0 0.0.0.0 х.х.х.у   //внешний next-hop адрес
ip route 10.10.0.0 255.255.255.0 192.168.100.2
ip route 172.16.0.0 255.255.255.0 192.168.100.2
ip route 192.168.0.0 255.255.255.0 192.168.100.2
!
ip access-list standard NAT
 permit 192.168.0.0 0.0.0.255   // разрешаем транслировать только адреса мобильных пользователей. Естественно, можно легко расширить это правило
!
end


   Приступаем к настройке контроллера WLC5508. Пропускаем настройку при первоначальной инициализации, т.к. там все достаточно просто. Приступаем к решению нашей задачи.
   Настраивать контроллер буду из графического интерфейса. Будет время, опишу эту же настройку с помощью командной строки. Хотя GUI контроллера не вызывает у меня неприязни, т.к. при работе с ним не было замечено таких неприятных глюков, как непринятие настроек и параметров. Все проходит очень гладко и без сбоев. 
   Что будем настраивать? Сделаем один SSID, сеть будет открытая, пользователи должны будут попадать в VLAN 2, как и обговаривалось выше, и получать настройки с DHCP-Server'а, расположенного в сети 172.16.0.0. Настройка будет простая, никаких дополнительных параметров не будет, т.к. это можно будет сделать позднее, когда основа заработает.
   Заходим на контроллер, подключившись к сервисному порту. Далее, после ввода логина и пароля, попадаем на страницу настройки, где переходим во вкладку CONTROLLER.
     

   В меню слева выбираем пункт General. Смотрим, что у нас имеется. Часть настроек мы сделали во время первого запуска (имя и доменное имя мобильной группы). Остальное рассматривать не будем, т.к. это не требуется для решения нашей задачи.
   В меню слева проходим в пункт Interfaces:
    В этом меню мы можем настроить интерфейсы нашего контроллера под требуемые цели. Мы будем использовать один физический порт (Port 1), по которому будет проходить как контрольный трафик (трафик management),  так и трафик мобильных пользователей. Разделение будет существовать на уровне VLAN'ов. Итак, на рисунке выше уже созданы два интерфейса: management и user. Посмотрим на настройки первого интерфейса, нажав на его название ПКМ:
    Данный интерфейс не тегируется. Адрес назначен из Management-сети. Установлена галочка Enable dynamic AP Management, что говорит о том, что данный интерфейс будет служить для управления точками доступа. Все эти настройки привязываются к первому физическому порту.
   Интерфейс User отличается от предыдущего тем, что трафик данного интерфейса тегируется пользовательским VLAN 2, и управляющий трафик по нему передаваться не будет. Именно этот интерфейс будет использоваться при настройке WLAN.
   В меню слева переходим в раздел Advanced/DHCP.

    Проверяем, установлена ли галочка DHCP Proxy, позволяющая включить на контроллере функцию DHCP-агента. По умолчанию, DHCP Proxy включен.
    Переходим к настройке WLAN. Для этого идем во вкладку WLAN's:
   Создаем необходимые WLAN. В нашем примере мы сделали всего одну беспроводную сеть. Для проверки её настроек необходимо нажать на номер в колонке WLAN ID:
   В общих настройках указываем, какой интерфейс будет ассоциирован с данным WLAN. В нашем случае это интерфейс под названием User. Настройки безопасности располагаются в соседней вкладке. В данный момент мы сделали сеть открытой.
   Переходим в пункт Advanced/AP groups для того, чтобы указать, какие именно точки доступа будут работать с той или иной WLAN. Стоит отметить, что настраивать эту часть необходимо тогда, когда точки доступа уже прошли процедуру ассоциации с контроллером.
   В моем примере группа уже создана. Можно посмотреть на её настройки:
   Имя группы и описание:

    Ассоциация с WLAN:

    Инструмент добавления/удаления точек доступа. Одна точка доступа уже была добавлена в группу. При ассоциации других точек они появятся в правом меню и их можно будет добавить, выделив галочками и нажав Add:
 
    На этом настройка может быть завершена. Остальное - подстройка дополнительных параметров, которые настраиваются в зависимости от потребности и необходимости.
   Проверку и мониторинг работы можно выполнить в первой кладке MONITOR:

    Интерфейс интуитивно понятный и не нуждается в пояснении. Посмотреть статус точек доступа, готовых/не готовых к работе, можно в меню слева: Statistics/AP Join:
   Попробуем подключиться к нашей сети. Со стороны клиентов проблем не возникло. Это видно и на самом контроллере:
   Далее можно приступить к настройке безопасности в беспроводной сети, к более тонкой настройке диапазонов работы, мощностей приемников/передатчиков, и т.д.