{"id":265032,"date":"2015-09-06T20:06:02","date_gmt":"2015-09-06T16:06:02","guid":{"rendered":"http:\/\/savepearlharbor.com\/?p=265032"},"modified":"-0001-11-30T00:00:00","modified_gmt":"-0001-11-29T21:00:00","slug":"","status":"publish","type":"post","link":"https:\/\/savepearlharbor.com\/?p=265032","title":{"rendered":"\u0412 \u043f\u043e\u043c\u043e\u0449\u044c \u043c\u0430\u0440\u043a\u0435\u0442\u043e\u043b\u043e\u0433\u0443: \u043f\u0438\u0448\u0435\u043c \u0430\u0432\u0442\u043e\u043c\u0430\u0442\u0438\u0447\u0435\u0441\u043a\u0443\u044e \u0432\u044b\u0433\u0440\u0443\u0437\u043a\u0443 \u0434\u0430\u043d\u043d\u044b\u0445 \u0438\u0437 Adfox \u0441 \u0432\u0438\u0437\u0443\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u0435\u0439"},"content":{"rendered":"<p>     \t\u0412 <a href=\"http:\/\/habrahabr.ru\/post\/265383\/\">\u043f\u0440\u043e\u0448\u043b\u043e\u0439 \u0441\u0442\u0430\u0442\u044c\u0435<\/a> \u0431\u044b\u043b \u0440\u0430\u0441\u0441\u043c\u043e\u0442\u0440\u0435\u043d \u043f\u0440\u0438\u043c\u0435\u0440 \u043d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0438 \u0430\u0432\u0442\u043e\u043c\u0430\u0442\u0438\u0447\u0435\u0441\u043a\u043e\u0439 \u0432\u044b\u0433\u0440\u0443\u0437\u043a\u0438 \u0434\u0430\u043d\u043d\u044b\u0445 \u0438\u0437 \u042f\u043d\u0434\u0435\u043a\u0441 \u041c\u0435\u0442\u0440\u0438\u043a\u0438. \u042d\u0442\u043e \u043e\u0431\u043b\u0435\u0433\u0447\u0430\u0435\u0442 \u0440\u0435\u0433\u0443\u043b\u044f\u0440\u043d\u0443\u044e \u0432\u044b\u0433\u0440\u0443\u0437\u043a\u0443, \u043d\u043e \u0441\u043f\u043e\u0441\u043e\u0431 \u043f\u043e\u043b\u0443\u0447\u0430\u0435\u0442\u0441\u044f \u043f\u043e\u043b\u0443\u0430\u0432\u0442\u043e\u043c\u0430\u0442\u0438\u0447\u0435\u0441\u043a\u0438\u043c: \u043d\u0430\u0434\u043e \u0437\u0430\u043f\u0443\u0441\u043a\u0430\u0442\u044c \u0441\u043a\u0440\u0438\u043f\u0442, \u043a\u043e\u043f\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u0440\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442\u044b \u0432\u044b\u0433\u0440\u0443\u0437\u043a\u0438 \u043a \u0441\u0435\u0431\u0435 \u0438 \u0434\u0430\u043b\u044c\u0448\u0435 \u0437\u0430\u043d\u0438\u043c\u0430\u0442\u044c\u0441\u044f \u0438\u0445 \u043e\u0444\u043e\u0440\u043c\u043b\u0435\u043d\u0438\u0435\u043c. \u041f\u043e\u0441\u043c\u043e\u0442\u0440\u0438\u043c \u043a\u0430\u043a \u043c\u043e\u0436\u043d\u043e \u0441\u0434\u0435\u043b\u0430\u0442\u044c \u043f\u0440\u043e\u0446\u0435\u0441\u0441 \u043f\u043e\u043b\u043d\u043e\u0441\u0442\u044c\u044e \u0430\u0432\u0442\u043e\u043c\u0430\u0442\u0438\u0447\u0435\u0441\u043a\u0438\u043c. \u0414\u043b\u044f \u043f\u0440\u0438\u043c\u0435\u0440\u0430 \u0431\u0443\u0434\u0435\u043c \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c \u0432\u044b\u0433\u0440\u0443\u0437\u043a\u0443 \u0434\u0430\u043d\u043d\u044b\u0445 \u0438\u0445 \u0440\u0435\u043a\u043b\u0430\u043c\u043d\u043e\u0439 \u0441\u0438\u0441\u0442\u0435\u043c\u044b Adfox.<\/p>\n<p>  Adfox \u0438\u043c\u0435\u0435\u0442 \u043c\u043d\u043e\u0433\u043e \u0433\u043e\u0442\u043e\u0432\u044b\u0445 \u043e\u0442\u0447\u0435\u0442\u043e\u0432, \u043e\u0434\u043d\u0430\u043a\u043e \u0434\u0430\u0436\u0435 \u043f\u0440\u043e\u0441\u0442\u044b\u0435 \u0443\u0441\u043b\u043e\u0436\u043d\u0435\u043d\u0438\u044f \u0442\u0440\u0435\u0431\u043e\u0432\u0430\u043d\u0438\u0439 \u043a \u043e\u0442\u0447\u0435\u0442\u043d\u043e\u0441\u0442\u0438 \u0432\u044b\u0437\u044b\u0432\u0430\u044e\u0442 \u043f\u0440\u043e\u0431\u043b\u0435\u043c\u044b. \u0415\u0441\u0442\u044c \u043e\u043f\u0446\u0438\u044f \u043d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0438 \u0440\u0435\u0433\u0443\u043b\u044f\u0440\u043d\u044b\u0445 \u043e\u0442\u0447\u0435\u0442\u043e\u0432, \u043e\u0434\u043d\u0430\u043a\u043e \u0432 \u0431\u043e\u043b\u044c\u0448\u0438\u043d\u0441\u0442\u0432\u0435 \u0441\u043b\u0443\u0447\u0430\u0435\u0432 \u043f\u0440\u0438\u0445\u043e\u0434\u0438\u0442\u0441\u044f \u043d\u0430\u0441\u0442\u0440\u0430\u0438\u0432\u0430\u0442\u044c \u043a\u043e\u043c\u0431\u0438\u043d\u0430\u0446\u0438\u0438 \u0432\u044b\u0433\u0440\u0443\u0437\u043e\u043a \u0441\u0430\u043c\u043e\u043c\u0443.<\/p>\n<p>  \u0412 \u044d\u0442\u043e\u0439 \u0441\u0442\u0430\u0442\u044c\u0435 \u043f\u043e\u043a\u0430\u0437\u0430\u043d\u043e \u043a\u0430\u043a \u0441\u0434\u0435\u043b\u0430\u0442\u044c \u0441\u043a\u0440\u0438\u043f\u0442, \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u0432\u044b\u0433\u0440\u0443\u0436\u0430\u0435\u0442 CTR \u0432\u0441\u0435\u0445 \u0431\u0430\u043d\u043d\u0435\u0440\u043e\u0432, \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u0434\u043e\u0441\u0442\u0443\u043f\u043d\u044b \u0430\u043a\u043a\u0430\u0443\u043d\u0442\u0443 (\u0441\u0434\u0435\u043b\u0430\u0442\u044c \u044d\u0442\u043e \u0432\u0440\u0443\u0447\u043d\u0443\u044e \u043d\u0435\u0440\u0435\u0430\u043b\u044c\u043d\u043e \u043f\u043e \u0432\u0440\u0435\u043c\u0435\u043d\u0438). \u0410 \u0442\u0430\u043a\u0436\u0435 \u043a\u0430\u043a \u043e\u0442\u043e\u0431\u0440\u0430\u0437\u0438\u0442\u044c \u044d\u0442\u043e \u043d\u0430 \u0433\u0440\u0430\u0444\u0438\u043a\u0435 \u0432 \u0432\u0438\u0434\u0435 \u043f\u0440\u043e\u0441\u0442\u043e\u0439 HTML-\u0441\u0442\u0440\u0430\u043d\u0438\u0446\u044b. \u0422. \u0435. \u043c\u044b \u043f\u043e\u0441\u043b\u0435\u0434\u043e\u0432\u0430\u0442\u0435\u043b\u044c\u043d\u043e \u043f\u0440\u043e\u0441\u043c\u043e\u0442\u0440\u0438\u043c \u0432\u0441\u0435 \u043a\u0430\u043c\u043f\u0430\u043d\u0438\u0438 \u0438 \u0444\u043b\u0430\u0439\u0442\u044b, \u0432\u043e\u0437\u044c\u043c\u0435\u043c \u043f\u043e\u043a\u0430\u0437\u044b \u0438 \u043a\u043b\u0438\u043a\u0438 \u043f\u043e \u0432\u0441\u0435\u043c \u0431\u0430\u043d\u043d\u0435\u0440\u0430\u043c \u0438 \u043d\u0430\u0440\u0438\u0441\u0443\u0435\u043c \u0433\u0440\u0430\u0444\u0438\u043a CTR. \u041a\u0430\u043a \u0438 \u0432 \u043f\u0440\u043e\u0448\u043b\u043e\u0439 \u0441\u0442\u0430\u0442\u044c\u0435 \u0440\u0430\u0431\u043e\u0442\u0430\u0442\u044c \u0431\u0443\u0434\u0435\u043c \u043d\u0430 \u0438\u043d\u0441\u0442\u0430\u043d\u0441\u0430\u0445 Amazon Web Services, \u0447\u0442\u043e\u0431\u044b \u0431\u044b\u043b\u043e \u0443\u043d\u0438\u0432\u0435\u0440\u0441\u0430\u043b\u044c\u043d\u043e \u0438 \u0433\u043b\u0430\u0432\u043d\u043e\u0435 \u0431\u0435\u0441\u043f\u043b\u0430\u0442\u043d\u043e. \u0412\u044b\u0433\u0440\u0443\u0437\u043a\u0430 \u0434\u0430\u043d\u043d\u044b\u0445 \u043d\u0430 PHP, \u0433\u0440\u0430\u0444\u0438\u043a\u0438 \u0440\u0438\u0441\u0443\u0435\u043c \u0432 Highcharts. \u0412 \u043a\u043e\u0434\u0435 \u0440\u0435\u0430\u043b\u0438\u0437\u043e\u0432\u0430\u043d \u0441\u0430\u043c\u044b\u0439 \u043f\u0440\u043e\u0441\u0442\u043e\u0439 \u0441\u043f\u043e\u0441\u043e\u0431 \u0432\u044b\u0433\u0440\u0443\u0437\u043a\u0438 \u0438 \u043e\u0431\u0440\u0430\u0431\u043e\u0442\u043a\u0438 \u0434\u0430\u043d\u043d\u044b\u0445 \u0431\u0435\u0437 \u043a\u0430\u043a\u0438\u0445-\u043b\u0438\u0431\u043e \u0443\u043b\u0443\u0447\u0448\u0435\u043d\u0438\u0439. \u0412 \u0438\u0442\u043e\u0433\u0435 \u043f\u043e\u043b\u0443\u0447\u0438\u043c \u0435\u0436\u0435\u0434\u043d\u0435\u0432\u043d\u043e \u043e\u0431\u043d\u043e\u0432\u043b\u044f\u0435\u043c\u0443\u044e \u0437\u0430 \u0432\u0447\u0435\u0440\u0430\u0448\u043d\u0438\u0439 \u0434\u0435\u043d\u044c \u0441\u0442\u0440\u0430\u043d\u0438\u0446\u0443 \u0432\u0438\u0434\u0430<br \/>  <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/files\/243\/28d\/5fa\/24328d5faadd41019197911051ab4ba2.jpg\" alt=\"image\"\/><br \/>  <a name=\"habracut\"><\/a><\/p>\n<p>  \u041d\u0430\u0447\u0438\u043d\u0430\u0435\u043c \u0441 \u0441\u043e\u0437\u0434\u0430\u043d\u0438\u044f \u0430\u043a\u043a\u0430\u0443\u043d\u0442\u0430 \u043d\u0430 AWS (\u0435\u0441\u043b\u0438 \u0435\u0449\u0435 \u043d\u0435\u0442). \u042d\u0442\u0430 \u043f\u0440\u043e\u0446\u0435\u0434\u0443\u0440\u0430 \u043f\u043e\u0434\u0440\u043e\u0431\u043d\u043e \u043e\u043f\u0438\u0441\u0430\u043d\u0430 \u0432 \u0434\u043e\u043a\u0443\u043c\u0435\u043d\u0442\u0430\u0446\u0438\u0438 <a href=\"http:\/\/docs.aws.amazon.com\/AWSEC2\/latest\/UserGuide\/ec2-ug.pdf\">docs.aws.amazon.com\/AWSEC2\/latest\/UserGuide\/ec2-ug.pdf<\/a> (\u0434\u043e \u043f\u0443\u043d\u043a\u0442\u0430 Getting started). \u0414\u0430\u043b\u0435\u0435 \u043c\u044b \u043f\u0440\u043e\u0439\u0434\u0435\u043c \u044d\u0442\u0430\u043f, \u043e\u043f\u0438\u0441\u0430\u043d\u043d\u044b\u0439 \u0432 \u044d\u0442\u043e\u0439 \u0436\u0435 \u0434\u043e\u043a\u0443\u043c\u0435\u043d\u0442\u0430\u0446\u0438\u0438 \u0432 \u0433\u043b\u0430\u0432\u0435 \u00abTutorial: Installing a LAMP Web Server on Amazon Linux\u00bb: \u0443\u0441\u0442\u0430\u043d\u043e\u0432\u0438\u043c \u043d\u0443\u0436\u043d\u044b\u0435 \u043d\u0430\u043c \u0434\u043b\u044f \u0432\u044b\u0433\u0440\u0443\u0437\u043a\u0438 \u0438 \u0445\u0440\u0430\u043d\u0435\u043d\u0438\u044f \u0434\u0430\u043d\u043d\u044b\u0445 PHP \u0438 MySQL (\u0432 \u0434\u0430\u043b\u044c\u043d\u0435\u0439\u0448\u0435\u043c \u0440\u0430\u0431\u043e\u0442\u0430\u0442\u044c \u0441 MySQL \u043b\u0443\u0447\u0448\u0435, \u0447\u0435\u043c \u0441 \u0442\u0435\u043a\u0441\u0442\u043e\u0432\u044b\u043c\u0438 \u0444\u0430\u0439\u043b\u0430\u043c\u0438). \u041c\u043e\u0436\u043d\u043e \u043a\u043e\u043d\u0435\u0447\u043d\u043e \u043e\u0431\u043e\u0439\u0442\u0438\u0441\u044c \u0431\u0435\u0437 \u044d\u0442\u043e\u0433\u043e, \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u044f \u0432\u0441\u0442\u0440\u043e\u0435\u043d\u043d\u044b\u0439 Python. \u0417\u0430\u043f\u0443\u0441\u043a\u0430\u0435\u043c \u0438\u043d\u0441\u0442\u0430\u043d\u0441 Amazon Linux (\u043f\u043e\u0434\u0440\u043e\u0431\u043d\u043e\u0441\u0442\u0438 \u0441\u043c. <a href=\"http:\/\/habrahabr.ru\/post\/265383\/\">\u043f\u0440\u0435\u0434\u044b\u0434\u0443\u0449\u0443\u044e \u0441\u0442\u0430\u0442\u044c\u044e<\/a> \u0433\u0434\u0435 \u043c\u044b \u0432\u044b\u0431\u0438\u0440\u0430\u043b\u0438 \u0438\u043d\u0441\u0442\u0430\u043d\u0441 Ubuntu Server). \u0417\u0434\u0435\u0441\u044c \u043d\u0430\u043c \u043f\u043e\u043d\u0430\u0434\u043e\u0431\u0438\u0442\u0441\u044f \u0438\u043c\u0435\u043d\u043d\u043e Linux, \u0430 \u043d\u0435 Ubuntu. \u0427\u0442\u043e\u0431\u044b \u0437\u0430\u043f\u0443\u0441\u0442\u0438\u0442\u044c LAMP web server \u043d\u0430 Ubuntu \u0441\u043c\u043e\u0442\u0440\u0438\u0442\u0435 \u0434\u043e\u043a\u0443\u043c\u0435\u043d\u0442\u0430\u0446\u0438\u044e <a href=\"https:\/\/help.ubuntu.com\/community\/ApacheMySQLPHP\">help.ubuntu.com\/community\/ApacheMySQLPHP<\/a>. \u0418\u0442\u0430\u043a, \u0432\u044b\u0431\u0438\u0440\u0430\u0435\u043c \u0438\u043d\u0441\u0442\u0430\u043d\u0441 Amazon Linux, \u043f\u0440\u043e\u0432\u0435\u0440\u044f\u0435\u043c Security Group \u0438 \u0443\u0431\u0435\u0436\u0434\u0430\u0435\u043c\u0441\u044f \u0447\u0442\u043e \u0443 \u043d\u0430\u0441 \u0435\u0441\u0442\u044c \u043f\u0440\u0438\u0432\u0430\u0442\u043d\u044b\u0439 \u043a\u043b\u044e\u0447. \u0427\u0435\u0440\u0435\u0437 \u043f\u0430\u0440\u0443 \u043c\u0438\u043d\u0443\u0442 \u043f\u043e\u043b\u0443\u0447\u0430\u0435\u043c Public DNS \u043d\u0430\u0448\u0435\u0433\u043e \u0438\u043d\u0441\u0442\u0430\u043d\u0441\u0430 \u0438 \u043f\u043e\u0434\u0441\u043e\u0435\u0434\u0438\u043d\u044f\u0435\u043c\u0441\u044f \u043a \u043d\u0435\u043c\u0443 \u0447\u0435\u0440\u0435\u0437 Putty (\u0434\u043b\u044f Windows) \u0438\u043b\u0438 Terminal \u0434\u043b\u044f MAC:<br \/>  <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/files\/59a\/157\/0fb\/59a1570fbc4541f4aee665cf12a29934.jpg\"\/><\/p>\n<p>  \u0421\u0442\u0430\u0432\u0438\u043c LAMP web server. \u0412\u044b\u043f\u043e\u043b\u043d\u044f\u0435\u043c \u043a\u043e\u043c\u0430\u043d\u0434\u0443 \u043f\u0440\u043e\u0432\u0435\u0440\u043a\u0438, \u0447\u0442\u043e \u0438\u043c\u0435\u0435\u043c \u043f\u043e\u0441\u043b\u0435\u0434\u043d\u0438\u0435 \u043e\u0431\u043d\u043e\u0432\u043b\u0435\u043d\u0438\u044f:<br \/>  $ sudo yum update -y<\/p>\n<p>  \u0421\u0442\u0430\u0432\u0438\u043c PHP \u043f\u043e\u0434\u0445\u043e\u0434\u044f\u0449\u0435\u0439 \u043d\u0430\u043c \u0432\u0435\u0440\u0441\u0438\u0438:<br \/>  $ sudo yum install -y httpd24 php56 mysql55-server php56-mysqlnd<\/p>\n<p>  \u0417\u0430\u043f\u0443\u0441\u043a\u0430\u0435\u043c Apache web server:<br \/>  $ sudo service httpd start<\/p>\n<p>  \u0425\u043e\u0442\u0438\u043c, \u0447\u0442\u043e\u0431\u044b Apache web server \u0441\u0442\u0430\u0440\u0442\u043e\u0432\u0430\u043b \u043f\u0440\u0438 \u043a\u0430\u0436\u0434\u043e\u043c \u0437\u0430\u043f\u0443\u0441\u043a\u0435 \u0441\u0438\u0441\u0442\u0435\u043c\u044b:<br \/>  $ sudo chkconfig httpd on<\/p>\n<p>  \u0422\u0435\u0441\u0442\u0438\u0440\u0443\u0435\u043c, \u0447\u0442\u043e \u0432\u0441\u0435 \u043f\u0440\u043e\u0448\u043b\u043e \u0443\u0441\u043f\u0435\u0448\u043d\u043e: \u043a\u043e\u043f\u0438\u043f\u0430\u0441\u0442\u0438\u043c \u0432 \u0431\u0440\u0430\u0443\u0437\u0435\u0440 Public DNS \u043d\u0430\u0448\u0435\u0433\u043e \u0438\u043d\u0441\u0442\u0430\u043d\u0441\u0430 \u0438 \u043f\u043e\u043b\u0443\u0447\u0430\u0435\u043c \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0443\u044e \u0441\u0442\u0440\u0430\u043d\u0438\u0447\u043a\u0443:<br \/>  <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/files\/8fb\/65a\/294\/8fb65a294821490d82791e9a61d1ee52.jpg\"\/><\/p>\n<p>  \u0421\u0435\u0439\u0447\u0430\u0441 \u043a\u043e\u0440\u043d\u0435\u0432\u043e\u0439 \u0434\u0438\u0440\u0435\u043a\u0442\u043e\u0440\u0438\u0435\u0439 \/var\/www\/ \u00ab\u0432\u043b\u0430\u0434\u0435\u0435\u0442\u00bb \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u044c root. \u0421\u0434\u0435\u043b\u0430\u0435\u043c \u0442\u0443\u0434\u0430 \u0434\u043e\u0441\u0442\u0443\u043f \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u044e ec2-user:<\/p>\n<p>  \u0421\u043e\u0437\u0434\u0430\u0435\u043c \u0433\u0440\u0443\u043f\u043f\u0443 \u00abwww\u00bb:<br \/>  $ sudo groupadd www<\/p>\n<p>  \u0414\u043e\u0431\u0430\u0432\u043b\u044f\u0435\u043c \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u044f ec2-user \u0432 \u0433\u0440\u0443\u043f\u043f\u0443 www:<br \/>  $ sudo usermod -a -G www ec2-user<\/p>\n<p>  \u0427\u0442\u043e\u0431\u044b \u0438\u0437\u043c\u0435\u043d\u0435\u043d\u0438\u044f \u0432\u0441\u0442\u0443\u043f\u0438\u043b\u0438 \u0432 \u0441\u0438\u043b\u0443 \u0437\u0430\u043a\u0440\u044b\u0432\u0430\u0435\u043c Putty \u0438\u043b\u0438 Terminal (\u043a\u043e\u043c\u0430\u043d\u0434\u0430 exit) \u0438 \u043f\u043e\u0434\u0441\u043e\u0435\u0434\u0438\u043d\u044f\u0435\u043c\u0441\u044f \u043a \u0438\u043d\u0441\u0442\u0430\u043d\u0441\u0443 \u0435\u0449\u0435 \u0440\u0430\u0437. \u041f\u0440\u043e\u0432\u0435\u0440\u044f\u0435\u043c, \u0447\u0442\u043e \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u044c ec2-user \u043f\u0440\u043e\u043f\u0438\u0441\u0430\u043d \u0432 \u0433\u0440\u0443\u043f\u043f\u0435 www:<br \/>  $ groups<br \/>  ec2-user wheel www<\/p>\n<p>  \u041c\u0435\u043d\u044f\u0435\u043c \u0432\u043b\u0430\u0434\u0435\u043b\u044c\u0446\u0430 \u043f\u0430\u043f\u043a\u0438 \/var\/www:<br \/>  $ sudo chown -R root:www \/var\/www<\/p>\n<p>  \u0414\u043e\u0431\u0430\u0432\u043b\u044f\u0435\u043c \u0432\u043e\u0437\u043c\u043e\u0436\u043d\u043e\u0441\u0442\u044c \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u044e ec2-user \u0438 \u0434\u0440\u0443\u0433\u0438\u043c \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u044f\u043c \u0438\u0437 \u0433\u0440\u0443\u043f\u043f\u044b www \u043f\u0440\u0430\u0432\u0430 \u043d\u0430 \u0438\u0437\u043c\u0435\u043d\u0435\u043d\u0438\u0435 \u043f\u0430\u043f\u043a\u0438 \/var\/www:<br \/>  $ sudo chmod 2775 \/var\/www<br \/>  $ find \/var\/www -type d -exec sudo chmod 2775 {} +<br \/>  $ find \/var\/www -type f -exec sudo chmod 0664 {} +<\/p>\n<p>  \u0422\u0435\u0441\u0442\u0438\u0440\u0443\u0435\u043c, \u0447\u0442\u043e \u0442\u0435\u043f\u0435\u0440\u044c \u043c\u044b \u043c\u043e\u0436\u0435\u043c \u0441\u043e\u0437\u0434\u0430\u0432\u0430\u0442\u044c PHP-\u0444\u0430\u0439\u043b\u044b \u0432 \u0434\u0438\u0440\u0435\u043a\u0442\u043e\u0440\u0438\u0438 \/var\/www. \u0414\u043b\u044f \u044d\u0442\u043e\u0433\u043e \u0441\u043e\u0437\u0434\u0430\u0435\u043c \u0444\u0430\u0439\u043b phpinfo.php \u0438 \u0437\u0430\u043f\u0438\u0441\u044b\u0432\u0430\u0435\u043c \u0432 \u043d\u0435\u0433\u043e &lt;?php phpinfo(); ?&gt;:<br \/>  $ echo &quot;&lt;?php phpinfo(); ?&gt;&quot; &gt; \/var\/www\/html\/phpinfo.php<\/p>\n<p>  \u0421\u043d\u043e\u0432\u0430 \u0432 \u0430\u0434\u0440\u0435\u0441\u043d\u043e\u0439 \u0441\u0442\u0440\u043e\u043a\u0435 \u0431\u0440\u0430\u0443\u0437\u0435\u0440\u0430 \u043a\u043e\u043f\u0438\u043f\u0430\u0441\u0442\u0438\u043c Public DNS \u043d\u0430\u0448\u0435\u0433\u043e \u0438\u043d\u0441\u0442\u0430\u043d\u0441\u0430 \u0438 \u0434\u043e\u0431\u0430\u0432\u043b\u044f\u0435\u043c &quot;\/phpinfo.php&quot;. \u041c\u044b \u0434\u043e\u043b\u0436\u043d\u044b \u043f\u043e\u043b\u0443\u0447\u0438\u0442\u044c \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0443\u044e \u0441\u0442\u0440\u0430\u043d\u0438\u0446\u0443 \u0441 \u043a\u043e\u043d\u0444\u0438\u0433\u0443\u0440\u0430\u0446\u0438\u0435\u0439 PHP:<br \/>  <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/files\/3e7\/6d4\/885\/3e76d48851854a7795d3f7ad347cb9cc.jpg\"\/><\/p>\n<p>  \u0412 \u0446\u0435\u043b\u044f\u0445 \u0431\u0435\u0437\u043e\u043f\u0430\u0441\u043d\u043e\u0441\u0442\u0438 \u0443\u0434\u0430\u043b\u044f\u0435\u043c \u0441\u043e\u0437\u0434\u0430\u043d\u043d\u044b\u0439 \u043d\u0430\u043c\u0438 \u0444\u0430\u0439\u043b phpinfo.php:<br \/>  $ rm \/var\/www\/html\/phpinfo.php<\/p>\n<p>  \u041e\u0442\u043b\u0438\u0447\u043d\u043e, \u043c\u044b \u0433\u043e\u0442\u043e\u0432\u044b \u043a \u0432\u044b\u0433\u0440\u0443\u0437\u043a\u0435 \u0434\u0430\u043d\u043d\u044b\u0445 \u0438\u0437 Adfox!<\/p>\n<p>  <b>\u0412\u044b\u0433\u0440\u0443\u0436\u0430\u0435\u043c \u0441\u0442\u0430\u0442\u0438\u0441\u0442\u0438\u043a\u0443 Adfox<\/b><br \/>  \u0414\u043e\u043a\u0443\u043c\u0435\u043d\u0442\u0430\u0446\u0438\u044e \u043a API Adfox \u043c\u043e\u0436\u043d\u043e \u043d\u0430\u0439\u0442\u0438 \u043d\u0430 \u0441\u0442\u0440\u0430\u043d\u0438\u0446\u0435 <a href=\"http:\/\/help.adfox.ru\/\">help.adfox.ru<\/a> (\u0441\u0441\u044b\u043b\u043a\u0430 \u043d\u0430 \u0441\u043a\u0430\u0447\u0438\u0432\u0430\u043d\u0438\u0435 \u0432 \u0441\u0430\u043c\u043e\u043c \u043d\u0438\u0437\u0443 \u0441\u0442\u0440\u0430\u043d\u0438\u0446\u044b). \u0412 \u0446\u0435\u043b\u043e\u043c \u0434\u043e\u043a\u0443\u043c\u0435\u043d\u0442\u0430\u0446\u0438\u044f \u0441\u043e\u0441\u0442\u0430\u0432\u043b\u0435\u043d\u0430 \u043d\u0435 \u043e\u0447\u0435\u043d\u044c \u043d\u0430\u0433\u043b\u044f\u0434\u043d\u043e, \u043f\u043e\u044d\u0442\u043e\u043c\u0443 \u0432 \u043e\u0431\u0449\u0435\u043c \u0441\u043b\u0443\u0447\u0430\u0435 \u043c\u043e\u0436\u043d\u043e \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0435\u0435 \u043f\u0440\u0430\u0432\u0438\u043b\u043e: \u0435\u0441\u043b\u0438 \u0432\u0430\u043c \u043d\u0443\u0436\u043d\u043e \u043f\u043e\u043b\u0443\u0447\u0438\u0442\u044c \u0441\u0441\u044b\u043b\u043a\u0443 \u0434\u043b\u044f \u043e\u0442\u0447\u0435\u0442\u0430 \u0432 API, \u0442\u043e \u043a\u043e\u043f\u0438\u0440\u0443\u0435\u0442\u0435 \u0441\u0441\u044b\u043b\u043a\u0443 \u0438\u0437 \u0431\u0440\u0430\u0443\u0437\u0435\u0440\u0430 \u0438 \u043f\u043e\u0434\u0441\u0442\u0430\u0432\u043b\u044f\u0435\u0442\u0435 \u0432 \u043d\u0435\u0435 \u043b\u043e\u0433\u0438\u043d \u0438 \u043f\u0430\u0440\u043e\u043b\u044c + &#8216;&#038;isXML=1&#8217; \u0434\u043b\u044f \u043f\u043e\u043b\u0443\u0447\u0435\u043d\u0438\u044f \u0434\u0430\u043d\u043d\u044b\u0445 \u0432 \u0444\u043e\u0440\u043c\u0430\u0442\u0435 XML. \u0415\u0441\u043b\u0438 \u043d\u0443\u0436\u043d\u044b \u0444\u0443\u043d\u043a\u0446\u0438\u0438 \u043f\u043e\u0438\u0441\u043a\u0430 \u0438\u043b\u0438 \u043d\u0430\u0441\u0442\u0440\u043e\u0435\u043a \u043a\u0430\u043c\u043f\u0430\u043d\u0438\u0439, \u0442\u043e \u043f\u0440\u0438\u0434\u0435\u0442\u0441\u044f \u0441\u043c\u043e\u0442\u0440\u0435\u0442\u044c \u0432 \u0434\u043e\u043a\u0443\u043c\u0435\u043d\u0442\u0430\u0446\u0438\u0438 API.<\/p>\n<p>  \u0412 \u043e\u0431\u0449\u0435\u043c \u0441\u043b\u0443\u0447\u0430\u0435 \u0437\u0430\u043f\u0440\u043e\u0441\u044b \u043a API Adfox \u0441\u043e\u043f\u0440\u043e\u0432\u043e\u0436\u0434\u0430\u044e\u0442\u0441\u044f \u043b\u043e\u0433\u0438\u043d\u043e\u043c (\u043a\u0430\u043a \u0432\u044b \u0437\u0430\u0445\u043e\u0434\u0438\u0442\u0435 \u0432 \u0441\u0438\u0441\u0442\u0435\u043c\u0443) \u0438 \u0445\u044d\u0448\u043e\u043c SHA-256 \u043e\u0442 \u0432\u0430\u0448\u0435\u0433\u043e \u043f\u0430\u0440\u043e\u043b\u044f. \u0421\u0433\u0435\u043d\u0435\u0440\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u0445\u044d\u0448 \u043a \u043f\u0430\u0440\u043e\u043b\u044e \u043c\u043e\u0436\u043d\u043e \u043d\u0430 \u043b\u044e\u0431\u043e\u043c \u0441\u0430\u0439\u0442\u0435 \u043f\u043e \u043f\u043e\u0438\u0441\u043a\u043e\u0432\u043e\u043c\u0443 \u0437\u0430\u043f\u0440\u043e\u0441\u0443 \u00absha-256 online\u00bb. \u041d\u0430\u043f\u0440\u0438\u043c\u0435\u0440, \u0442\u0443\u0442: <a href=\"http:\/\/www.xorbin.com\/tools\/sha256-hash-calculator\">www.xorbin.com\/tools\/sha256-hash-calculator<\/a><\/p>\n<p>  \u0415\u0441\u043b\u0438 \u0432\u0430\u0448 \u043f\u0430\u0440\u043e\u043b\u044c \u00ab12345\u00bb, \u0442\u043e \u0434\u043b\u044f \u043e\u0431\u0440\u0430\u0449\u0435\u043d\u0438\u0439 \u043a API \u0432 \u043a\u0430\u0447\u0435\u0441\u0442\u0432\u0435 \u043f\u0430\u0440\u043e\u043b\u044f \u043d\u0430\u0434\u043e \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435 \u00ab5994471abb01112afcc18159f6cc74b4f511b99806da59b3caf5a9c173cacfc5\u00bb:<br \/>  <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/files\/abc\/1e3\/7ed\/abc1e37ed71246ee8e2e19abc23d4d2c.jpg\"\/><\/p>\n<p>  \u041d\u0430\u0448 \u0430\u043b\u0433\u043e\u0440\u0438\u0442\u043c \u0431\u0443\u0434\u0435\u0442 \u0441\u043e\u0441\u0442\u043e\u044f\u0442\u044c \u0438\u0437 \u0434\u0432\u0443\u0445 \u0448\u0430\u0433\u043e\u0432:<\/p>\n<p>  <b>\u0428\u0430\u0433 1<\/b>. \u041f\u043e\u043b\u0443\u0447\u0430\u0435\u043c \u0441\u043f\u0438\u0441\u043e\u043a \u0432\u0441\u0435\u0445 \u0434\u043e\u0441\u0442\u0443\u043f\u043d\u044b\u0445 \u043d\u0430\u043c \u043a\u0430\u043c\u043f\u0430\u043d\u0438\u0439<br \/>  \u0412\u043e\u0437\u044c\u043c\u0435\u043c \u0441\u043f\u0438\u0441\u043e\u043a \u0434\u043e\u0441\u0442\u0443\u043f\u043d\u044b\u0445 \u043a\u0430\u043c\u043f\u0430\u043d\u0438\u0439. \u0415\u0441\u043b\u0438 \u043a\u0430\u043c\u043f\u0430\u043d\u0438\u0439 \u043c\u043d\u043e\u0433\u043e, \u0442\u043e \u043c\u043e\u0436\u043d\u043e \u043e\u0433\u0440\u0430\u043d\u0438\u0447\u0438\u0442\u044c\u0441\u044f \u0442\u0435\u043c\u0438, \u0447\u0442\u043e \u0431\u044b\u043b\u0438 \u0437\u0430\u0432\u0435\u0434\u0435\u043d\u044b, \u043d\u0430\u043f\u0440\u0438\u043c\u0435\u0440, \u0441 1 \u0430\u0432\u0433\u0443\u0441\u0442\u0430:<br \/>  <a href=\"https:\/\/login.adfox.ru\/API.php?object=account&#038;action=list&#038;actionObject=superCampaign&#038;dateAddedFrom=2015-08-01&#038;loginAccount=\u043b\u043e\u0433\u0438\u043d&#038;loginPassword=\u043f\u0430\u0440\u043e\u043b\u044c-sha-256&#038;isXML=1\">login.adfox.ru\/API.php?object=account&#038;action=list&#038;actionObject=superCampaign&#038;dateAddedFrom=2015-08-01&#038;loginAccount=\u043b\u043e\u0433\u0438\u043d&#038;loginPassword=\u043f\u0430\u0440\u043e\u043b\u044c-sha-256&#038;isXML=1<\/a><\/p>\n<p>  \u0412 \u0431\u0440\u0430\u0443\u0437\u0435\u0440\u0435 \u043f\u043e\u043b\u0443\u0447\u0438\u043c \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0438\u0439 XML-\u0444\u0430\u0439\u043b:<br \/>  <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/files\/cb3\/37d\/e9e\/cb337de9e9874a378880e438e7ff4650.jpg\"\/><\/p>\n<p>  <b>\u0428\u0430\u0433 2<\/b>. \u0414\u043b\u044f \u043a\u0430\u0436\u0434\u043e\u0439 \u043a\u0430\u043c\u043f\u0430\u043d\u0438\u0438 \u0438\u043c\u0435\u0435\u043c \u0435\u0435 \u043d\u0430\u0437\u0432\u0430\u043d\u0438\u0435 (\u0442\u044d\u0433 ) \u0438 ID (). \u0422\u0435\u043f\u0435\u0440\u044c \u0434\u043b\u044f \u043a\u0430\u0436\u0434\u043e\u0433\u043e ID \u043f\u043e\u043b\u0443\u0447\u0430\u0435\u043c \u043e\u0442\u0447\u0435\u0442 \u043f\u043e \u0431\u0430\u043d\u043d\u0435\u0440\u0430\u043c (\u043d\u0430\u043f\u0440\u0438\u043c\u0435\u0440, \u0434\u043b\u044f \u043a\u0430\u043c\u043f\u0430\u043d\u0438\u0438 \u0441 ID=55555):<br \/>  <a href=\"https:\/\/login.adfox.ru\/commonReportsOutputForm.php?period=&#038;startDate=\u043d\u0430\u0447\u0430\u043b\u044c\u043d\u0430\u044f-\u0434\u0430\u0442\u0430&#038;endDate=\u043a\u043e\u043d\u0435\u0447\u043d\u0430\u044f-\u0434\u0430\u0442\u0430&#038;criteria=superCampaignBanner&#038;isNewSearch=on&#038;objectName=superCampaign&#038;objectID=55555&#038;ignoreStartDate=off&#038;loginAccount=\u043b\u043e\u0433\u0438\u043d&#038;loginPassword=\u043f\u0430\u0440\u043e\u043b\u044c-sha-256&#038;isXML=1\">login.adfox.ru\/commonReportsOutputForm.php?period=&#038;startDate=\u043d\u0430\u0447\u0430\u043b\u044c\u043d\u0430\u044f-\u0434\u0430\u0442\u0430&#038;endDate=\u043a\u043e\u043d\u0435\u0447\u043d\u0430\u044f-\u0434\u0430\u0442\u0430&#038;criteria=superCampaignBanner&#038;isNewSearch=on&#038;objectName=superCampaign&#038;objectID=55555&#038;ignoreStartDate=off&#038;loginAccount=\u043b\u043e\u0433\u0438\u043d&#038;loginPassword=\u043f\u0430\u0440\u043e\u043b\u044c-sha-256&#038;isXML=1<\/a><br \/>  <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/files\/dff\/c07\/e60\/dffc07e6001946b2a7314e3aa27daad9.jpg\"\/><\/p>\n<p>  \u0421\u0434\u0435\u043b\u0430\u0435\u043c \u0441\u043a\u0440\u0438\u043f\u0442, \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u0431\u0443\u0434\u0435\u0442 \u0435\u0436\u0435\u0434\u043d\u0435\u0432\u043d\u043e \u0434\u0435\u043b\u0430\u0442\u044c \u044d\u0442\u0443 \u043f\u0440\u043e\u0446\u0435\u0434\u0443\u0440\u0443 \u0438 \u0437\u0430\u043f\u0438\u0441\u044b\u0432\u0430\u0442\u044c \u0434\u0430\u043d\u043d\u044b\u0435 \u0432 \u0444\u0430\u0439\u043b. \u041f\u0440\u043e\u0449\u0435 \u0432\u0441\u0435\u0433\u043e \u0431\u0443\u0434\u0435\u0442 \u0437\u0430\u0439\u0442\u0438 \u0432 \u043f\u0430\u043f\u043a\u0443 \/var\/www\/html, \u0441\u043e\u0437\u0434\u0430\u0442\u044c \u0442\u0430\u043c \u043f\u0430\u043f\u043a\u0443 adfox \u0438 \u0441\u043e\u0437\u0434\u0430\u0442\u044c \u0432 \u043d\u0435\u0439 \u0444\u0430\u0439\u043b daily.php \u0441\u043e \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0438\u043c \u043a\u043e\u0434\u043e\u043c:<\/p>\n<div class=\"spoiler\"><b class=\"spoiler_title\">\u041a\u043e\u0434 \u0432\u044b\u0433\u0440\u0443\u0437\u043a\u0438 \u0434\u0430\u043d\u043d\u044b\u0445 Adfox<\/b><\/p>\n<div class=\"spoiler_text\">\n<pre><code class=\"php\">&lt;?php  \/\/ \u0417\u0430\u0434\u0430\u0435\u043c \u0434\u0438\u0430\u043f\u0430\u0437\u043e\u043d \u0434\u0430\u0442, \u0437\u0430 \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u0432\u044b\u0433\u0440\u0443\u0436\u0430\u0435\u043c \u0434\u0430\u043d\u043d\u044b\u0435: startDate \u0438 endDate \/\/ \u0424\u043e\u0440\u043c\u0430\u0442 \u0434\u0430\u0442 \u0434\u043b\u044f \u0437\u0430\u043f\u0440\u043e\u0441\u043e\u0432 \u043a Adfox \u0434\u0434.\u043c\u043c.\u0433\u0433 date_default_timezone_set(&quot;Europe\/Moscow&quot;); \/\/$startDate = '04.09.15'; \/\/$endDate = '04.09.15';  \/\/ \u0414\u043b\u044f \u0435\u0436\u0435\u0434\u043d\u0435\u0432\u043d\u044b\u0445 \u0432\u044b\u0433\u0440\u0443\u0437\u043e\u043a \u0443\u043a\u0430\u0437\u044b\u0432\u0430\u0435\u043c \u0432 \u043a\u0430\u0447\u0435\u0441\u0442\u0432\u0435 \u0434\u0430\u0442\u044b \u0432\u044b\u0433\u0440\u0443\u0437\u043a\u0438 \u0432\u0447\u0435\u0440\u0430\u0448\u043d\u0438\u0439 \u0434\u0435\u043d\u044c $startDate = date('d.m.y', strtotime('-1 day')); $endDate = $startDate;  \/\/ \u0424\u0443\u043d\u043a\u0446\u0438\u044f getCampaigns \u043f\u043e\u043a\u0430\u0437\u044b\u0432\u0430\u0435\u0442 \u0434\u043e\u0441\u0442\u0443\u043f\u043d\u044b\u0435 \u0434\u0430\u043d\u043d\u043e\u043c\u0443 \u043b\u043e\u0433\u0438\u043d\u0443 \u043a\u0430\u043c\u043f\u0430\u043d\u0438\u0438 \/\/ \u0412\u043e\u0437\u0432\u0440\u0430\u0449\u0430\u0435\u0442\u0441\u044f \u043c\u0430\u0441\u0441\u0438\u0432 $campIDs \u0441 ID \u0438 \u043d\u0430\u0437\u0432\u0430\u043d\u0438\u0435\u043c \u043a\u0430\u043c\u043f\u0430\u043d\u0438\u0439 \/\/ \u0412 \u0442\u0435\u043b\u0435 \u0437\u0430\u043f\u0440\u043e\u0441\u0430 \u0432 \u043f\u0435\u0440\u0435\u043c\u0435\u043d\u043d\u043e\u0439 dateAddedFrom \u043c\u043e\u0436\u043d\u043e \u0443\u043a\u0430\u0437\u0430\u0442\u044c \u0434\u0430\u0442\u0443 \u0441\u043e\u0437\u0434\u0430\u043d\u0438\u044f \u043a\u0430\u043c\u043f\u0430\u043d\u0438\u0438, \u0447\u0442\u043e\u0431\u044b \u043d\u0435 \u0432\u044b\u0433\u0440\u0443\u0436\u0430\u0442\u044c \u0432\u0441\u0435 \u043f\u043e\u0434\u0440\u044f\u0434 function getCampaigns() { \t$ch = curl_init(); \t$options = array( \t\tCURLOPT_URL =&gt; 'https:\/\/login.adfox.ru\/API.php?object=account&action=list&actionObject=superCampaign&dateAddedFrom=2015-08-01&loginAccount=\u043b\u043e\u0433\u0438\u043d&loginPassword=\u043f\u0430\u0440\u043e\u043b\u044c-sha-256&isXML=1', \t\tCURLOPT_HEADER =&gt; &quot;Content-Type:application\/xml&quot;, \t\tCURLOPT_HTTPAUTH =&gt; CURLAUTH_BASIC, \t\tCURLOPT_SSL_VERIFYPEER =&gt; FALSE, \t\tCURLOPT_RETURNTRANSFER =&gt; TRUE \t);  \tcurl_setopt_array($ch, $options); \t$data = curl_exec($ch);  \tcurl_close($ch);  \t\/\/ \u041c\u043e\u0436\u043d\u043e \u0437\u0430\u043f\u0438\u0441\u0430\u0442\u044c \u043e\u0442\u0432\u0435\u0442 Adfox \u0432 \u0444\u0430\u0439\u043b, \u0447\u0442\u043e\u0431\u044b \u0443\u0431\u0435\u0434\u0438\u0442\u044c\u0441\u044f \u0432 \u0435\u0433\u043e \u0432\u0435\u0440\u043d\u043e\u0441\u0442\u0438 \t\/\/ file_put_contents('request.txt', $data, FILE_APPEND);  \t\/\/ \u041f\u0440\u0435\u043e\u0431\u0440\u0430\u0437\u0443\u0435\u043c \u043e\u0442\u0432\u0435\u0442 Adfox \u0438\u0437 XML \u0432 \u043c\u0430\u0441\u0441\u0438\u0432 vals \t$parser=xml_parser_create('UTF-8'); \txml_parse_into_struct($parser, $data, $vals, $index);  \t$campIDs = array(); \t$j = 0;  \t\/\/ \u041f\u0440\u043e\u0445\u043e\u0434\u0438\u043c \u043c\u0430\u0441\u0441\u0438\u0432 vals, \u0432\u044b\u0431\u0438\u0440\u0430\u044f \u0438\u0437 \u0432\u0441\u0435\u0445 \u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440\u043e\u0432 ID \u0438 \u043d\u0430\u0437\u0432\u0430\u043d\u0438\u0435 \u043a\u0430\u043c\u043f\u0430\u043d\u0438\u0439 \u0438 \u0437\u0430\u043f\u0438\u0441\u044b\u0432\u0430\u044f \u0438\u0445 \u0432 \u043c\u0430\u0441\u0441\u0438\u0432 campIDs \tfor ($i = 0; $i &lt; count($vals); ++$i) {  \t\tif ($vals[$i][&quot;tag&quot;]==&quot;ID&quot;) { \t\t  $ID = $vals[$i][&quot;value&quot;]; \t\t}  \t\tif ($vals[$i][&quot;tag&quot;]==&quot;NAME&quot;) { \t\t  $name = $vals[$i][&quot;value&quot;];  \t\t  $campIDs[$j]['id'] = $ID; \t\t  $campIDs[$j]['name'] = $name;  \t\t  $j += 1; \t\t} \t}  \treturn $campIDs; }  \/\/ \u0424\u0443\u043d\u043a\u0446\u0438\u044f getBanners \u0434\u043b\u044f \u0437\u0430\u0434\u0430\u043d\u043d\u043e\u0439 \u043a\u0430\u043c\u043f\u0430\u043d\u0438\u0438 \u043f\u043e \u0435\u0435 ID \u0437\u0430\u043f\u0440\u0430\u0448\u0438\u0432\u0430\u0435\u0442 \u043e\u0442\u0447\u0435\u0442 \u043f\u043e \u0431\u0430\u043d\u043d\u0435\u0440\u0430\u043c \/\/ \u041e\u0442\u0447\u0435\u0442 \u0437\u0430\u043f\u0438\u0441\u044b\u0432\u0430\u0435\u0442\u0441\u044f \u0432 \u043c\u0430\u0441\u0441\u0438\u0432 campReport \u0432 \u0432\u0438\u0434\u0435 ID \u043a\u0430\u043c\u043f\u0430\u043d\u0438\u0438 + \u043d\u0430\u0437\u0432\u0430\u043d\u0438\u0435 \u0444\u043b\u0430\u0439\u0442\u0430 - \u043d\u0430\u0437\u0432\u0430\u043d\u0438\u0435 \u0431\u0430\u043d\u043d\u0435\u0440\u0430 - \u043f\u043e\u043a\u0430\u0437\u044b - \u043a\u043b\u0438\u043a\u0438 function getBanners($id, $startDate, $endDate) { \t$ch = curl_init(); \t$options = array( \t\tCURLOPT_URL =&gt; 'https:\/\/login.adfox.ru\/commonReportsOutputForm.php?period=&startDate='.$startDate.'&endDate='.$endDate.'&criteria=superCampaignBanner&isNewSearch=on&objectName=superCampaign&objectID='.$id.'&ignoreStartDate=off&loginAccount=\u043b\u043e\u0433\u0438\u043d&loginPassword=\u043f\u0430\u0440\u043e\u043b\u044c-sha-256&isXML=1', \t\tCURLOPT_HEADER =&gt; &quot;Content-Type:application\/xml&quot;, \t\tCURLOPT_HTTPAUTH =&gt; CURLAUTH_BASIC, \t\tCURLOPT_SSL_VERIFYPEER =&gt; FALSE, \t\tCURLOPT_RETURNTRANSFER =&gt; TRUE \t);  \tcurl_setopt_array($ch, $options); \t$data = curl_exec($ch);  \tcurl_close($ch);  \t\/\/\u041c\u043e\u0436\u043d\u043e \u0437\u0430\u043f\u0438\u0441\u0430\u0442\u044c \u043e\u0442\u0432\u0435\u0442 Adfox \u0432 \u0444\u0430\u0439\u043b, \u0447\u0442\u043e\u0431\u044b \u0443\u0431\u0435\u0434\u0438\u0442\u044c\u0441\u044f \u0432 \u0435\u0433\u043e \u0432\u0435\u0440\u043d\u043e\u0441\u0442\u0438 \t\/\/file_put_contents('request.txt', $data, FILE_APPEND);  \t$parser=xml_parser_create('UTF-8'); \txml_parse_into_struct($parser, $data, $vals, $index);  \t$campReport = array(); \t$j = 0;  \tfor ($i = 0; $i &lt; count($vals); ++$i) { \t\tif ($vals[$i][&quot;tag&quot;]==&quot;CRITERIA&quot;) { \t\t  $bannername = $vals[$i][&quot;value&quot;]; \t\t}  \t\tif ($vals[$i][&quot;tag&quot;]==&quot;FLIGHTNAME&quot;) { \t\t  $flightname = $vals[$i][&quot;value&quot;]; \t\t}  \t\tif ($vals[$i][&quot;tag&quot;]==&quot;IMPRESSIONS&quot;) { \t\t  $impressions = $vals[$i][&quot;value&quot;]; \t\t}  \t\tif ($vals[$i][&quot;tag&quot;]==&quot;CLICKS&quot;) { \t\t  $clicks = $vals[$i][&quot;value&quot;];  \t\t  $campReport[$j]['campaign'] = $id; \t\t  $campReport[$j]['flightname'] = $flightname; \t\t  $campReport[$j]['bannername'] = $bannername; \t\t  $campReport[$j]['impressions'] = $impressions; \t\t  $campReport[$j]['clicks'] = $clicks;  \t\t  $j += 1; \t\t} \t}  \treturn $campReport; }  \/\/ \u041f\u043e\u043b\u0443\u0447\u0430\u0435\u043c \u0441\u043f\u0438\u0441\u043e\u043a \u0434\u043e\u0441\u0442\u0443\u043f\u043d\u044b\u0445 \u043a\u0430\u043c\u043f\u0430\u043d\u0438\u0439 $campIDs = getCampaigns();  \/\/ \u0414\u043b\u044f \u043a\u0430\u0436\u0434\u043e\u0439 \u043a\u0430\u043c\u043f\u0430\u043d\u0438\u0438 \u0437\u0430\u043f\u0440\u0430\u0448\u0438\u0432\u0430\u0435\u043c \u043e\u0442\u0447\u0435\u0442 \u043f\u043e \u0431\u0430\u043d\u043d\u0435\u0440\u0430\u043c for ($i = 0; $i &lt; count($campIDs); ++$i) { \t$campReport = getBanners($campIDs[$i]['id'], $startDate, $endDate); \t \t\/\/ \u0414\u043b\u044f \u043a\u0430\u0436\u0434\u043e\u0433\u043e \u0431\u0430\u043d\u043d\u0435\u0440\u0430 \u0437\u0430\u043f\u0438\u0441\u044b\u0432\u0430\u0435\u043c \u0432 \u0444\u0430\u0439\u043b data.txt \u0440\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442 \u0437\u0430\u043f\u0440\u043e\u0441\u0430 \u0441 \u043f\u043e\u043a\u0430\u0437\u0430\u043c\u0438 \u0438 \u043a\u043b\u0438\u043a\u0430\u043c\u0438 \t\/\/ \u041f\u043e\u043b\u043d\u044b\u0439 \u043f\u0443\u0442\u044c \u0444\u0430\u0439\u043b\u0430 data.txt \u043d\u0443\u0436\u043d\u043e \u0443\u043a\u0430\u0437\u044b\u0432\u0430\u0442\u044c \u0434\u043b\u044f \u043a\u043e\u0440\u0440\u0435\u043a\u0442\u043d\u043e\u0439 \u0440\u0430\u0431\u043e\u0442\u044b \u0430\u0432\u0442\u043e\u043c\u0430\u0442\u0438\u0447\u0435\u0441\u043a\u043e\u0439 \u0432\u044b\u0433\u0440\u0443\u0437\u043a\u0438 Cron \tfor ($j = 0; $j &lt; count($campReport); ++$j) { \t\tfile_put_contents('\/var\/www\/html\/adfox\/data.txt', $startDate.&quot;\\t&quot;.$campReport[$j]['campaign'].&quot;\\t&quot;.$campReport[$j]['flightname'].&quot;\\t&quot;.$campReport[$j]['bannername'].&quot;\\t&quot;.$campReport[$j]['impressions'].&quot;\\t&quot;.$campReport[$j]['clicks'].&quot;\\n&quot;, FILE_APPEND);  \t\t\/\/ \u041f\u0438\u0448\u0435\u043c \u0432 \u043a\u043e\u043d\u0441\u043e\u043b\u0438 \u0441\u0442\u0440\u043e\u0447\u043a\u0443 \u043e \u0441\u043e\u0437\u0434\u0430\u043d\u0438\u0438 \u0437\u0430\u043f\u0438\u0441\u0438 (\u043e\u043f\u0446\u0438\u043e\u043d\u0430\u043b\u044c\u043d\u043e) \t\techo 'Record created - '.$startDate.' - '.$campReport[$j]['bannername'].&quot;\\n&quot;; \t} } <\/code><\/pre>\n<p>  <\/div>\n<\/div>\n<p>  \u041f\u0440\u043e\u0433\u043e\u043d\u044f\u0435\u043c \u043a\u043e\u0434 \u0437\u0430 \u043d\u0435\u0441\u043a\u043e\u043b\u044c\u043a\u043e \u0434\u043d\u0435\u0439 (\u043d\u0430\u043f\u0440\u0438\u043c\u0435\u0440, \u0437\u0430 1-4 \u0441\u0435\u043d\u0442\u044f\u0431\u0440\u044f), \u043f\u043e\u0434\u0441\u0442\u0430\u0432\u043b\u044f\u044f \u0432 startDate \u0438 endDate \u0434\u0430\u0442\u044b \u043e\u0442 01.09.15 \u0434\u043e 04.09.15. \u0412 \u0440\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442\u0435 \u0432 \u0444\u0430\u0439\u043b\u0435 data.txt \u0434\u043e\u043b\u0436\u043d\u0430 \u043d\u0430\u043a\u043e\u043f\u0438\u0442\u044c\u0441\u044f \u0441\u0442\u0430\u0442\u0438\u0441\u0442\u0438\u043a\u0430 \u043f\u043e \u043a\u0430\u0436\u0434\u043e\u043c\u0443 \u0431\u0430\u043d\u043d\u0435\u0440\u0443 \u0437\u0430 \u043a\u0430\u0436\u0434\u044b\u0439 \u0434\u0435\u043d\u044c \u0441 1 \u043f\u043e 4 \u0441\u0435\u043d\u0442\u044f\u0431\u0440\u044f.<\/p>\n<p>  \u041e\u0441\u0442\u0430\u043b\u043e\u0441\u044c \u043e\u0442\u043e\u0431\u0440\u0430\u0437\u0438\u0442\u044c \u043d\u0430\u0448\u0438 \u0434\u0430\u043d\u043d\u044b\u0435 \u043d\u0430 \u0433\u0440\u0430\u0444\u0438\u043a\u0435 \u0438 \u043f\u043e\u0441\u0442\u0430\u0432\u0438\u0442\u044c \u0441\u043a\u0440\u0438\u043f\u0442 \u043d\u0430 \u0430\u0432\u0442\u043e\u043c\u0430\u0442\u0438\u0447\u0435\u0441\u043a\u043e\u0435 \u043e\u0431\u043d\u043e\u0432\u043b\u0435\u043d\u0438\u0435. \u0414\u043b\u044f \u043e\u0442\u0440\u0438\u0441\u043e\u0432\u043a\u0438 \u0433\u0440\u0430\u0444\u0438\u043a\u043e\u0432 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u043c <a href=\"http:\/\/www.highcharts.com\/demo\/line-basic\">www.highcharts.com\/demo\/line-basic<\/a>. \u041c\u043e\u0436\u043d\u043e \u0441\u043a\u0430\u0447\u0430\u0442\u044c \u0431\u0438\u0431\u043b\u0438\u043e\u0442\u0435\u043a\u0443 \u043d\u0430 \u0438\u043d\u0441\u0442\u0430\u043d\u0441 \u0438\u043b\u0438 \u043e\u0431\u0440\u0430\u0449\u0430\u0442\u044c\u0441\u044f \u043a \u0431\u0438\u0431\u043b\u0438\u043e\u0442\u0435\u043a\u0430\u043c \u043d\u0430 \u0441\u0430\u0439\u0442\u0435 Highcharts. \u0412 \u043f\u0440\u0438\u043c\u0435\u0440\u0435 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u0442\u0441\u044f \u0432\u0442\u043e\u0440\u043e\u0439 \u0432\u0430\u0440\u0438\u0430\u043d\u0442. \u041a\u043e\u0434 \u0432\u0441\u0435\u0445 \u043f\u0440\u0438\u043c\u0435\u0440\u043e\u0432 \u043c\u043e\u0436\u043d\u043e \u043f\u043e\u0441\u043c\u043e\u0442\u0440\u0435\u0442\u044c \u043d\u0430 <a href=\"http:\/\/www.highcharts.com\/demo\/line-basic\">www.highcharts.com\/demo\/line-basic<\/a>, \u043a\u043b\u0438\u043a\u043d\u0443\u0432 \u043f\u043e\u0434 \u0433\u0440\u0430\u0444\u0438\u043a\u043e\u043c \u043a\u043d\u043e\u043f\u043a\u0443 \u00abEDIT IN JSFIDDLE\u00bb.<\/p>\n<p>  \u0414\u043b\u044f \u043a\u043e\u0440\u0440\u0435\u043a\u0442\u043d\u043e\u0439 \u0440\u0430\u0431\u043e\u0442\u044b \u0431\u0438\u0431\u043b\u0438\u043e\u0442\u0435\u043a\u0438 \u043d\u0430\u043c \u043f\u043e\u043d\u0430\u0434\u043e\u0431\u0438\u0442\u0441\u044f <a href=\"https:\/\/jquery.com\/\">jQuery<\/a>. \u0421\u043a\u0430\u0447\u0438\u0432\u0430\u0435\u043c \u0435\u0433\u043e <a href=\"http:\/\/jquery.com\/download\/\">\u0441 \u0441\u0430\u0439\u0442\u0430<\/a> \u0438\u043b\u0438 \u0432 \u0441\u0440\u0430\u0437\u0443 \u0432 \u043a\u043e\u043d\u0441\u043e\u043b\u0438 \u0432 \u043f\u0430\u043f\u043a\u0443 \/var\/www\/html\/adfox:<br \/>  $ wget <a href=\"http:\/\/code.jquery.com\/jquery-1.11.3.js\">code.jquery.com\/jquery-1.11.3.js<\/a><\/p>\n<p>  \u0414\u043e\u0431\u0430\u0432\u043b\u044f\u0435\u043c \u043a\u043e\u0434 \u0433\u0440\u0430\u0444\u0438\u043a\u0430 \u0432 \u0444\u0430\u0439\u043b report.html:  <\/p>\n<div class=\"spoiler\"><b class=\"spoiler_title\">\u041a\u043e\u0434 HTML-\u0441\u0442\u0440\u0430\u043d\u0438\u0446\u044b \u0441 \u0432\u0438\u0437\u0443\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u0435\u0439<\/b><\/p>\n<div class=\"spoiler_text\">\n<pre><code class=\"html\">&lt;html&gt; &lt;head&gt;  &lt;script src=&quot;jquery-1.11.3.js&quot;&gt;&lt;\/script&gt; &lt;script src=&quot;http:\/\/code.highcharts.com\/highcharts.js&quot;&gt;&lt;\/script&gt; &lt;script src=&quot;http:\/\/code.highcharts.com\/modules\/exporting.js&quot;&gt;&lt;\/script&gt;  &lt;\/head&gt;  &lt;body&gt;  &lt;script&gt;  \/\/ \u043c\u0430\u0441\u0441\u0438\u0432 \u0441\u043f\u0438\u0441\u043a\u0430 \u0431\u0430\u043d\u043d\u0435\u0440\u043e\u0432, \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u0431\u044b\u043b\u0438 \u0432\u044b\u0433\u0440\u0443\u0436\u0435\u043d\u044b \u0432 \u0444\u0430\u0439\u043b data.txt var banners = [];  \/\/ \u043c\u0430\u0441\u0441\u0438\u0432\u044b \u0434\u0430\u0442, \u043f\u043e\u043a\u0430\u0437\u043e\u0432 \u0438 \u043a\u043b\u0438\u043a\u043e\u0432, \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u0437\u0430\u0433\u0440\u0443\u0437\u0438\u043c \u0438\u0437 \u0444\u0430\u0439\u043b\u0430 data.txt \/\/ \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u044f CTR (\u043e\u0442\u043d\u043e\u0448\u0435\u043d\u0438\u0435 \u043a\u043b\u0438\u043a\u043e\u0432 \u043a \u043f\u043e\u043a\u0430\u0437\u0430\u043c) \u0440\u0430\u0441\u0441\u0447\u0438\u0442\u0430\u0435\u043c var dates1 = []; var shows1 = []; var clicks1 = []; var ctr1 = [];  var dates2 = []; var shows2 = []; var clicks2 = []; var ctr2 = [];  var dates3 = []; var shows3 = []; var clicks3 = []; var ctr3 = [];  \/\/ \u0447\u0438\u0442\u0430\u0435\u043c \u0444\u0430\u0439\u043b data.txt \u043f\u043e\u0441\u0442\u0440\u043e\u0447\u043d\u043e $.get(&quot;data.txt&quot;, function(data){ \tvar lines = data.split(&quot;\\n&quot;); \tfor (var i = 0, len = lines.length; i &lt; len; i++) { \t\t\/\/ \u043f\u0440\u043e\u0432\u0435\u0440\u044f\u0435\u043c \u0432 \u043a\u043e\u043d\u0441\u043e\u043b\u0438, \u0447\u0442\u043e \u0444\u0430\u0439\u043b \u043f\u0440\u043e\u0447\u0438\u0442\u0430\u043d \u043a\u043e\u0440\u0440\u0435\u043a\u0442\u043d\u043e \t    \/\/console.log(lines[i]);  \t    \/\/ \u0440\u0430\u0437\u0434\u0435\u043b\u044f\u0435\u043c \u043a\u0430\u0436\u0434\u0443\u044e \u0441\u0442\u0440\u043e\u0447\u043a\u0443 \u0444\u0430\u0439\u043b\u0430 \u043d\u0430 \u043c\u0430\u0441\u0441\u0438\u0432 \u0438\u0437 6 \u044d\u043b\u0435\u043c\u0435\u043d\u0442\u043e\u0432, \u0441\u043e\u043e\u0442\u0432\u0435\u0442\u0441\u0442\u0432\u0443\u044e\u0449\u0438\u0445 \u0441\u0442\u043e\u043b\u0431\u0446\u0430\u043c \u0432 data.txt \t    elements = lines[i].split(&quot;\\t&quot;);  \t    \/\/ \u043d\u0430\u0437\u0432\u0430\u043d\u0438\u0435 \u0431\u0430\u043d\u043d\u0435\u0440\u0430 \u044d\u0442\u043e \u0442\u0440\u0435\u0442\u0438\u0439 \u043f\u043e \u0441\u0447\u0435\u0442\u0443 \u0441\u0442\u043e\u043b\u0431\u0435\u0446, \u0441\u043e\u043e\u0442\u0432\u0435\u0442\u0441\u0442\u0432\u0435\u043d\u043d\u043e \u0431\u0435\u0440\u0435\u0442 \u0442\u0440\u0435\u0442\u0438\u0439 \u044d\u043b\u0435\u043c\u0435\u043d\u0442 \u043c\u0430\u0441\u0441\u0438\u0432\u0430 elements \t    \/\/ (\u043d\u0430 \u0432\u0441\u044f\u043a\u0438\u0439 \u0441\u043b\u0443\u0447\u0430\u0439 - \u043d\u0443\u043c\u0435\u0440\u0430\u0446\u0438\u044f \u044d\u043b\u0435\u043c\u0435\u043d\u0442\u043e\u0432 \u043c\u0430\u0441\u0441\u0438\u0432\u0430 \u043d\u0430\u0447\u0438\u043d\u0430\u0435\u0442\u0441\u044f \u0441 0, \u0430 \u043d\u0435 \u0441 1) \t    banners.push(elements[2]); \t} \t\/\/ \u043f\u0440\u043e\u0432\u0435\u0440\u044f\u0435\u043c, \u0447\u0442\u043e \u043d\u0430\u0437\u0432\u0430\u043d\u0438\u044f \u0431\u0430\u043d\u043d\u0435\u0440\u043e\u0432 \u0441\u0447\u0438\u0442\u0430\u043b\u0438\u0441\u044c \u043a\u043e\u0440\u0440\u0435\u043a\u0442\u043d\u043e \t\/\/console.log(banners);  \t\/\/ \u0432\u043e\u0437\u044c\u043c\u0435\u043c \u0443\u043d\u0438\u043a\u0430\u043b\u044c\u043d\u044b\u0435 \u043d\u0430\u0437\u0432\u0430\u043d\u0438\u044f \u0431\u0430\u043d\u043d\u0435\u0440\u043e\u0432 \u0438 \u0437\u0430\u043f\u0438\u0448\u0435\u043c \u0432 \u043c\u0430\u0441\u0441\u0438\u0432 bannerNames \u043f\u0435\u0440\u0432\u044b\u0435 3 \u043d\u0430\u0437\u0432\u0430\u043d\u0438\u044f \tArray.prototype.unique = function() \t{ \t    var tmp = {}, out = []; \t    for(var i = 0, n = this.length; i &lt; n; ++i) \t    { \t        if(!tmp[this[i]]) { tmp[this[i]] = true; out.push(this[i]); } \t    } \t    return out; \t} \t \tbannersNames = banners.unique().slice(0, 3); \t \t\/\/ \u043f\u0440\u043e\u0432\u0435\u0440\u044f\u0435\u043c, \u0447\u0442\u043e \u043f\u043e\u043b\u0443\u0447\u0438\u043b\u0438 3 \u043a\u043e\u0440\u0440\u0435\u043a\u0442\u043d\u044b\u0445 \u043d\u0430\u0437\u0432\u0430\u043d\u0438\u044f \u0431\u0430\u043d\u043d\u0435\u0440\u043e\u0432 \t\/\/console.log(bannersNames);  \t\/\/ \u043f\u0440\u043e\u0445\u043e\u0434\u0438\u043c \u0435\u0449\u0435 \u0440\u0430\u0437 \u043f\u043e \u0444\u0430\u0439\u043b\u0443 data.txt \u0438 \u0432\u044b\u0431\u0438\u0440\u0430\u0435\u043c \u0434\u0430\u0442\u044b, \u043f\u043e\u043a\u0430\u0437\u044b \u0438 \u043a\u043b\u0438\u043a\u0438 \u0434\u043b\u044f \u0431\u0430\u043d\u043d\u0435\u0440\u043e\u0432 \u0438\u0437 \u043c\u0430\u0441\u0441\u0438\u0432\u0430 bannerNames \tfor (var i = 0, len = lines.length; i &lt; len; i++) {  \t    elements = lines[i].split(&quot;\\t&quot;);  \t    \/\/ \u0435\u0441\u043b\u0438 \u0441\u0442\u0440\u043e\u0447\u043a\u0430 \u0432 \u0444\u0430\u0439\u043b\u0435 data.txt \u043e\u0442\u043d\u043e\u0441\u0438\u0442\u0441\u044f \u043a \u043f\u0435\u0440\u0432\u043e\u043c\u0443 \u0431\u0430\u043d\u043d\u0435\u0440\u0443, \u0442\u043e \u0434\u043e\u0431\u0430\u0432\u043b\u044f\u0435\u043c \u0432 \u043c\u0430\u0441\u0441\u0438\u0432 \u0434\u0430\u0442, \u043f\u043e\u043a\u0430\u0437\u043e\u0432 \u0438 \u043a\u043b\u0438\u043a\u043e\u0432 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u044f \u044d\u0442\u043e\u0439 \u0441\u0442\u0440\u043e\u0447\u043a\u0438 \t    if (elements[2] == bannersNames[0]) { \t    \tdates1.push(elements[0]); \t    \tshows1.push(parseInt(elements[4])); \t    \tclicks1.push(parseInt(elements[5]));  \t    \t\/\/ toFixed(3) - \u043e\u043a\u0440\u0443\u0433\u043b\u044f\u0435\u043c \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u044f CTR \u0434\u043e \u0442\u0440\u0435\u0442\u044c\u0435\u0433\u043e \u0437\u043d\u0430\u043a\u0430 \u043f\u043e\u0441\u043b\u0435 \u0437\u0430\u043f\u044f\u0442\u043e\u0439 \t    \tif (parseInt(elements[4]) &gt; 0) { \t    \t\tctr1.push(Number(parseFloat(elements[5] \/ elements[4] * 100).toFixed(3))); \t    \t} else { \t    \t\tctr1.push(0); \t    \t} \t    }  \t    \/\/ \u0442\u043e \u0436\u0435 \u0441\u0430\u043c\u043e\u0435 \u0434\u043b\u044f \u0432\u0442\u043e\u0440\u043e\u0433\u043e \u0431\u0430\u043d\u043d\u0435\u0440\u0430 \t    if (elements[2] == bannersNames[1]) { \t    \tdates2.push(elements[0]); \t    \tshows2.push(parseInt(elements[4])); \t    \tclicks2.push(parseInt(elements[5])); \t    \tif (parseInt(elements[4]) &gt; 0) { \t    \t\tctr2.push(Number(parseFloat(elements[5] \/ elements[4] * 100).toFixed(3))); \t    \t} else { \t    \t\tctr2.push(0); \t    \t} \t    }  \t    \/\/ \u0442\u043e \u0436\u0435 \u0441\u0430\u043c\u043e\u0435 \u0434\u043b\u044f \u0442\u0440\u0435\u0442\u044c\u0435\u0433\u043e \u0431\u0430\u043d\u043d\u0435\u0440\u0430 \t    if (elements[2] == bannersNames[2]) { \t    \tdates3.push(elements[0]); \t    \tshows3.push(parseInt(elements[4])); \t    \tclicks3.push(parseInt(elements[5])); \t    \tif (parseInt(elements[4]) &gt; 0) { \t    \t\tctr3.push(Number(parseFloat(elements[5] \/ elements[4] * 100).toFixed(3))); \t    \t} else { \t    \t\tctr3.push(0); \t    \t} \t    } \t}  \t\/\/ \u043f\u0440\u043e\u0432\u0435\u0440\u044f\u0435\u043c, \u0447\u0442\u043e \u0432\u0441\u0435 \u043c\u0430\u0441\u0441\u0438\u0432\u044b CTR (\u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u0431\u0443\u0434\u0443\u0442 \u043d\u0430 \u0433\u0440\u0430\u0444\u0438\u043a\u0435) \u0438\u043c\u0435\u044e\u0442 \u0447\u0438\u0441\u043b\u043e\u0432\u043e\u0439 \u0444\u043e\u0440\u043c\u0430\u0442 \t\/\/ \u043d\u0430\u043f\u0440\u0438\u043c\u0435\u0440: [0.22, 0.25, 0.30, 0.24] \t\/\/console.log(ctr1); \t\/\/console.log(ctr2); \t\/\/console.log(ctr3);  \t\/\/ \u043e\u0442\u043e\u0431\u0440\u0430\u0436\u0430\u0435\u043c \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u044f CTR \u043d\u0430 \u0433\u0440\u0430\u0444\u0438\u043a\u0435 \t$(function () { \t\t\/\/ \u043d\u0430\u0437\u0432\u0430\u043d\u0438\u0435 \u0431\u043b\u043e\u043a\u0430 container \u0434\u043e\u043b\u0436\u043d\u043e \u0441\u043e\u0432\u043f\u0430\u0434\u0430\u0442\u044c \u0441 \u0432\u044b\u0437\u044b\u0432\u0430\u0435\u043c\u044b\u043c \u0432 &lt;div id=&quot;container&quot;... \u0432\u043d\u0438\u0437\u0443 \u0441\u0442\u0440\u0430\u043d\u0438\u0446\u044b \t    $('#container').highcharts({ \t    \t\/\/ \u0437\u0430\u0433\u043e\u043b\u043e\u0432\u043e\u043a \u0433\u0440\u0430\u0444\u0438\u043a\u0430 \t        title: { \t            text: 'Campaign banners CTR', \t            x: -20 \/\/center \t        }, \t         \t        \/\/ \u043f\u043e\u0434\u043f\u0438\u0441\u044c \u043f\u043e\u0434 \u0437\u0430\u0433\u043e\u043b\u043e\u0432\u043a\u043e\u043c \t        subtitle: { \t            text: 'Source: ADFOX', \t            x: -20 \t        },  \t        \/\/ \u0432 \u043a\u0430\u0447\u0435\u0441\u0442\u0432\u0435 \u043e\u0441\u0438 \u0430\u0431\u0441\u0446\u0438\u0438 \u0431\u0435\u0440\u0435\u043c \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u044f \u043c\u0430\u0441\u0441\u0438\u0432\u0430 \u0434\u0430\u0442 dates1 \t        xAxis: { \t            categories: dates1 \t        },  \t        \/\/ \u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440\u044b \u043e\u0441\u0438 \u043e\u0440\u0434\u0438\u043d\u0430\u0442 \t        yAxis: { \t            title: { \t                text: 'CTR %' \t            }, \t            plotLines: [{ \t                value: 0, \t                width: 1, \t                color: '#808080' \t            }] \t        },  \t        \/\/ \u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440\u044b \u043f\u043e\u0434\u0441\u043a\u0430\u0437\u043a\u0438 \u043f\u0440\u0438 \u043d\u0430\u0432\u0435\u0434\u0435\u043d\u0438\u0438 \u043d\u0430 \u0433\u0440\u0430\u0444\u0438\u043a \t        tooltip: { \t            valueSuffix: '%' \t        },  \t        \/\/ \u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440\u044b \u043b\u0435\u0433\u0435\u043d\u0434\u044b \t        legend: { \t            layout: 'vertical', \t            align: 'right', \t            verticalAlign: 'middle', \t            borderWidth: 0 \t        },  \t        \/\/ \u0437\u0430\u0434\u0430\u0435\u043c \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u044f, \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u0445\u043e\u0442\u0438\u043c \u043e\u0442\u043e\u0431\u0440\u0430\u0437\u0438\u0442\u044c \u043d\u0430 \u0433\u0440\u0430\u0444\u0438\u043a\u0435: \u043d\u0430\u0437\u0432\u0430\u043d\u0438\u0435 \u0431\u0430\u043d\u043d\u0435\u0440\u0430 \u0438 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u044f CTR \u0438\u0437 \u0441\u043e\u043e\u0442\u0432\u0435\u0442\u0441\u0442\u0432\u0443\u044e\u0449\u0435\u0433\u043e \u043c\u0430\u0441\u0441\u0438\u0432\u0430 \t        series: [{ \t            name: bannersNames[0], \t            data: ctr1 \t        }, { \t            name: bannersNames[1], \t            data: ctr2 \t        }, { \t            name: bannersNames[2], \t            data: ctr3 \t        }], \t        credits: { \t\t        enabled: false \t\t    } \t    }); \t}); }); &lt;\/script&gt;  &lt;div id=&quot;container&quot; style=&quot;min-width: 310px; height: 400px; margin: 0 auto&quot;&gt;&lt;\/div&gt;  &lt;\/body&gt; &lt;\/html&gt; <\/code><\/pre>\n<p>  <\/div>\n<\/div>\n<p>  \u041e\u0442\u043a\u0440\u044b\u0432\u0430\u0435\u043c \u0441\u0442\u0440\u0430\u043d\u0438\u0446\u0443 report.html \u0432 \u0431\u0440\u0430\u0443\u0437\u0435\u0440\u0435, \u043d\u0435 \u0437\u0430\u0431\u044b\u0432\u0430\u044f, \u0447\u0442\u043e \u0444\u0430\u0439\u043b \u043b\u0435\u0436\u0438\u0442 \u0432 \u043f\u0430\u043f\u043a\u0435 adfox:<br \/>  <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/files\/243\/28d\/5fa\/24328d5faadd41019197911051ab4ba2.jpg\"\/><\/p>\n<p>  \u041e\u0441\u0442\u0430\u043b\u043e\u0441\u044c \u043f\u043e\u0441\u0442\u0430\u0432\u0438\u0442\u044c \u043d\u0430\u0448 \u0441\u043a\u0440\u0438\u043f\u0442 \u043d\u0430 \u0435\u0436\u0435\u0434\u043d\u0435\u0432\u043d\u043e\u0435 \u043e\u0431\u043d\u043e\u0432\u043b\u0435\u043d\u0438\u0435 (\u043d\u0430\u043f\u0440\u0438\u043c\u0435\u0440, \u0432 8:00 \u043f\u043e \u0441\u0438\u0441\u0442\u0435\u043c\u043d\u043e\u043c\u0443 \u0432\u0440\u0435\u043c\u0435\u043d\u0438 \u0438\u043d\u0441\u0442\u0430\u043d\u0441\u0430, \u043a\u043e\u0442\u043e\u0440\u043e\u0435 \u043c\u043e\u0436\u043d\u043e \u043f\u0440\u043e\u0432\u0435\u0440\u0438\u0442\u044c \u043a\u043e\u043c\u0430\u043d\u0434\u043e\u0439 date \u0432 \u043a\u043e\u043d\u0441\u043e\u043b\u0438). \u0414\u043b\u044f \u044d\u0442\u043e\u0433\u043e \u0432 \u043a\u043e\u043d\u0441\u043e\u043b\u0438 \u0432\u044b\u043f\u043e\u043b\u043d\u044f\u0435\u043c:<br \/>  $ crontab -e<\/p>\n<p>  \u041f\u043e \u0443\u043c\u043e\u043b\u0447\u0430\u043d\u0438\u044e \u043e\u0442\u043a\u0440\u043e\u0435\u0442\u0441\u044f \u0440\u0435\u0434\u0430\u043a\u0442\u043e\u0440 vim. \u0414\u043b\u044f \u0440\u0435\u0434\u0430\u043a\u0442\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f \u0444\u0430\u0439\u043b\u0430 \u043d\u0430\u0436\u043c\u0438\u0442\u0435 &#8216;i&#8217; (\u0440\u0435\u0436\u0438\u043c \u0440\u0435\u0434\u0430\u043a\u0442\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f) \u0438 \u0434\u043e\u0431\u0430\u0432\u044c\u0442\u0435 \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0443\u044e \u0441\u0442\u0440\u043e\u0447\u043a\u0443 (\u0432\u0441\u0442\u0430\u0432\u044c\u0442\u0435 \u0432 \u0440\u0435\u0434\u0430\u043a\u0442\u043e\u0440 \u0441 \u043f\u043e\u043c\u043e\u0449\u044c\u044e Shift+Ins):<br \/>  00 08 * * * \/usr\/bin\/php \/var\/www\/html\/adfox\/daily.php &gt; \/var\/www\/html\/adfox\/out<\/p>\n<p>  \u0417\u0430\u0442\u0435\u043c \u0436\u043c\u0435\u043c esc (\u0432\u044b\u0445\u043e\u0434 \u0438\u0437 \u0440\u0435\u0436\u0438\u043c\u0430 \u0440\u0435\u0434\u0430\u043a\u0442\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f) \u0438 \u043d\u0430\u0431\u0438\u0440\u0430\u0435\u043c &#8216;:wq&#8217; \u2014 \u0441\u043e\u0445\u0440\u0430\u043d\u0438\u0442\u044c \u0438 \u0432\u044b\u0439\u0442\u0438. \u0412 \u043a\u043e\u043d\u0441\u043e\u043b\u0438 \u0434\u043e\u043b\u0436\u043d\u0430 \u043e\u0442\u043e\u0431\u0440\u0430\u0437\u0438\u0442\u044c\u0441\u044f \u0441\u0442\u0440\u043e\u0447\u043a\u0430:<br \/>  crontab: installing new crontab<\/p>\n<p>  \u0414\u043b\u044f \u043f\u0440\u043e\u0432\u0435\u0440\u043a\u0438 \u0443\u0441\u0442\u0430\u043d\u043e\u0432\u043a\u0438 \u0440\u0430\u0441\u043f\u0438\u0441\u0430\u043d\u0438\u044f:<br \/>  $ crontab -l<br \/>  00 08 * * * \/usr\/bin\/php \/var\/www\/html\/adfox\/daily.php &gt; \/var\/www\/html\/adfox\/out<\/p>\n<p>  \u0412 \u0444\u0430\u0439\u043b\u0435 out \u043c\u043e\u0436\u043d\u043e \u043e\u0442\u0441\u043b\u0435\u0436\u0438\u0432\u0430\u0442\u044c \u0440\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442\u044b \u0440\u0430\u0431\u043e\u0442\u044b Cron \u0437\u0430\u0434\u0430\u0447. \u041d\u0430\u043f\u0440\u0438\u043c\u0435\u0440, \u0435\u0441\u043b\u0438 \u0432\u043e\u0437\u043d\u0438\u043a\u043d\u0443\u0442 \u043e\u0448\u0438\u0431\u043a\u0438 \u0432 \u0445\u043e\u0434\u0435 \u0432\u044b\u043f\u043e\u043b\u043d\u0435\u043d\u0438\u044f \u0441\u043a\u0440\u0438\u043f\u0442\u0430.<\/p>\n<p>  \u041f\u043e\u0434\u0440\u043e\u0431\u043d\u0435\u0435 \u043f\u0440\u043e Cron \u043d\u0430 AWS: <a href=\"http:\/\/docs.aws.amazon.com\/opsworks\/latest\/userguide\/workingcookbook-extend-cron.html\">docs.aws.amazon.com\/opsworks\/latest\/userguide\/workingcookbook-extend-cron.html<\/a><\/p>\n<p>  \u0412\u0441\u0435 \u0433\u043e\u0442\u043e\u0432\u043e. \u0418\u0442\u043e\u0433\u043e \u0443 \u043d\u0430\u0441 \u0435\u0441\u0442\u044c \u0441\u043a\u0440\u0438\u043f\u0442, \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u0435\u0436\u0435\u0434\u043d\u0435\u0432\u043d\u043e \u0443\u0442\u0440\u043e\u043c \u043e\u0431\u043d\u043e\u0432\u043b\u044f\u0435\u0442 \u0434\u0430\u043d\u043d\u044b\u0435 \u043f\u043e \u043f\u043e\u043a\u0430\u0437\u0430\u043c \u0438 \u043a\u043b\u0438\u043a\u0430\u043c \u0432\u0441\u0435\u0445 \u0434\u043e\u0441\u0442\u0443\u043f\u043d\u044b\u0445 \u043d\u0430\u043c \u0431\u0430\u043d\u043d\u0435\u0440\u043e\u0432 \u0437\u0430 \u0432\u0447\u0435\u0440\u0430\u0448\u043d\u0438\u0439 \u0434\u0435\u043d\u044c. \u0410 \u0442\u0430\u043a\u0436\u0435 HTML-\u0441\u0442\u0440\u0430\u043d\u0438\u0446\u0430, \u043d\u0430 \u043a\u043e\u0442\u043e\u0440\u043e\u0439 \u0432 \u043b\u044e\u0431\u043e\u0435 \u0432\u0440\u0435\u043c\u044f \u043c\u043e\u0436\u043d\u043e \u043f\u043e\u0441\u043c\u043e\u0442\u0440\u0435\u0442\u044c \u0434\u0438\u043d\u0430\u043c\u0438\u043a\u0443 CTR \u0431\u0430\u043d\u043d\u0435\u0440\u043e\u0432 \u0437\u0430 \u043f\u043e\u0441\u043b\u0435\u0434\u043d\u0438\u0435 \u043d\u0435\u0441\u043a\u043e\u043b\u044c\u043a\u043e \u0434\u043d\u0435\u0439. \u041d\u0430 AWS \u0435\u0441\u0442\u044c \u043c\u043d\u043e\u0433\u043e \u0432\u043e\u0437\u043c\u043e\u0436\u043d\u043e\u0441\u0442\u0435\u0439 \u043f\u043e \u043d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0435 \u0431\u0435\u0437\u043e\u043f\u0430\u0441\u043d\u043e\u0433\u043e \u0434\u043e\u0441\u0442\u0443\u043f\u0430 \u043a \u0434\u0430\u043d\u043d\u044b\u043c. \u0422\u0430\u043a\u0436\u0435 \u043f\u0440\u0438 \u0441\u043e\u0432\u0435\u0440\u0448\u0435\u043d\u0441\u0442\u0432\u043e\u0432\u0430\u043d\u0438\u0438 \u044d\u0442\u043e\u0433\u043e \u043f\u043e\u0434\u0445\u043e\u0434\u0430 \u043c\u043e\u0436\u043d\u043e \u0437\u0430\u043f\u0438\u0441\u044b\u0432\u0430\u0442\u044c \u0434\u0430\u043d\u043d\u044b\u0435 \u0432 \u0431\u0430\u0437\u0443 MySQL, \u0441 \u043a\u043e\u0442\u043e\u0440\u043e\u0439 \u0433\u043e\u0440\u0430\u0437\u0434\u043e \u043f\u0440\u043e\u0449\u0435 \u0440\u0430\u0431\u043e\u0442\u0430\u0442\u044c, \u0447\u0435\u043c \u0441 \u0442\u0435\u043a\u0441\u0442\u043e\u0432\u044b\u043c\u0438 \u0444\u0430\u0439\u043b\u0430\u043c\u0438. \u041d\u0430\u0434\u0435\u044e\u0441\u044c \u044d\u0442\u043e\u0442 \u043f\u043e\u0434\u0445\u043e\u0434 \u043f\u043e\u043c\u043e\u0436\u0435\u0442 \u0432\u0430\u043c \u0441\u044d\u043a\u043e\u043d\u043e\u043c\u0438\u0442\u044c \u0432\u0440\u0435\u043c\u044f \u043f\u0440\u0438 \u0440\u0435\u0433\u0443\u043b\u044f\u0440\u043d\u043e\u0439 \u0440\u0430\u0431\u043e\u0442\u0435 \u0441 Adfox.     \t<\/p>\n<div class=\"clear\"><\/div>\n<p> \u0441\u0441\u044b\u043b\u043a\u0430 \u043d\u0430 \u043e\u0440\u0438\u0433\u0438\u043d\u0430\u043b \u0441\u0442\u0430\u0442\u044c\u0438 <a href=\"http:\/\/habrahabr.ru\/post\/266307\/\"> http:\/\/habrahabr.ru\/post\/266307\/<\/a><\/p>\n","protected":false},"excerpt":{"rendered":"<p>     \t\u0412 <a href=\"http:\/\/habrahabr.ru\/post\/265383\/\">\u043f\u0440\u043e\u0448\u043b\u043e\u0439 \u0441\u0442\u0430\u0442\u044c\u0435<\/a> \u0431\u044b\u043b \u0440\u0430\u0441\u0441\u043c\u043e\u0442\u0440\u0435\u043d \u043f\u0440\u0438\u043c\u0435\u0440 \u043d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0438 \u0430\u0432\u0442\u043e\u043c\u0430\u0442\u0438\u0447\u0435\u0441\u043a\u043e\u0439 \u0432\u044b\u0433\u0440\u0443\u0437\u043a\u0438 \u0434\u0430\u043d\u043d\u044b\u0445 \u0438\u0437 \u042f\u043d\u0434\u0435\u043a\u0441 \u041c\u0435\u0442\u0440\u0438\u043a\u0438. \u042d\u0442\u043e \u043e\u0431\u043b\u0435\u0433\u0447\u0430\u0435\u0442 \u0440\u0435\u0433\u0443\u043b\u044f\u0440\u043d\u0443\u044e \u0432\u044b\u0433\u0440\u0443\u0437\u043a\u0443, \u043d\u043e \u0441\u043f\u043e\u0441\u043e\u0431 \u043f\u043e\u043b\u0443\u0447\u0430\u0435\u0442\u0441\u044f \u043f\u043e\u043b\u0443\u0430\u0432\u0442\u043e\u043c\u0430\u0442\u0438\u0447\u0435\u0441\u043a\u0438\u043c: \u043d\u0430\u0434\u043e \u0437\u0430\u043f\u0443\u0441\u043a\u0430\u0442\u044c \u0441\u043a\u0440\u0438\u043f\u0442, \u043a\u043e\u043f\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u0440\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442\u044b \u0432\u044b\u0433\u0440\u0443\u0437\u043a\u0438 \u043a \u0441\u0435\u0431\u0435 \u0438 \u0434\u0430\u043b\u044c\u0448\u0435 \u0437\u0430\u043d\u0438\u043c\u0430\u0442\u044c\u0441\u044f \u0438\u0445 \u043e\u0444\u043e\u0440\u043c\u043b\u0435\u043d\u0438\u0435\u043c. \u041f\u043e\u0441\u043c\u043e\u0442\u0440\u0438\u043c \u043a\u0430\u043a \u043c\u043e\u0436\u043d\u043e \u0441\u0434\u0435\u043b\u0430\u0442\u044c \u043f\u0440\u043e\u0446\u0435\u0441\u0441 \u043f\u043e\u043b\u043d\u043e\u0441\u0442\u044c\u044e \u0430\u0432\u0442\u043e\u043c\u0430\u0442\u0438\u0447\u0435\u0441\u043a\u0438\u043c. \u0414\u043b\u044f \u043f\u0440\u0438\u043c\u0435\u0440\u0430 \u0431\u0443\u0434\u0435\u043c \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c \u0432\u044b\u0433\u0440\u0443\u0437\u043a\u0443 \u0434\u0430\u043d\u043d\u044b\u0445 \u0438\u0445 \u0440\u0435\u043a\u043b\u0430\u043c\u043d\u043e\u0439 \u0441\u0438\u0441\u0442\u0435\u043c\u044b Adfox.<\/p>\n<p>  Adfox \u0438\u043c\u0435\u0435\u0442 \u043c\u043d\u043e\u0433\u043e \u0433\u043e\u0442\u043e\u0432\u044b\u0445 \u043e\u0442\u0447\u0435\u0442\u043e\u0432, \u043e\u0434\u043d\u0430\u043a\u043e \u0434\u0430\u0436\u0435 \u043f\u0440\u043e\u0441\u0442\u044b\u0435 \u0443\u0441\u043b\u043e\u0436\u043d\u0435\u043d\u0438\u044f \u0442\u0440\u0435\u0431\u043e\u0432\u0430\u043d\u0438\u0439 \u043a \u043e\u0442\u0447\u0435\u0442\u043d\u043e\u0441\u0442\u0438 \u0432\u044b\u0437\u044b\u0432\u0430\u044e\u0442 \u043f\u0440\u043e\u0431\u043b\u0435\u043c\u044b. \u0415\u0441\u0442\u044c \u043e\u043f\u0446\u0438\u044f \u043d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0438 \u0440\u0435\u0433\u0443\u043b\u044f\u0440\u043d\u044b\u0445 \u043e\u0442\u0447\u0435\u0442\u043e\u0432, \u043e\u0434\u043d\u0430\u043a\u043e \u0432 \u0431\u043e\u043b\u044c\u0448\u0438\u043d\u0441\u0442\u0432\u0435 \u0441\u043b\u0443\u0447\u0430\u0435\u0432 \u043f\u0440\u0438\u0445\u043e\u0434\u0438\u0442\u0441\u044f \u043d\u0430\u0441\u0442\u0440\u0430\u0438\u0432\u0430\u0442\u044c \u043a\u043e\u043c\u0431\u0438\u043d\u0430\u0446\u0438\u0438 \u0432\u044b\u0433\u0440\u0443\u0437\u043e\u043a \u0441\u0430\u043c\u043e\u043c\u0443.<\/p>\n<p>  \u0412 \u044d\u0442\u043e\u0439 \u0441\u0442\u0430\u0442\u044c\u0435 \u043f\u043e\u043a\u0430\u0437\u0430\u043d\u043e \u043a\u0430\u043a \u0441\u0434\u0435\u043b\u0430\u0442\u044c \u0441\u043a\u0440\u0438\u043f\u0442, \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u0432\u044b\u0433\u0440\u0443\u0436\u0430\u0435\u0442 CTR \u0432\u0441\u0435\u0445 \u0431\u0430\u043d\u043d\u0435\u0440\u043e\u0432, \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u0434\u043e\u0441\u0442\u0443\u043f\u043d\u044b \u0430\u043a\u043a\u0430\u0443\u043d\u0442\u0443 (\u0441\u0434\u0435\u043b\u0430\u0442\u044c \u044d\u0442\u043e \u0432\u0440\u0443\u0447\u043d\u0443\u044e \u043d\u0435\u0440\u0435\u0430\u043b\u044c\u043d\u043e \u043f\u043e \u0432\u0440\u0435\u043c\u0435\u043d\u0438). \u0410 \u0442\u0430\u043a\u0436\u0435 \u043a\u0430\u043a \u043e\u0442\u043e\u0431\u0440\u0430\u0437\u0438\u0442\u044c \u044d\u0442\u043e \u043d\u0430 \u0433\u0440\u0430\u0444\u0438\u043a\u0435 \u0432 \u0432\u0438\u0434\u0435 \u043f\u0440\u043e\u0441\u0442\u043e\u0439 HTML-\u0441\u0442\u0440\u0430\u043d\u0438\u0446\u044b. \u0422. \u0435. \u043c\u044b \u043f\u043e\u0441\u043b\u0435\u0434\u043e\u0432\u0430\u0442\u0435\u043b\u044c\u043d\u043e \u043f\u0440\u043e\u0441\u043c\u043e\u0442\u0440\u0438\u043c \u0432\u0441\u0435 \u043a\u0430\u043c\u043f\u0430\u043d\u0438\u0438 \u0438 \u0444\u043b\u0430\u0439\u0442\u044b, \u0432\u043e\u0437\u044c\u043c\u0435\u043c \u043f\u043e\u043a\u0430\u0437\u044b \u0438 \u043a\u043b\u0438\u043a\u0438 \u043f\u043e \u0432\u0441\u0435\u043c \u0431\u0430\u043d\u043d\u0435\u0440\u0430\u043c \u0438 \u043d\u0430\u0440\u0438\u0441\u0443\u0435\u043c \u0433\u0440\u0430\u0444\u0438\u043a CTR. \u041a\u0430\u043a \u0438 \u0432 \u043f\u0440\u043e\u0448\u043b\u043e\u0439 \u0441\u0442\u0430\u0442\u044c\u0435 \u0440\u0430\u0431\u043e\u0442\u0430\u0442\u044c \u0431\u0443\u0434\u0435\u043c \u043d\u0430 \u0438\u043d\u0441\u0442\u0430\u043d\u0441\u0430\u0445 Amazon Web Services, \u0447\u0442\u043e\u0431\u044b \u0431\u044b\u043b\u043e \u0443\u043d\u0438\u0432\u0435\u0440\u0441\u0430\u043b\u044c\u043d\u043e \u0438 \u0433\u043b\u0430\u0432\u043d\u043e\u0435 \u0431\u0435\u0441\u043f\u043b\u0430\u0442\u043d\u043e. \u0412\u044b\u0433\u0440\u0443\u0437\u043a\u0430 \u0434\u0430\u043d\u043d\u044b\u0445 \u043d\u0430 PHP, \u0433\u0440\u0430\u0444\u0438\u043a\u0438 \u0440\u0438\u0441\u0443\u0435\u043c \u0432 Highcharts. \u0412 \u043a\u043e\u0434\u0435 \u0440\u0435\u0430\u043b\u0438\u0437\u043e\u0432\u0430\u043d \u0441\u0430\u043c\u044b\u0439 \u043f\u0440\u043e\u0441\u0442\u043e\u0439 \u0441\u043f\u043e\u0441\u043e\u0431 \u0432\u044b\u0433\u0440\u0443\u0437\u043a\u0438 \u0438 \u043e\u0431\u0440\u0430\u0431\u043e\u0442\u043a\u0438 \u0434\u0430\u043d\u043d\u044b\u0445 \u0431\u0435\u0437 \u043a\u0430\u043a\u0438\u0445-\u043b\u0438\u0431\u043e \u0443\u043b\u0443\u0447\u0448\u0435\u043d\u0438\u0439. \u0412 \u0438\u0442\u043e\u0433\u0435 \u043f\u043e\u043b\u0443\u0447\u0438\u043c \u0435\u0436\u0435\u0434\u043d\u0435\u0432\u043d\u043e \u043e\u0431\u043d\u043e\u0432\u043b\u044f\u0435\u043c\u0443\u044e \u0437\u0430 \u0432\u0447\u0435\u0440\u0430\u0448\u043d\u0438\u0439 \u0434\u0435\u043d\u044c \u0441\u0442\u0440\u0430\u043d\u0438\u0446\u0443 \u0432\u0438\u0434\u0430<br \/>  <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/files\/243\/28d\/5fa\/24328d5faadd41019197911051ab4ba2.jpg\" alt=\"image\"\/>  <\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[],"tags":[],"class_list":["post-265032","post","type-post","status-publish","format-standard","hentry"],"_links":{"self":[{"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=\/wp\/v2\/posts\/265032","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=265032"}],"version-history":[{"count":0,"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=\/wp\/v2\/posts\/265032\/revisions"}],"wp:attachment":[{"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=265032"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=265032"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=265032"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}