Строим сервер ubuntu 16.04 server + squid(с блокировкой сайтов по ssl) + DHCP + sams2
Установка Ubuntu … server …
1. после ввода данной команды отобразятся все сетевые интерфейсы
# lshw -C network
2. Включить выключить интерфейс:
# sudo ifconfig eth0 up #(когда надо отключить меняешь up на down)
И посмотреть:
# ifconfig
Перезапустить сервис:
# sudo /etc/init.d/networking restart
И посмотреть:
# ifconfig
прописать В файл /etc/network/interfaces примерно так:
(это для моего проводного соединения со статическими IP)
# This file describes the network interfaces available on your system # and how to activate them. For more information, see interfaces(5). # The loopback network interface auto lo iface lo inet loopback # Моя проводная сеть. auto enp3s2 iface enp3s2 inet static address 192.168.100.119 netmask 255.255.255.0 auto enp3s3 iface enp3s3 inet static address 10.33.0.119 netmask 255.255.255.0 gateway 10.33.0.211 dns-nameservers 10.33.0.211 #iface enp3s2 inet static - указывает, что интерфейс (iface enp3s2) находится в диапазоне адресов IPv4 (inet) со статическим ip (static); #address 192.168.100.119 - указывает что IP адрес (address) нашей сетевой карты enp3s2 192.168.100.119; #netmask 255.255.255.0 - указывает что наша маска подсети (netmask) имеет значение 255.255.255.0; #gateway 10.33.0.211 - адрес шлюза; #dns-nameservers 10.33.0.211 8.8.8.8 - адреса DNS серверов (о ниж мы расскажем позже) #auto enp3s2 - указывет системе что интерфейс enp3s2 необходимо включать автоматически при загрузке системы с вышеуказанными параметрами. |
# This file describes the network interfaces available on your system # and how to activate them. For more information, see interfaces(5). # The loopback network interface auto lo iface lo inet loopback # Моя проводная сеть. auto enp3s2 iface enp3s2 inet static address 192.168.100.119 netmask 255.255.255.0 auto enp3s3 iface enp3s3 inet static address 10.33.0.119 netmask 255.255.255.0 gateway 10.33.0.211 dns-nameservers 10.33.0.211 #iface enp3s2 inet static - указывает, что интерфейс (iface enp3s2) находится в диапазоне адресов IPv4 (inet) со статическим ip (static); #address 192.168.100.119 - указывает что IP адрес (address) нашей сетевой карты enp3s2 192.168.100.119; #netmask 255.255.255.0 - указывает что наша маска подсети (netmask) имеет значение 255.255.255.0; #gateway 10.33.0.211 - адрес шлюза; #dns-nameservers 10.33.0.211 8.8.8.8 - адреса DNS серверов (о ниж мы расскажем позже) #auto enp3s2 - указывет системе что интерфейс enp3s2 необходимо включать автоматически при загрузке системы с вышеуказанными параметрами.
перед установкой доп компанентов
обновимся
# sudo apt-get update && sudo apt-get dist-upgrade -y
Ubuntu 16.04 Desktop Установим графический интерфейс. ЭТОТ ШАГ МОЖНО И ПРОПУСТИТЬ
# sudo apt-get install ubuntu-desktop -y
после установки перезагрузимся уже в наш интерфейс и продолжим работу
# reboot
Ubuntu 16.04 прозрачный Squid HTTPS Без подмены сертификатов
Чтобы постоянно не вводить sudo переходим в root
# sudo -s
разрешим скачивание исходников
# vi /etc/apt/sources.list
для этого разблокируем ветки где указан deb-src, уберем #
deb http://.... # deb-src http://... |
deb http://.... # deb-src http://...
поставим необходимые библиотеки для сборки
# apt-get update # apt-get dist-upgrade -y
перезагрузим систему
# reboot
и продолжим из под root
# apt-get install openssl devscripts build-essential dpkg-dev libssl-dev
Создадим папку где будет производится сборка
# mkdir makes # cd makes
Качаем зависимости (для выполнения этой операции был поставлен dpkg-dev)
# apt-get build-dep squid3
Качаем исходник
# apt-get source squid3
В случае ошибки доступа _apt «Невозможно сбросить права для скачивания» меняем права и повторяем
# chmod 777 squid3_3.5.12-1ubuntu7.5.dsc # apt-get source squid3
В моем случае это был файл squid3_3.5.12-1ubuntu7.5.dsc может быть и squid3_3.5.12-1ubuntu7.7.dsc и другие разновидности
Если этого не сделать или будут ошибки, то не появится папка debian
Переходим в полученную папку
# cd squid3-3.5.12
Добавляем поддержку ssl
Редактируем файл правил
# vi debian/rules
Добавляем строчки после proxy
ВАЖНО: чтобы все параметры заканчивались \ , а именно дописать после proxy \
--enable-ssl \ --enable-ssl-crtd \ --with-openssl \ |
--enable-ssl \ --enable-ssl-crtd \ --with-openssl \
теперь собираем DEB пакеты ( Процесс очень долгий )
# dpkg-buildpackage -d
Возможные ошибки:
configure: error: library 'crypto' is required for OpenSSL |
configure: error: library 'crypto' is required for OpenSSL
Необходимо установить libssl-dev и перезапустить процесс сборки
# apt-get install libssl-dev
удалим логи
# rm config.log
и повторим установку
# dpkg-buildpackage -d
Идем на папку выше и там должны быть получившиеся пакеты
# ls -l *.deb
squid3_3.5.12-1ubuntu7.5_all.deb squid_3.5.12-1ubuntu7.5_amd64.deb squid-cgi_3.5.12-1ubuntu7.5_amd64.deb squidclient_3.5.12-1ubuntu7.5_amd64.deb squid-common_3.5.12-1ubuntu7.5_all.deb squid-dbg_3.5.12-1ubuntu7.5_amd64.deb squid-purge_3.5.12-1ubuntu7.5_amd64.deb |
squid3_3.5.12-1ubuntu7.5_all.deb squid_3.5.12-1ubuntu7.5_amd64.deb squid-cgi_3.5.12-1ubuntu7.5_amd64.deb squidclient_3.5.12-1ubuntu7.5_amd64.deb squid-common_3.5.12-1ubuntu7.5_all.deb squid-dbg_3.5.12-1ubuntu7.5_amd64.deb squid-purge_3.5.12-1ubuntu7.5_amd64.deb
Устанавливаем наши пакеты
# dpkg -i *.deb
Правим зависимости и переставляем
# apt-get install -f # dpkg -i *.deb
Если все успешно то смотрим версию squid и что у нас вышло
# squid -v
выдаваемый код сократил.
Squid Cache: Version 3.5.12 Service Name: squid Ubuntu linux configure options:..... |
Squid Cache: Version 3.5.12 Service Name: squid Ubuntu linux configure options:.....
Конфигурация с блокировкой сайтов по ssl. Чтобы Именно посмотреть работу прозрачного режима. Настройка Обычная базовая с добавлением SSL
Переходим в папку squid и генерируем сертификат
# cd /etc/squid/ # openssl req -new -newkey rsa:1024 -days 365 -nodes -x509 -keyout squidCA.pem -out squidCA.pem
Для удобства Упростим конфигурацию файла squid.conf, уберем все примечания и комментарии базового файла
# cp squid.conf squid.conf.bak # cat squid.conf.bak | grep -v "^#" | grep -v "^$" > squid.conf
Добавим сеть src 192.168.100.0/24
Добавим порты под HTTP 3128 и HTTPS 3129
Добавим генерацию сертификатов sslcrtd_program и sslcrtd_children
# vi squid.conf
acl SSL_ports port 443 acl Safe_ports port 80 # http acl Safe_ports port 21 # ftp acl Safe_ports port 443 # https acl Safe_ports port 70 # gopher acl Safe_ports port 210 # wais acl Safe_ports port 1025-65535 # unregistered ports acl Safe_ports port 280 # http-mgmt acl Safe_ports port 488 # gss-http acl Safe_ports port 591 # filemaker acl Safe_ports port 777 # multiling http acl WhiteIp src "/etc/squid/whiteip.list" # список IP которым разрешен доступ acl BlackURL dstdomain "/etc/squid/bad_url.list" # блокируем обычные сайты acl local src 192.168.100.0/24 acl CONNECT method CONNECT http_access deny !Safe_ports http_access deny CONNECT !SSL_ports http_access allow localhost manager http_access deny manager http_access deny BlackURL http_access allow localhost http_access allow WhiteIp http_access deny all http_port 192.168.100.119:3128 intercept https_port 192.168.100.119:3129 intercept ssl-bump cert=/etc/squid/squidCA.pem acl blocked_fast ssl::server_name "/etc/squid/https.list" acl blocked_ssl ssl::server_name_regex -i "/etc/squid/https.list" ssl_bump peek all ssl_bump terminate blocked_fast ssl_bump terminate blocked_ssl ssl_bump splice all sslcrtd_program /usr/lib/squid/ssl_crtd -s /var/lib/ssl_db -M 4MB sslcrtd_children 8 startup=1 idle=1 coredump_dir /var/spool/squid visible_hostname name.domain.local refresh_pattern ^ftp: 1440 20% 10080 refresh_pattern ^gopher: 1440 0% 1440 refresh_pattern -i (/cgi-bin/|\?) 0 0% 0 refresh_pattern (Release|Packages(.gz)*)$ 0 20% 2880 refresh_pattern . 0 20% 4320 |
acl SSL_ports port 443 acl Safe_ports port 80 # http acl Safe_ports port 21 # ftp acl Safe_ports port 443 # https acl Safe_ports port 70 # gopher acl Safe_ports port 210 # wais acl Safe_ports port 1025-65535 # unregistered ports acl Safe_ports port 280 # http-mgmt acl Safe_ports port 488 # gss-http acl Safe_ports port 591 # filemaker acl Safe_ports port 777 # multiling http acl WhiteIp src "/etc/squid/whiteip.list" # список IP которым разрешен доступ acl BlackURL dstdomain "/etc/squid/bad_url.list" # блокируем обычные сайты acl local src 192.168.100.0/24 acl CONNECT method CONNECT http_access deny !Safe_ports http_access deny CONNECT !SSL_ports http_access allow localhost manager http_access deny manager http_access deny BlackURL http_access allow localhost http_access allow WhiteIp http_access deny all http_port 192.168.100.119:3128 intercept https_port 192.168.100.119:3129 intercept ssl-bump cert=/etc/squid/squidCA.pem acl blocked_fast ssl::server_name "/etc/squid/https.list" acl blocked_ssl ssl::server_name_regex -i "/etc/squid/https.list" ssl_bump peek all ssl_bump terminate blocked_fast ssl_bump terminate blocked_ssl ssl_bump splice all sslcrtd_program /usr/lib/squid/ssl_crtd -s /var/lib/ssl_db -M 4MB sslcrtd_children 8 startup=1 idle=1 coredump_dir /var/spool/squid visible_hostname name.domain.local refresh_pattern ^ftp: 1440 20% 10080 refresh_pattern ^gopher: 1440 0% 1440 refresh_pattern -i (/cgi-bin/|\?) 0 0% 0 refresh_pattern (Release|Packages(.gz)*)$ 0 20% 2880 refresh_pattern . 0 20% 4320
создадим файл с блокируемыми сайтами
# vi /etc/squid/bad_url.list
.vseigru.net .stoboi.ru .igroutka.net |
.vseigru.net .stoboi.ru .igroutka.net
создадим Список белых IP
# vi /etc/squid/whiteip.list
192.168.100.8 192.168.100.56 192.168.100.89 |
192.168.100.8 192.168.100.56 192.168.100.89
Создадим файл с сайтами что будем блокировать глобально .
# vi /etc/squid/https.list
вот с таким содержимым
################################################# # Домашние HTTPS развлечения # ################################################# (^|\.)vk\.com$ (^|\.)ok\.ru$ (^|\.)facebook\.com$ (^|\.)youtube\.com$ (^|\.)yaplakal\.com$ (^|\.)yapfiles\.ru$ (^|\.)fishki\.net$ (^|\.)vasi\.net$ (^|\.)pikabu\.ru$ (^|\.)joyreactor\.cc$ (^|\.)sasisa\.ru$ (^|\.)zaycev\.net$ ################################################# # Запросы оффисных приложений # ################################################# (^|\.)microsoft\.com$ (^|\.)office\.com$ (^|\.)office\.net$ (^|\.)microsoftstore\.com$ (^|\.)officeapps\.live\.com$ (^|\.)autodiscover\.fs\.ess$ (^|\.)msecnd\.net$ (^|\.)windowsupdate\.com$ (^|\.)windows\.com$ |
################################################# # Домашние HTTPS развлечения # ################################################# (^|\.)vk\.com$ (^|\.)ok\.ru$ (^|\.)facebook\.com$ (^|\.)youtube\.com$ (^|\.)yaplakal\.com$ (^|\.)yapfiles\.ru$ (^|\.)fishki\.net$ (^|\.)vasi\.net$ (^|\.)pikabu\.ru$ (^|\.)joyreactor\.cc$ (^|\.)sasisa\.ru$ (^|\.)zaycev\.net$ ################################################# # Запросы оффисных приложений # ################################################# (^|\.)microsoft\.com$ (^|\.)office\.com$ (^|\.)office\.net$ (^|\.)microsoftstore\.com$ (^|\.)officeapps\.live\.com$ (^|\.)autodiscover\.fs\.ess$ (^|\.)msecnd\.net$ (^|\.)windowsupdate\.com$ (^|\.)windows\.com$
И теперь применяем конфигурацию
# squid -k parse # squid -k reconfigure
теперь Для работы необходимо настроить iptables
Настройка NAT
# vi /etc/nattables
#!/bin/bash #========================================================== # Настройка IPTABLES #========================================================== #========================================================== # Сетевый интерфейсы #========================================================== LAN="enp3s2" WAN="enp3s3" LO="lo" #========================================================== # Локальная сеть #========================================================== LAN_RANGE=192.168.100.0/255.255.255.0 #========================================================== # Путь к таблицам #========================================================== IPTABLES="/sbin/iptables" #========================================================== # Список портов #========================================================== SSH="22" DNS="53" SQUIDH="3128" SQUIDS="3129" HTTP="80" HTTPS="443" # Сбрасываем все правила #========================================================================================= $IPTABLES -F $IPTABLES -t nat -F $IPTABLES -t mangle -F $IPTABLES -X $IPTABLES -t nat -X $IPTABLES -t mangle -X # Базовая расстановка правил #========================================================== $IPTABLES --policy INPUT ACCEPT #DROP $IPTABLES --policy OUTPUT ACCEPT #DROP $IPTABLES --policy FORWARD DROP #ACCEPT # Включаем форвардинг ip в ядре. #========================================================================================= /bin/echo 1 > /proc/sys/net/ipv4/ip_forward # Включаем маскарадинг для маскарад для отработки NAT #========================================================================================= $IPTABLES -t nat -A POSTROUTING -o $WAN -j MASQUERADE # Разрешаем пакеты по уже установленным соединениям #========================================================================================= $IPTABLES -A INPUT -m conntrack --ctstate ESTABLISHED,RELATED -j ACCEPT # Разрешаем доступ к SSH и DNS серверу если INPUT DROP (Не пригодилось) #========================================================================================= #$IPTABLES -A INPUT --protocol tcp -i $LAN --dport $SSH -j ACCEPT #$IPTABLES -A INPUT --protocol tcp -i $LAN --dport $DNS -j ACCEPT #$IPTABLES -A INPUT --protocol udp -i $LAN --dport $DNS -j ACCEPT # Разрешаем доступ к HTTP и HTTPS серверу если INPUT DROP (Не пригодилось) #========================================================================================= #$IPTABLES -A INPUT --protocol tcp -i $LAN --dport $HTTP -j ACCEPT #$IPTABLES -A INPUT --protocol tcp -i $LAN --dport $SQUID -j ACCEPT # Заворачиваем SQUID #========================================================================================= iptables -t nat -A PREROUTING -i $LAN -p tcp --dport $HTTP -j REDIRECT --to-port $SQUIDH iptables -t nat -A PREROUTING -i $LAN -p tcp --dport $HTTPS -j REDIRECT --to-port $SQUIDS # Смотрим что мы натворили #========================================================================================= $IPTABLES -L -n -t nat -v |
#!/bin/bash #========================================================== # Настройка IPTABLES #========================================================== #========================================================== # Сетевый интерфейсы #========================================================== LAN="enp3s2" WAN="enp3s3" LO="lo" #========================================================== # Локальная сеть #========================================================== LAN_RANGE=192.168.100.0/255.255.255.0 #========================================================== # Путь к таблицам #========================================================== IPTABLES="/sbin/iptables" #========================================================== # Список портов #========================================================== SSH="22" DNS="53" SQUIDH="3128" SQUIDS="3129" HTTP="80" HTTPS="443" # Сбрасываем все правила #========================================================================================= $IPTABLES -F $IPTABLES -t nat -F $IPTABLES -t mangle -F $IPTABLES -X $IPTABLES -t nat -X $IPTABLES -t mangle -X # Базовая расстановка правил #========================================================== $IPTABLES --policy INPUT ACCEPT #DROP $IPTABLES --policy OUTPUT ACCEPT #DROP $IPTABLES --policy FORWARD DROP #ACCEPT # Включаем форвардинг ip в ядре. #========================================================================================= /bin/echo 1 > /proc/sys/net/ipv4/ip_forward # Включаем маскарадинг для маскарад для отработки NAT #========================================================================================= $IPTABLES -t nat -A POSTROUTING -o $WAN -j MASQUERADE # Разрешаем пакеты по уже установленным соединениям #========================================================================================= $IPTABLES -A INPUT -m conntrack --ctstate ESTABLISHED,RELATED -j ACCEPT # Разрешаем доступ к SSH и DNS серверу если INPUT DROP (Не пригодилось) #========================================================================================= #$IPTABLES -A INPUT --protocol tcp -i $LAN --dport $SSH -j ACCEPT #$IPTABLES -A INPUT --protocol tcp -i $LAN --dport $DNS -j ACCEPT #$IPTABLES -A INPUT --protocol udp -i $LAN --dport $DNS -j ACCEPT # Разрешаем доступ к HTTP и HTTPS серверу если INPUT DROP (Не пригодилось) #========================================================================================= #$IPTABLES -A INPUT --protocol tcp -i $LAN --dport $HTTP -j ACCEPT #$IPTABLES -A INPUT --protocol tcp -i $LAN --dport $SQUID -j ACCEPT # Заворачиваем SQUID #========================================================================================= iptables -t nat -A PREROUTING -i $LAN -p tcp --dport $HTTP -j REDIRECT --to-port $SQUIDH iptables -t nat -A PREROUTING -i $LAN -p tcp --dport $HTTPS -j REDIRECT --to-port $SQUIDS # Смотрим что мы натворили #========================================================================================= $IPTABLES -L -n -t nat -v
Если в качестве шлюза используется маршрутизатор, то на нем перенаправляем порты 80 и 443 на сервер где стоит SQUID на порты 3128 и 3129 соответственно
В таком случае правила «Заворачиваем SQUID» для iptables ненужны.
После сохранения изменений обеспечим для файла права на исполнение:
# chmod +x /etc/nattables
Далее необходимо поставить созданный файл на автозагрузку при включении сервера. Для этого откроем рассмотренный ранее файл interfaces:
# vi /etc/network/interfaces
и добавим в самый низ строку:
post-up /etc/nattables |
post-up /etc/nattables
Перезагрузим сервер для автоматического применения новых настроек:
# reboot
Теперь настроим Сервер DHCP
# apt-get install isc-dhcp-server
Файл конфигурации по умолчанию находится в /etc/dhcp/dhcpd.conf, откроем файл в редакторе с помощью команды:
# vi /etc/dhcp/dhcpd.conf
В большинстве случаев минимальная настройка производится внесением блока вида:
subnet 192.168.0.0 netmask 255.255.255.0 {#подсеть 192.168.0.0/24 range 192.168.0.2 192.168.0.254; #диапазон выдаваемых адресов option domain-name-servers 8.8.8.8;#dns-сервер option domain-name "test.loc"; #имя домена option routers 192.168.0.1; # “рекомендуемый” шлюз default-lease-time 604800; # стандартная длительность аренды ip-адреса max-lease-time 604800; #максимальная длительность аренды ip-адреса } |
subnet 192.168.0.0 netmask 255.255.255.0 {#подсеть 192.168.0.0/24 range 192.168.0.2 192.168.0.254; #диапазон выдаваемых адресов option domain-name-servers 8.8.8.8;#dns-сервер option domain-name "test.loc"; #имя домена option routers 192.168.0.1; # “рекомендуемый” шлюз default-lease-time 604800; # стандартная длительность аренды ip-адреса max-lease-time 604800; #максимальная длительность аренды ip-адреса }
После изменения конфигурационного файла необходимо перезапустить сервер DHCP для применения новых настроек:
# /etc/init.d/isc-dhcp-server restart
Теперь все клиенты локальной сети будут получать все настройки автоматически при подключении.
Ну вот и подошли к Sams2 и php 7
Скачиваем архив с исходниками —
# wget http://sams.perm.ru/download/sams-2.0.0-rc1.tar.bz2
или
# wget http://sani4.ru/ubuntu/sams-2.0.0-rc1.zip
Разархивирование
# tar -xvf sams-2.0.0-rc1.tar.bz2
и заходим в распакованный каталог
# cd sams2.0.0-rc1/
Перед сборкой конфигурации необходимо отредактировать файл
# vi debian/control
и меняем все php5 на php7
Собираем скрипт конфигурации:
# make -f Makefile.cvs # ./configure
По окончании работы скрипта вы должны увидеть следующее сообщение:
Use MySQL API: yes Use PostgreSQL API: no Use unixODBC API: no Use LDAP API: yes Using pcre: pcre Use dynamic plugin: yes |
Use MySQL API: yes Use PostgreSQL API: no Use unixODBC API: no Use LDAP API: yes Using pcre: pcre Use dynamic plugin: yes
6. Файл libtool, который генерирует скрипт, нуждается в патче.
И нам необходимо его отредактировать.
# vi libtool
и в строке 7486
absdir=`cd «$dir» && pwd`
заменить на
absdir=»/usr/lib»
Cобираем SAMS2
# make
8. Устанавливаем
# make install
Меняем владельца директории sams2 на www-data:
chown www-data:www-data -R /usr/local/share/sams2/ ln -s /usr/local/share/sams2 /var/www/sams2
10.В директории /etc/apache2/conf-enabled/ создаем файл sams2.conf со следующим содержимым
# vi /etc/apache2/conf-available/sams2.conf
Alias /sams2 /usr/local/share/sams2 <directory usr="" local="" share="" sams2=""> Options +FollowSymLinks AllowOverride All order allow,deny allow from all </directory> |
Alias /sams2 /usr/local/share/sams2 <directory usr="" local="" share="" sams2=""> Options +FollowSymLinks AllowOverride All order allow,deny allow from all </directory>
И еще один
# vi /etc/apache2/sites-available/sams2.conf
ServerName /sams2 DocumentRoot /usr/local/share/sams2 ErrorLog ${APACHE_LOG_DIR}/sams2.error.log CustomLog ${APACHE_LOG_DIR}/sams2.access.log combined |
ServerName /sams2 DocumentRoot /usr/local/share/sams2 ErrorLog ${APACHE_LOG_DIR}/sams2.error.log CustomLog ${APACHE_LOG_DIR}/sams2.access.log combined
Активируем
# a2enconf sams2 # a2ensite sams2.conf
теперь перезагрузим apache2
# service apache2 reload
И еще необходимо создать файл php5tophp7.php
с текстом
< ?php $GLOBALS["MySQL_mod"] = "mysqli"; function mysql_query($a) { return mysqli_query($GLOBALS["MySQLconn"],$a);} function mysql_affected_rows() { return mysqli_affected_rows($GLOBALS["MySQLconn"]);} function mysql_set_charset($a) { return mysqli_set_charset($GLOBALS["MySQLconn"],$a);} function mysql_error() { return mysqli_error();} function mysql_close($a) { return mysqli_close($a);} function mysql_num_rows($a) { return mysqli_num_rows($a);} function mysql_fetch_array($a) { return mysqli_fetch_array($a);} function mysql_insert_id() { return mysqli_insert_id($GLOBALS["MySQLconn"]);} function mysql_fetch_assoc($a) { return mysqli_fetch_assoc($a);} function mysql_select_db($a) { return true;} function mysql_result($res, $row, $field=0) { $res->data_seek($row); $datarow = $res->fetch_array(); return $datarow[$field];} function mysql_connect($a, $b, $c) { $h = M_HOST; $p = M_PORT; $s = ""; if ($a[0] == "/") { $h = ""; $s = $a; $p = 0; }; $GLOBALS["MySQLconn"] = mysqli_connect($h, $b, $c,M_BASE,$p,$s); return $GLOBALS["MySQLconn"];} function mysql_real_escape_string($a) { return mysqli_real_escape_string($GLOBALS["MySQLconn"],$a);} |
< ?php $GLOBALS["MySQL_mod"] = "mysqli"; function mysql_query($a) { return mysqli_query($GLOBALS["MySQLconn"],$a);} function mysql_affected_rows() { return mysqli_affected_rows($GLOBALS["MySQLconn"]);} function mysql_set_charset($a) { return mysqli_set_charset($GLOBALS["MySQLconn"],$a);} function mysql_error() { return mysqli_error();} function mysql_close($a) { return mysqli_close($a);} function mysql_num_rows($a) { return mysqli_num_rows($a);} function mysql_fetch_array($a) { return mysqli_fetch_array($a);} function mysql_insert_id() { return mysqli_insert_id($GLOBALS["MySQLconn"]);} function mysql_fetch_assoc($a) { return mysqli_fetch_assoc($a);} function mysql_select_db($a) { return true;} function mysql_result($res, $row, $field=0) { $res->data_seek($row); $datarow = $res->fetch_array(); return $datarow[$field];} function mysql_connect($a, $b, $c) { $h = M_HOST; $p = M_PORT; $s = ""; if ($a[0] == "/") { $h = ""; $s = $a; $p = 0; }; $GLOBALS["MySQLconn"] = mysqli_connect($h, $b, $c,M_BASE,$p,$s); return $GLOBALS["MySQLconn"];} function mysql_real_escape_string($a) { return mysqli_real_escape_string($GLOBALS["MySQLconn"],$a);}
Заходим на http://ip-address-proxy/sams2/setup.php настраиваем следуя инструкции.
Добавление сайтов в Apache2
# cd /etc/apache2
скопируем файл настроек
# cp sites-available/000-default.conf sites-available/test.conf
и отредактируем
ServerName /test DocumentRoot /var/www/test ErrorLog ${APACHE_LOG_DIR}/test.error.log CustomLog ${APACHE_LOG_DIR}/test.access.log combined |
ServerName /test DocumentRoot /var/www/test ErrorLog ${APACHE_LOG_DIR}/test.error.log CustomLog ${APACHE_LOG_DIR}/test.access.log combined
подключим его
# a2ensite test.conf
далее
скопируем файл конфигурации
# cp conf-available/javascript-common.conf conf-available/test.conf
отредактируем
Alias /test /var/www/test <directory "="" var="" www="" test"=""> Options FollowSymLinks MultiViews </directory> |
Alias /test /var/www/test <directory "="" var="" www="" test"=""> Options FollowSymLinks MultiViews </directory>
включим конфигурацию
# a2enconf test
теперь перезагрузим apache2
# service apache2 reload # service apache2 restart
Установка PHP 5.6 в Ubuntu 16.04
Добавим ppa-репозиторий в систему:
# sudo add-apt-repository ppa:ondrej/php # apt-get update
Далее запускаем установку PHP 5.6
# sudo apt-get install php5.6
Переключать активные версии можно командами:
Отключаем PHP 7.0
# sudo a2dismod php7.0
Включаем PHP 5.6
# sudo a2enmod php5.6
Перезагружаем apache2
# sudo service apache2 restart
И обратно
Проверить рабочую версию в данный момент, можно функцией phpinfo
< ?php phpinfo(); ?>