Apache + Tomcat + JK2 = проблемы :(

User avatar
Pukite
Уже с Приветом
Posts: 257
Joined: 05 Apr 2003 17:06
Location: Европа :: Латвия

Apache + Tomcat + JK2 = проблемы :(

Post by Pukite »

Привет, коллеги!

Имеем Apache2, файл httpd.conf содержит:

Code: Select all

LoadModule jk2_module modules/mod_jk2.so

   <Location "/*.jsp">
        JkUriSet worker ajp13:localhost:8009
    </Location>

JkWorkersFile conf/workers.properties
JkLogFile logs/mod_jk.log
JkLogLevel info
JkLogStampFormat "[%a %b %d %H:%M:%S %Y] "
JkOptions +ForwardKeySize +ForwardURICompat -ForwardDirectories
JkRequestLogFormat "%w %V %T"
JkMount /examples/* worker1


При запуске ругается:

Code: Select all

Syntax error on line 405 of /a2/conf/httpd.conf:
Invalid command 'JkWorkersFile', perhaps mis-spelled or defined by a module not included in the server configuration


Пошарилась в Гугле, такая проблема у многих, вот только решения нигде нету :( Что делать?
User avatar
Pukite
Уже с Приветом
Posts: 257
Joined: 05 Apr 2003 17:06
Location: Европа :: Латвия

Post by Pukite »

Вот ещё одна проблема: TomCat стартуется и сразу же падает :( С чего начать?

Code: Select all

# /usr/local/bin/tomcat50ctl start
>> Reading PID file (/var/run/tomcat50.pid)... [ DONE ]
>> Starting Jakarta Tomcat 5.0.14... [ DONE ]
>> Writing PID file... [ DONE ]


Code: Select all

# cat /usr/local/jakarta-tomcat5.0/logs/stdout.log

Can't load server.xml
Can't load server.xml


Однако server.xml присутствует в /usr/local/jakarta-tomcat5.0/conf
User avatar
A. Fig Lee
Уже с Приветом
Posts: 12072
Joined: 17 Nov 2002 03:41
Location: английская колония

Post by A. Fig Lee »

A permissions ok на файлах и директориях?
Верить нельзя никому - даже себе. Мне - можно!
User avatar
Pukite
Уже с Приветом
Posts: 257
Joined: 05 Apr 2003 17:06
Location: Европа :: Латвия

Post by Pukite »

Сделала chmod a+rx, теперь такое выдает, и тоже падает:

Code: Select all

# cat /usr/local/jakarta-tomcat5.0/logs/stdout.log

Catalina.start: java.lang.ClassNotFoundException: org.apache.ajp.tomcat.Ajp13Connector
java.lang.ClassNotFoundException: org.apache.ajp.tomcat.Ajp13Connector
        at org.apache.commons.digester.Digester.createSAXException(Digester.java:2540)
        at org.apache.commons.digester.Digester.createSAXException(Digester.java:2566)
        at org.apache.commons.digester.Digester.startElement(Digester.java:1276)
        at org.apache.xerces.parsers.AbstractSAXParser.startElement(Unknown Source)
        at org.apache.xerces.parsers.AbstractXMLDocumentParser.emptyElement(Unknown Source)
        at org.apache.xerces.impl.XMLDocumentFragmentScannerImpl.scanStartElement(Unknown Source)
        at org.apache.xerces.impl.XMLDocumentFragmentScannerImpl$FragmentContentDispatcher.dispatch(Unknown Source)
        at org.apache.xerces.impl.XMLDocumentFragmentScannerImpl.scanDocument(Unknown Source)
        at org.apache.xerces.parsers.XML11Configuration.parse(Unknown Source)
        at org.apache.xerces.parsers.DTDConfiguration.parse(Unknown Source)
        at org.apache.xerces.parsers.XMLParser.parse(Unknown Source)
        at org.apache.xerces.parsers.AbstractSAXParser.parse(Unknown Source)
        at org.apache.commons.digester.Digester.parse(Digester.java:1548)
        at org.apache.catalina.startup.Catalina.load(Catalina.java:514)
        at org.apache.catalina.startup.Catalina.load(Catalina.java:552)
        at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
        at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
        at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
        at java.lang.reflect.Method.invoke(Method.java:324)
        at org.apache.catalina.startup.Bootstrap.load(Bootstrap.java:260)
        at org.apache.catalina.startup.Bootstrap.main(Bootstrap.java:396)
Catalina.start: java.lang.ClassNotFoundException: org.apache.ajp.tomcat.Ajp13Connector
java.lang.ClassNotFoundException: org.apache.ajp.tomcat.Ajp13Connector
        at org.apache.commons.digester.Digester.createSAXException(Digester.java:2540)
        at org.apache.commons.digester.Digester.createSAXException(Digester.java:2566)
        at org.apache.commons.digester.Digester.startElement(Digester.java:1276)
        at org.apache.xerces.parsers.AbstractSAXParser.startElement(Unknown Source)
        at org.apache.xerces.parsers.AbstractXMLDocumentParser.emptyElement(Unknown Source)
        at org.apache.xerces.impl.XMLDocumentFragmentScannerImpl.scanStartElement(Unknown Source)
        at org.apache.xerces.impl.XMLDocumentFragmentScannerImpl$FragmentContentDispatcher.dispatch(Unknown Source)
        at org.apache.xerces.impl.XMLDocumentFragmentScannerImpl.scanDocument(Unknown Source)
        at org.apache.xerces.parsers.XML11Configuration.parse(Unknown Source)
        at org.apache.xerces.parsers.DTDConfiguration.parse(Unknown Source)
        at org.apache.xerces.parsers.XMLParser.parse(Unknown Source)
        at org.apache.xerces.parsers.AbstractSAXParser.parse(Unknown Source)
        at org.apache.commons.digester.Digester.parse(Digester.java:1548)
        at org.apache.catalina.startup.Catalina.load(Catalina.java:514)
        at org.apache.catalina.startup.Catalina.start(Catalina.java:572)
        at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
        at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
        at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
        at java.lang.reflect.Method.invoke(Method.java:324)
        at org.apache.catalina.startup.Bootstrap.start(Bootstrap.java:297)
        at org.apache.catalina.startup.Bootstrap.main(Bootstrap.java:397)
User avatar
A. Fig Lee
Уже с Приветом
Posts: 12072
Joined: 17 Nov 2002 03:41
Location: английская колония

Post by A. Fig Lee »

A CLASSPATH pravil'nyj kogda Tomcat zapuskaetsja? est' v etom CLASSPATH
org.apache.ajp.tomcat.Ajp13Connector ?
Верить нельзя никому - даже себе. Мне - можно!
User avatar
Pukite
Уже с Приветом
Posts: 257
Joined: 05 Apr 2003 17:06
Location: Европа :: Латвия

Post by Pukite »

A. Fig Lee wrote:A CLASSPATH pravil'nyj kogda Tomcat zapuskaetsja? est' v etom CLASSPATH
org.apache.ajp.tomcat.Ajp13Connector ?


А что это за зверь, и где его проставить? :pain1:
Бродяга
Уже с Приветом
Posts: 16086
Joined: 22 Apr 2003 17:57
Location: Колыбель

Post by Бродяга »

Pukite wrote:
A. Fig Lee wrote:A CLASSPATH pravil'nyj kogda Tomcat zapuskaetsja? est' v etom CLASSPATH
org.apache.ajp.tomcat.Ajp13Connector ?


А что это за зверь, и где его проставить? :pain1:

CLASSPATH=$CLASSPATH;/usr/local/jakarta-tomcat5.0/lib/ и дальше имена jar файлов.
можно набрать в консоли но прийдется делать каждый раз. Добавте с профайл себе его. Каким шеллом пользуетесь?
Бог создал людей разными, Линкольн дал людям свободу, а Кольт всех уравнял.
User avatar
Pukite
Уже с Приветом
Posts: 257
Joined: 05 Apr 2003 17:06
Location: Европа :: Латвия

Post by Pukite »

Всё по-прежнему :(

Code: Select all

Using CATALINA_BASE:   /usr/local/jakarta-tomcat5.0
Using CATALINA_HOME:   /usr/local/jakarta-tomcat5.0
Using CATALINA_TMPDIR: /usr/local/jakarta-tomcat5.0/temp
Using JAVA_HOME:       /usr/local/jdk1.4.2
#
# echo $CLASSPATH
/usr/local/jakarta-tomcat5.0/lib/
#
# /usr/local/bin/tomcat50ctl start
>> Reading PID file (/var/run/tomcat50.pid)... [ DONE ]
>> Starting Jakarta Tomcat 5.0.14... [ DONE ]
>> Writing PID file... [ DONE ]
#
#
# cat /usr/local/jakarta-tomcat5.0/logs/stdout.log

Catalina.start: java.lang.ClassNotFoundException: org.apache.ajp.tomcat.Ajp13Connector
java.lang.ClassNotFoundException: org.apache.ajp.tomcat.Ajp13Connector
        at org.apache.commons.digester.Digester.createSAXException(Digester.java:2540)
        at org.apache.commons.digester.Digester.createSAXException(Digester.java:2566)
        at org.apache.commons.digester.Digester.startElement(Digester.java:1276)
        at org.apache.xerces.parsers.AbstractSAXParser.startElement(Unknown Source)
        at org.apache.xerces.parsers.AbstractXMLDocumentParser.emptyElement(Unknown Source)
        at org.apache.xerces.impl.XMLDocumentFragmentScannerImpl.scanStartElement(Unknown Source)
        at org.apache.xerces.impl.XMLDocumentFragmentScannerImpl$FragmentContentDispatcher.dispatch(Unknown Source)
        at org.apache.xerces.impl.XMLDocumentFragmentScannerImpl.scanDocument(Unknown Source)
        at org.apache.xerces.parsers.XML11Configuration.parse(Unknown Source)
        at org.apache.xerces.parsers.DTDConfiguration.parse(Unknown Source)
        at org.apache.xerces.parsers.XMLParser.parse(Unknown Source)
        at org.apache.xerces.parsers.AbstractSAXParser.parse(Unknown Source)
        at org.apache.commons.digester.Digester.parse(Digester.java:1548)
        at org.apache.catalina.startup.Catalina.load(Catalina.java:514)
        at org.apache.catalina.startup.Catalina.load(Catalina.java:552)
        at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
        at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
        at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
        at java.lang.reflect.Method.invoke(Method.java:324)
        at org.apache.catalina.startup.Bootstrap.load(Bootstrap.java:260)
        at org.apache.catalina.startup.Bootstrap.main(Bootstrap.java:396)
Catalina.start: java.lang.ClassNotFoundException: org.apache.ajp.tomcat.Ajp13Connector
java.lang.ClassNotFoundException: org.apache.ajp.tomcat.Ajp13Connector
        at org.apache.commons.digester.Digester.createSAXException(Digester.java:2540)
        at org.apache.commons.digester.Digester.createSAXException(Digester.java:2566)
        at org.apache.commons.digester.Digester.startElement(Digester.java:1276)
        at org.apache.xerces.parsers.AbstractSAXParser.startElement(Unknown Source)
        at org.apache.xerces.parsers.AbstractXMLDocumentParser.emptyElement(Unknown Source)
        at org.apache.xerces.impl.XMLDocumentFragmentScannerImpl.scanStartElement(Unknown Source)
        at org.apache.xerces.impl.XMLDocumentFragmentScannerImpl$FragmentContentDispatcher.dispatch(Unknown Source)
        at org.apache.xerces.impl.XMLDocumentFragmentScannerImpl.scanDocument(Unknown Source)
        at org.apache.xerces.parsers.XML11Configuration.parse(Unknown Source)
        at org.apache.xerces.parsers.DTDConfiguration.parse(Unknown Source)
        at org.apache.xerces.parsers.XMLParser.parse(Unknown Source)
        at org.apache.xerces.parsers.AbstractSAXParser.parse(Unknown Source)
        at org.apache.commons.digester.Digester.parse(Digester.java:1548)
        at org.apache.catalina.startup.Catalina.load(Catalina.java:514)
        at org.apache.catalina.startup.Catalina.start(Catalina.java:572)
        at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
        at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
        at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
        at java.lang.reflect.Method.invoke(Method.java:324)
        at org.apache.catalina.startup.Bootstrap.start(Bootstrap.java:297)
        at org.apache.catalina.startup.Bootstrap.main(Bootstrap.java:397)


/usr/local/jakarta-tomcat5.0/conf/server.xml выглядит таким образом:

Code: Select all

<Server port="8005" shutdown="SHUTDOWN" debug="0">

        <Service name="Tomcat-Apache">

                <Connector className="org.apache.ajp.tomcat.Ajp13Connector"
                        port="8009" minProcessors="5" maxProcessors="75"
                        acceptCount="10" debug="0"/>

                <Engine name="your_engine" debug="0" defaultHost="your_domain.com">
                        <Logger className="org.apache.catalina.logger.FileLogger"
                                prefix="apache_log." suffix=".txt"
                                timestamp="true"/>
                        <Host name="мой.домен.лв" debug="0" appBase="webapps"
                                unpackWARs="true">

                                <Context path="" docBase="/home/tomcat/your_application"
                                debug="0" reloadable="true" />

                        </Host>
                </Engine>

        </Service>

</Server>
User avatar
Sabina
Уже с Приветом
Posts: 5669
Joined: 13 Oct 2000 09:01
Location: East Bay, CA

Post by Sabina »

Pukite wrote:Всё по-прежнему :(
....
# echo $CLASSPATH
/usr/local/jakarta-tomcat5.0/lib/

......
# cat /usr/local/jakarta-tomcat5.0/logs/stdout.log

Catalina.start: java.lang.ClassNotFoundException: org.apache.ajp.tomcat.Ajp13Connector
java.lang.ClassNotFoundException: org.apache.ajp.tomcat.Ajp13Connector
at org.apache.commons.digester.Digester.createSAXException(Digester.java:2540)


Не находит Томкат вашей бибилотеки. А этот jar точно под этим путем сидит?
У меня например в томкатной папке напрямую нет никаких libs. Есть под common, под server.

И еще сам этот класс он не часть какого-нибудь extension пакета?

Вот тут довольно подробно описано что где должно быть
http://jakarta.apache.org/tomcat/tomcat-5.0-doc/class-loader-howto.html

Сабина
User avatar
Sabina
Уже с Приветом
Posts: 5669
Joined: 13 Oct 2000 09:01
Location: East Bay, CA

Post by Sabina »

Я посмотрела. У меня этот Coyote Connector сидит в tomcat-coyote.jar, который под [tomcat_dir]\server\lib

Сабина
User avatar
Pukite
Уже с Приветом
Posts: 257
Joined: 05 Apr 2003 17:06
Location: Европа :: Латвия

Post by Pukite »

Code: Select all

# find /usr/local/jakarta-tomcat5.0 | grep .jar
/usr/local/jakarta-tomcat5.0/webapps/jsp-examples/WEB-INF/lib/standard.jar
/usr/local/jakarta-tomcat5.0/webapps/jsp-examples/WEB-INF/lib/jstl.jar
/usr/local/jakarta-tomcat5.0/server/lib/catalina-cluster.jar
/usr/local/jakarta-tomcat5.0/server/lib/commons-digester.jar
/usr/local/jakarta-tomcat5.0/server/lib/commons-beanutils.jar
/usr/local/jakarta-tomcat5.0/server/lib/servlets-ssi.renametojar
/usr/local/jakarta-tomcat5.0/server/lib/tomcat-jni.jar
/usr/local/jakarta-tomcat5.0/server/lib/catalina-i18n-es.jar
/usr/local/jakarta-tomcat5.0/server/lib/catalina-ant.jar
/usr/local/jakarta-tomcat5.0/server/lib/catalina-optional.jar
/usr/local/jakarta-tomcat5.0/server/lib/commons-fileupload-1.0.jar
/usr/local/jakarta-tomcat5.0/server/lib/jakarta-regexp-1.3.jar
/usr/local/jakarta-tomcat5.0/server/lib/tomcat-jk.jar
/usr/local/jakarta-tomcat5.0/server/lib/commons-modeler.jar
/usr/local/jakarta-tomcat5.0/server/lib/tomcat-http11.jar
/usr/local/jakarta-tomcat5.0/server/lib/servlets-invoker.jar
/usr/local/jakarta-tomcat5.0/server/lib/servlets-cgi.renametojar
/usr/local/jakarta-tomcat5.0/server/lib/catalina.jar
/usr/local/jakarta-tomcat5.0/server/lib/servlets-common.jar
/usr/local/jakarta-tomcat5.0/server/lib/catalina-i18n-fr.jar
/usr/local/jakarta-tomcat5.0/server/lib/jkshm.jar
/usr/local/jakarta-tomcat5.0/server/lib/jkconfig.jar
/usr/local/jakarta-tomcat5.0/server/lib/catalina-i18n-ja.jar
/usr/local/jakarta-tomcat5.0/server/lib/servlets-webdav.jar
/usr/local/jakarta-tomcat5.0/server/lib/tomcat-coyote.jar
/usr/local/jakarta-tomcat5.0/server/lib/tomcat-jk2.jar
/usr/local/jakarta-tomcat5.0/server/lib/servlets-default.jar
/usr/local/jakarta-tomcat5.0/server/lib/tomcat-util.jar
/usr/local/jakarta-tomcat5.0/server/webapps/admin/WEB-INF/lib/catalina-admin.jar
/usr/local/jakarta-tomcat5.0/server/webapps/admin/WEB-INF/lib/struts.jar
/usr/local/jakarta-tomcat5.0/server/webapps/manager/WEB-INF/lib/catalina-manager.jar
/usr/local/jakarta-tomcat5.0/common/endorsed/xercesImpl.jar
/usr/local/jakarta-tomcat5.0/common/endorsed/xmlParserAPIs.jar
/usr/local/jakarta-tomcat5.0/common/lib/jsp-api.jar
/usr/local/jakarta-tomcat5.0/common/lib/jmx-remote-tools.jar
/usr/local/jakarta-tomcat5.0/common/lib/commons-dbcp-1.1.jar
/usr/local/jakarta-tomcat5.0/common/lib/jmx.jar
/usr/local/jakarta-tomcat5.0/common/lib/commons-el.jar
/usr/local/jakarta-tomcat5.0/common/lib/commons-collections.jar
/usr/local/jakarta-tomcat5.0/common/lib/naming-java.jar
/usr/local/jakarta-tomcat5.0/common/lib/commons-pool-1.1.jar
/usr/local/jakarta-tomcat5.0/common/lib/jmx-remote.jar
/usr/local/jakarta-tomcat5.0/common/lib/jasper-runtime.jar
/usr/local/jakarta-tomcat5.0/common/lib/naming-factory.jar
/usr/local/jakarta-tomcat5.0/common/lib/servlet-api.jar
/usr/local/jakarta-tomcat5.0/common/lib/naming-resources.jar
/usr/local/jakarta-tomcat5.0/common/lib/ant.jar
/usr/local/jakarta-tomcat5.0/common/lib/naming-common.jar
/usr/local/jakarta-tomcat5.0/common/lib/jasper-compiler.jar
/usr/local/jakarta-tomcat5.0/common/lib/tools.jar
/usr/local/jakarta-tomcat5.0/bin/commons-launcher.jar
/usr/local/jakarta-tomcat5.0/bin/commons-daemon.jar
/usr/local/jakarta-tomcat5.0/bin/commons-logging-api.jar
/usr/local/jakarta-tomcat5.0/bin/bootstrap.jar


Вроде всё есть...
User avatar
A. Fig Lee
Уже с Приветом
Posts: 12072
Joined: 17 Nov 2002 03:41
Location: английская колония

Post by A. Fig Lee »

Dyk nado file v CLASSPATH, ne directoriju.
jar -t *.jar, najti fajl gde sidit etot class i ego v CLASSPATH
Верить нельзя никому - даже себе. Мне - можно!
User avatar
Pukite
Уже с Приветом
Posts: 257
Joined: 05 Apr 2003 17:06
Location: Европа :: Латвия

Post by Pukite »

A. Fig Lee wrote:Dyk nado file v CLASSPATH, ne directoriju.
jar -t *.jar, najti fajl gde sidit etot class i ego v CLASSPATH


Code: Select all

# echo $CLASSPATH
/usr/local/jakarta-tomcat5.0/lib/:/usr/local/jakarta-tomcat5.0/server/lib:/usr/local/jakarta-tomcat5.0/common/lib


Так директории в неё входят.

Что конкретно мне нужно ввести?
Palych
Уже с Приветом
Posts: 13683
Joined: 16 Jan 2001 10:01

Post by Palych »

CLASSPATH=/usr/local/jakarta-tomcat5.0/lib/tomcat-coyote.jar
User avatar
Pukite
Уже с Приветом
Posts: 257
Joined: 05 Apr 2003 17:06
Location: Европа :: Латвия

Post by Pukite »

Palych wrote:CLASSPATH=/usr/local/jakarta-tomcat5.0/lib/tomcat-coyote.jar


Картина та же :pain1:
Palych
Уже с Приветом
Posts: 13683
Joined: 16 Jan 2001 10:01

Post by Palych »

Chto-to v configah ne tak... Ne dolzhen on Ajp13Connector iskat'...
User avatar
Pukite
Уже с Приветом
Posts: 257
Joined: 05 Apr 2003 17:06
Location: Европа :: Латвия

Post by Pukite »

Palych wrote:Chto-to v configah ne tak... Ne dolzhen on Ajp13Connector iskat'...

Нельзя ли попросить выложить какие-либо готовые 'правильные' конфиги?
User avatar
Sabina
Уже с Приветом
Posts: 5669
Joined: 13 Oct 2000 09:01
Location: East Bay, CA

Post by Sabina »

Pukite wrote:
Palych wrote:Chto-to v configah ne tak... Ne dolzhen on Ajp13Connector iskat'...

Нельзя ли попросить выложить какие-либо готовые 'правильные' конфиги?


Посмотрела JK2
http://jakarta.apache-korea.org/tomcat/tomcat-4.1-doc/jk2/jk2/configtc.html

Там же вроде дофига всего конфигурировать? Ето все сделано уже?

http://jakarta.apache-korea.org/tomcat/tomcat-4.1-doc/jk2/jk2/configweb.html

Native server configuration

For Apache2 you can also use httpd.conf instead or in addition to workers2.properties. Other servers may support similar configuration - for example using registry or their native formats. This configuration mode is less tested - but provides some unique advantages (and disadvantages )

I'll describe the apache2 specifics, since this is the only one implemented. We use 2 directives - JkSet is a top-level directive is used to set global config options, and JkUriSet is used to set options for Location sections

JkSet takes 2 parameters, the property name ( including component name ) and the value. (Note: probably we should change it to 3 params, and separate the component name from property )

Each Location that has a JkUriSet will automatically create a jk2 [uri] object, using the Location path and the vhost. All JkUriSet directives will set attributes in this [uri] object, exactly like properties in a ini file section

You can mix workers2.properties and JkUriSet - for example workers and global options can be set in worker2.properties, but all uri properties in httpd.conf. Some people might preffer to have only one config file and use httpd.conf for all configuration.

The biggest benefit is that Apache2 mapping is used instead of jk2 to detect the requests that need to be sent to tomcat. Apache2 has been optimized and tuned to server huge number of servers and uris - if you have only few the diference may be hard to notice. Some people preffer to use the httpd.conf format and some tools could be better used in this mode.

One major problem is that reconfiguration is not supported if httpd.conf is used. You can still enable/disable/add workers if you use workers2.properties, and you could add or change uri properties in that file.


Сабина
User avatar
Strannik223
Уже с Приветом
Posts: 569
Joined: 14 Dec 2003 04:06
Location: Львов->Киев->Торонто

Post by Strannik223 »

man ktrace
Посмотри в каких директориях и что оно ищет
Никакой разрухи нет. (с) Проф. Преображенский.

Return to “Вопросы и новости IT”