По вашему запросу ничего не найдено :(
Убедитесь, что запрос написан правильно, или посмотрите другие
наши статьи:
CentOS Web Panel (CWP) поможет легко установить стек LAMP или LEMP. Это бесплатное решение и работает на CentOS.
Если вы ищете место для размещения CMS вроде WordPress, Joomla и т.д., или PHP-приложения, где вам нужен веб-сервер, база данных, электронные письма, мониторинг и безопасность, то у вас есть два варианта.
Вы приобретаете виртуальную машину у одног из публичных облачных провайдеров и устанавливаете каждое программное обеспечение вручную. Это может занять много времени, и вам нужны навыки системного администрирования.
Или же выбираете способ попроще - вы получаете облачную виртуальную машину и устанавливаете CWP. Затем вы устанавливаете необходимое программное обеспечение через графический интерфейс пользователя. Это займет гораздо меньше времени, чем делать это вручную.
CWP позволяет установить более 50 программ/компонентов, самые популярные из которых указаны ниже.
Веб-стек - Apache, Nginx, Varnish
Стек приложений - PHP-FPM, MySQL, PostgreSQL, phpMyAdmin
Безопасность - сертификаты TLS, брандмауэр CSF, Mod Security с правилами OWASP
DNS и электронная почта - DNS-сервер, почтовые ящики, AntiSpam, Postfix
Мониторинг - метрики сервера, такие как CPU, файловая система, память
Диспетчер файлов
Crontab
В целом она выглядит многообещающим для размещения приложений на основе PHP. Давайте установим CWP и посмотрим, как он выглядит.
Установка CWP на CentOS
Следующая демонстрация выполняется на виртуальной машине Kamatera.
Войдите на сервер CentOS 7.x с учетной записью root-а или учетной записью с привилегией sudo
Выполните следующую команду для обновления YUM и установки CWP
yum -y install wget
yum -y update
wget http://centos-webpanel.com/cwp-el7-latest
sh cwp-el7-latest
Установка займет несколько минут. После окончания вы должны получить соответствующее уведомление.
#############################
# CWP Installed #
#############################
Go to CentOS WebPanel Admin GUI at http://SERVER_IP:2030/
http://167.71.1x1.xx:2030
SSL: https://167.71.1x1.xx:2031
Для вступления изменений в силу потребуется перезагрузка, которую можно выполнить командой:
shutdown -r now
К веб-панели CWP можно подключиться по 2030 (HTTP) и 2031 (HTTPS) портам. При первом входе в качестве имени пользователя можно использовать root и его пароль, и после входа в систему вы должны увидеть что-то подобное.
Интерфейс выглядит аккуратным и чистым. В левой части навигации можно найти все параметры, необходимые для установки, настройки и управления программным обеспечением и сервером.
С недавнего времени, на рынке телекоммуникаций начали активно «форсить» термин IP - телефония. Компании пережили бум на офисные «мини - АТС», когда коробка весом 5 килограмм казалось пиком компактности, технологичности и статуса. Но с развитием интернета, корпоративных сетей передачи данных и прочего ИТ – стафа появилась она, технология, которая перевернула игру – IP – телефония.
Видео: IP – телефония | Что это и с чего начать?
Учим матчасть
Скорее всего, ты нашел эту статью в следующем сценарии:
Открыл поисковую систему;
Набрал запрос вида «что такое IP - телефония»;
Попал сюда, на сайт wiki.merionet.ru;
А думал ли ты о том, что перейдя из поисковой системы на наш ресурс, твой браузер обратился по имени wiki.merionet.ru, преобразовал его в IP – адрес, упаковал все данные в пакет и отправил нам на сервер по протоколу https? Так оно и было, ага.
Так вот, друг, IP – телефония - это тоже самое. Только вместо протокол https, используется протокол SIP (Session Initiation Protocol), например, а пакеты с данными наполнены информацией о том, кто и куда звонит.
При звонке через IP – телефонию твой голос также передается через пакеты информации, но только уже по другому протоколу – он называется RTP (Real-time Transport Protocol)
Можно смело сказать, что сам по себе термин IP - телефония - это маркетинговый буллшит. Звонки через сети передачи данных работают в рамках тоже самой модели (она называется модель OSI, почитай по ссылке, полезно), что и обычный трафик, но просто используют другие протоколы, коих в рамках этой модели овердофига.
IP – телефония - это просто отдельный набор протоколов и стандартов в рамках модели описания функционирования сети (модели OSI). Для большего понимания, хорошо подходит термин VoIP (Voice over IP)., который дословно переводится как «передачи голоса поверх протокола IP». И да, VoIP и IP – телефония это одно и тоже.
Дальше мы поразмышляем, какой профит дает IP – телефония для рядовых пользователей, в сравнении с аналоговой связью, цифровым методом передачи сигналов, связыванием двух банок через нитку и голубиной почтой.
Профит
Мы не хотим раздувать эту тему и писать информацию, которая есть везде в сотый раз. Короткое резюме важных преимуществ, как для частного лица, кто решил воспользоваться IP – телефонией, так и для корпоратов, которые хотят срезать операционку:
Сэкономить деньжат - звонки через IP – телефонию в город, межгород и международные направления дешевле. Априори. Ибо провайдер провайдерский трафик идет по интернету почти до самой конечной точки, не занимая дорогостоящие каналы;
Куча новых фич - как то раз мы слушали как обрабатывает телефонный вызов аналоговая телефонная станция – она слегка скрипит в этот момент. Такое. Станции, которые работают с голосом по IP имеют кучу фич, такие как запись разговоров, видео – звонки, конференции, интеграция с CRM и прочее. А еще их можно легко интегрировать с чем угодно, хоть с инстаграмом;
Обслуживание - современные станции, которые работают с IP – телефонией программные (софтовые). При небольшой нагрузке, их можно установить хоть на неттоп. Так же они оснащены WEB – интерфейсом, через который можно настроить нужные функции. Чтобы настроить аналоговую телефонную станцию, нужно бить в бубен, зажечь ритуальный костер в серверной и надеть специальный шаманский наряд;
В ногу со временем - прогресс идет и за ним нужно успевать. Обновляйте IT, и ваш бизнес отплатит вам за это высоким ROI :);
С чего начать
Посмотрите этот милый ролик – тут есть полная информация о том, как развернуть IP – АТС дома или в офисе бесплатно:
Если будут вопросы, мы ответим на них в комментариях :)
Итоги
Переход на VoIP прекрасен, с какой стороны на него не взгляни. Для физического лица профит безусловен – выкидывайте свой старый дисковый аппарат, подключайте IP - телефонию и экономьте на звонках бабушке в Искитим.
Для юридических лиц – считайте ROI и не бойтесь вложиться в переход с аналога/цифры в сторону VoIP. Ваши сотрудники и партнеры оценят.
Уже прошло несколько лет с тех пор, как появился Kotlin, и он преуспевает. Так как Kotlin был создан в качестве замены Java, то его, как и следовало ожидать, во многом сравнивают именно с ним.
Чтобы помочь вам выбрать один из двух языков, я сравню основные аспекты каждого из них.
Вот 8 пунктов, которые я рассмотрю в этой статье:
Синтаксис
Лямбда-выражения
Обработка нулей
Классы предметной области
Глобальные переменные
Параллелизм
Функции расширения
Сообщество
Сравнение синтаксиса
Давайте сначала проведем сравнение базового синтаксиса. Я думаю, что многие из вас, кто читает эту статью, возможно, уже знают кое-что о Java и/или Kotlin, но я все же приведу пример, чтобы мы могли явно их сравнить:
Java
public class HelloClass {
public void FullName(String firstName, String lastName) {
String fullName = firstName + " " + lastName;
System.out.println("My name is : " + fullName);
}
public void Age() {
int age = 21;
System.out.println("My age is : " + age);
}
public static void main(String args[]) {
HelloClass hello = new HelloClass();
hello.FullName("John","Doe");
hello.Age();
}
}
Kotlin
class NameClass {
fun FullName(firstName: String, lastName:String) {
var fullName = "$firstName $lastName"
println("My Name is : $fullName")
}
}
fun Age() {
var age : Int
age = 21
println("My age is: $age")
}
fun main(args: Array) {
NameClass().FullName("John","Doe")
Age()
}
Код не сильно отличается, если не считать небольших различий в синтаксисе методов и классов.
Но реальное различие заключается в том, что Kotlin поддерживает вывод типов, где тип переменной не нужно объявлять. А еще там не нужны точки с запятой ( ; ).
Также можно отметить, что Kotlin не сильно придерживается принципов ООП, в отличие от Java, где все содержится внутри класса. Посмотрите хотя бы на функции Age и main в примере – они не находятся внутри класса.
Kotlin, как правило, имеет меньше строк кола, а вот Java придерживается традиционного подхода и, соответственно, является достаточно многословным.
Одно из преимуществ Kotlin перед Java – он может делать все, используя как традиционный ООП-подход, так и любой другой.
Лямбда-выражения
Если мы заговорили о Java и Kotlin, то мы, конечно же, должны поговорить об их знаменитых лямбда-выражениях. У Kotlin есть встроенная поддержка лямбда-функций (и всегда была), а вот в Java она появилась только в Java 8.
Давайте посмотрим, как они выглядят.
Java
//syntaxes
parameter -> expression
(parameter1, parameter2) -> { code }
//sample usage
ArrayList numbers = new ArrayList();
numbers.add(5);
numbers.add(9);
numbers.forEach( (n) -> { System.out.println(n); } );
Kotlin
//syntax
{ parameter1, parameter2 -> code }
//sample usage
max(strings, { a, b -> a.length < b.length })
В Java скобки не являются обязательными: если есть только один параметр, то они не нужны. Но в Kotlin скобки нужны всегда. Однако, в общем и целом, помимо синтаксиса, различий не так уж и много.
Как по мне, лямбда-функции используются только в качестве методов обратного вызова. Хоть они и имеют гораздо более широкий спектр применений, все же они не очень читабельны, в связи с чем их реже используют. Они, конечно, сократят объем вашего кода, но разобраться в нем потом будет достаточно сложно.
Это вопрос предпочтений, но мне кажется, что намного удобнее, когда скобки используются всегда, как в Kotlin, потому что так код становится более читабельным.
Обработка нулей
В объектно-ориентированном языке значения нулевого типа всегда были проблемой. Когда вы пытаетесь использовать содержимое нулевого значения, выпадает исключение нулевого указателя (NPE - Null Pointer Exception).
Поскольку NPE всегда были проблемой, то и у Java, и у Kotlin есть свой способ обработки нулевых объектов. Как они это делают, я покажу ниже.
Java
Object object = objServ.getObject();
//traditional approach of null checking
if(object!=null){
System.out.println(object.getValue());
}
//Optional was introduced in Java 8 to further help with null values
//Optional nullable will allow null object
Optional
