1 .. _install: |
|
2 |
|
3 Installing PyAMS |
|
4 ================ |
|
5 |
|
6 PyAMS default installation is based on `Buildout <http://www.buildout.org>`_ utility. It's not mandatory to use a |
|
7 virtual environment, but it allows you to have a better control over your Python resources. |
|
8 |
|
9 Current PyAMS version is based and validated for Python 3.5; your Python environment must also include a C |
|
10 compiler as well as development headers for Python, *libjpeg*, *libpng*, *libfreetype*, *libxml2*, *libxslt* and |
|
11 eventually *libldap*, *libffi*, *libgdal* or *libzmq*. |
|
12 |
|
13 PyAMS default components configuration also pre-suppose that the following external tools are available: |
|
14 |
|
15 - a *Memcached* or *Redis* server, to store sessions and cache (can be changed through Beaker configuration) |
|
16 |
|
17 Optional tools also include: |
|
18 |
|
19 - an *LDAP* server for authentication |
|
20 |
|
21 - an *ElasticSearch* server for full text indexing (see *PyAMS_content_es* package) |
|
22 |
|
23 - a *WebSockets* server using AsyncIO. This is used to manage notifications (see *PyAMS_notify* and *PyAMS_notify_ws* |
|
24 packages). An *out of the box* environment can be built using *pyams_notify* scaffold. |
|
25 |
|
26 |
|
27 PyAMS also needs that you use a ZODB remote server, as several background processes needing a concurrent access to ZODB |
|
28 are started by PyAMS main process. Three ZODB storages are already provided through PyAMS: ZEO, RelStorage or Newt.db. |
|
29 See :ref:`zodb` to know how to initialize database with the help of PyAMS tools. |
|
30 |
|
31 |
|
32 Creating initial buildout |
|
33 ------------------------- |
|
34 |
|
35 PyAMS provides a new Pyramid scaffold, called *pyams*, generated via a *cookiecutter* template. |
|
36 |
|
37 A simple option to install PyAMS is to create a buildout environment including *Pyramid* and all *PyAMS* packages: |
|
38 |
|
39 .. code-block:: bash |
|
40 |
|
41 # mkdir /var/local/ |
|
42 # pip3 install virtualenv |
|
43 # virtualenv --python=python3.5 env |
|
44 # cd env |
|
45 # . bin/activate |
|
46 (env) # pip3.5 install cookiecutter |
|
47 (env) # cookiecutter hg+http://hg.ztfy.org/pyams/scaffolds/pyams |
|
48 |
|
49 *CookieCutter* will ask you for a small set of input variables that you can change or not: |
|
50 |
|
51 - **pyams_release**: version of PyAMS configuration file to use. "latest" (default value) will point to last release; |
|
52 you can also choose to point to a given release ("0.1.4" for example) |
|
53 |
|
54 - **project_name**: current environment name in "human form" |
|
55 |
|
56 - **project_slug**: "technical" package name, based on project name |
|
57 |
|
58 - **virtual_hostname**: Apache virtual-host name |
|
59 |
|
60 - **webapp_name**: web application package name ("webapp" as default) |
|
61 |
|
62 - **webapp_port**: TCP/IP port to use when running application outside Apache ("6543" as default) |
|
63 |
|
64 - **eggs_directory**: relative or absolute path to directory containing downloaded eggs; this directory can be |
|
65 shared with other projects ("eggs" as default) |
|
66 |
|
67 - **logs_directory**: absolute path to directory containing Apache's log files |
|
68 |
|
69 - **run_user**: user name under which Apache process will run ("www-data" as default) |
|
70 |
|
71 - **run_group**: group name under which Apache process will run ("www-data" as default) |
|
72 |
|
73 - **beaker_backend**: name of Beaker backend to use to store sessions and cache data ("redis" as default) |
|
74 |
|
75 - **beaker_server**: IP address and port of Beaker backend server ("127.0.0.1:6379" as default) |
|
76 |
|
77 - **db_type**: ZODB database storage; available options include ZEO, RelStorage and NewtDB |
|
78 |
|
79 - **db_host**: IP address of database server ("127.0.0.1" as default); WARNING: database server installation |
|
80 is not part of application installation; another "zeo_server" cookiecutter recipe is available for ZEO |
|
81 |
|
82 - **db_port**: listening port of database server ("8100" is given as default for ZEO) |
|
83 |
|
84 - **db_name**: database or ZEO storage name to use |
|
85 |
|
86 - **db_username**: database user name |
|
87 |
|
88 - **db_password**: database password |
|
89 |
|
90 - **zeo_realm**: ZEO authentication realm |
|
91 |
|
92 - **blobs_dir**: local directory to use to store cache of ZODB blobs; cache size is limited to 10GB as default |
|
93 |
|
94 - **use_postgresql**: specify if PostgreSQL access is required; if so, please check that PostgreSQL development files |
|
95 are available to compile PsycoPG2 extension |
|
96 |
|
97 - **use_oracle**: specify if Oracle access is required; if so, please check that Oracle development files are |
|
98 available to compile cx_Oracle extension, and that ORACLE_HOME environment variable is correctly defined (see below) |
|
99 |
|
100 - **use_ldap**: specify if LDAP access will be required for authentication |
|
101 |
|
102 - **use_elasticsearch**: specify if an ElasticSearch server will be used for indexation |
|
103 |
|
104 - **elasticsearch_server**: URL used to access Elasticsearch server ("http://127.0.0.1:9200" as default); this URL can |
|
105 include login and password ("http://login:password@127.0.0.1:9200"), if required... |
|
106 |
|
107 - **elasticsearch_index**: name of Elasticsearch index to use ("pyams" as default) |
|
108 |
|
109 - **create_elasticsearch_index**: specify if Elasticsearch index should be created after installation is complete |
|
110 |
|
111 - **define_elasticsearch_mappings** : specify if Elasticsearch mappings should be defined after installation is complete |
|
112 |
|
113 - **smtp_server**: DNS name of SMTP server ("localhost" as default) |
|
114 |
|
115 - **smtp_server_name**: "human" name given to SMTP server ("pyams" as default) |
|
116 |
|
117 - **pyams_scheduler**: TCP/IP address and port to use to access PyAMS tasks scheduler process ("127.0.0.1:5555" as |
|
118 default); see :ref:`pyams_scheduler` |
|
119 |
|
120 - **start_scheduler**: boolean value to indicate if scheduler process is started by this application instance |
|
121 |
|
122 - **pyams_medias_converter**: TCP/IP address and port to use to access PyAMS medias converter process ("127.0.0.1:5556" |
|
123 as default); see :ref:`pyams_medias` |
|
124 |
|
125 - **start_medias_converter**: boolean value to indicate if medias converter process is started by this application |
|
126 instance |
|
127 |
|
128 - **pyams_es_indexer**: TCP/IP address and port to use to access PyAMS Elasticsearch indexer process ("127.0.0.1:5557" |
|
129 as default); see :ref:`pyams_content_es` |
|
130 |
|
131 - **start_es_indexer** boolean value to indicate if Elasticsearch indexer process is started by this application |
|
132 instance |
|
133 |
|
134 - **use_notifications**: specify if PyAMS notifications services are to be used (see :ref:`pyams_notify`) |
|
135 |
|
136 - **pyams_ws_notify**: TCP/IP address and port of PyAMS websockets server managing notifications service |
|
137 ("127.0.0.1:8081" as default) |
|
138 |
|
139 - **lexicon_languages**: NLTK lexicon languages to use ("en:english fr:french" as default) |
|
140 |
|
141 - **extension_package**: name of a PyAMS extension package to include in environment configuration |
|
142 |
|
143 - **need_pyams_gis**: specify if PyAMS GIS features are to be used by given extension package; if so, please check |
|
144 that *libgdal* development files are available; on Debian (and maybe others), you have to specify environment |
|
145 variables (see below). |
|
146 |
|
147 |
|
148 You can then check, and eventually update, the proposed Buildout configuration file *buildout.cfg*, to add or remove |
|
149 packages or update settings to your needs. Then finalize Bootstrap initialization: |
|
150 |
|
151 .. code-block:: bash |
|
152 |
|
153 (env) # python3.5 bootstrap.py |
|
154 (env) # ./bin/buildout |
|
155 |
|
156 This last operation can be quite long, as many packages have to downloaded, compiled and installed in the virtual |
|
157 environment. If you encounter any compile error, just install the required dependencies and restart the buildout. |
|
158 |
|
159 Some dependencies can require the definition of custom environment variables before running *buildout*, like: |
|
160 |
|
161 - for *libgdal*, which is required by **PyAMS_gis** package, use: |
|
162 |
|
163 .. code-block:: bash |
|
164 |
|
165 (env) # export C_INCLUDE_PATH=/usr/include/gdal |
|
166 (env) # export CPLUS_INCLUDE_PATH=/usr/include/gdal |
|
167 |
|
168 **WARNING**: you have to check also that your *libgdal* release is matching "GDAL" release given in PyAMS |
|
169 configuration file (actually 2.1.0). |
|
170 |
|
171 - for *cx_Oracle*, which is required if you use Oracle database connections, use: |
|
172 |
|
173 .. code-block:: bash |
|
174 |
|
175 (env) # export ORACLE_HOME=/usr/lib/oracle/12.1/client64 |
|
176 |
|
177 These examples are given for Debian GNU/Linux. You may have to adapt configuration based on your own Linux |
|
178 distribution and packages versions. |
|
179 |
|
180 |
|
181 Environment settings |
|
182 -------------------- |
|
183 |
|
184 The project generated from *pyams* scaffold is based on default Pyramid's *zodb* scaffold, but it adds: |
|
185 |
|
186 - a custom application factory, in the *webapp* directory (see :ref:`site`) |
|
187 |
|
188 - a set of directories to store runtime data, in the *var* directory; each directory contains a *README.txt* file |
|
189 which should be self-explanatory to indicate what this directory should contain, including a ZEO cache |
|
190 |
|
191 - a set of configuration files, in the *etc* directory; here are standard *development.ini* and *production.ini* |
|
192 configuration files, a ZODB configuration files (*zodb-zeo.conf*) for a ZEO client storage and two Apache |
|
193 configurations (for Apache 2.2 and 2.4) using *mod_wsgi*. |
|
194 |
|
195 Once the project have been created from the scaffold, you are free to update all the configuration files. |
|
196 |
|
197 If you need to add packages to the environment, you have to add them to the *buildout.cfg* file **AND** to the INI |
|
198 file (in the *pyramid.includes* section) before running the *buildout* another time; don't forget to add the |
|
199 requested version at the end of *buildout.cfg* file, as Buildout is not configured by default to automatically |
|
200 download the last release of a given unknown package. |
|
201 |
|
202 *development.ini* and *production.ini* files contain many commented directives related to PyAMS components. Read and |
|
203 update them carefully before initializing your application database! |
|
204 |
|
205 |
|
206 Initializing the database |
|
207 ------------------------- |
|
208 |
|
209 When you have downloaded and installed all required packages, you have to initialize the database so that all |
|
210 required components are available. |
|
211 |
|
212 From a shell, just type: |
|
213 |
|
214 .. code-block:: bash |
|
215 |
|
216 (env) # ./bin/pyams_upgrade etc/development.ini |
|
217 |
|
218 This process requires that every package is correctly included into *pyramid.includes* directive from selected |
|
219 configuration file. |
|
220 |
|
221 |
|
222 Initializing Elasticsearch index |
|
223 -------------------------------- |
|
224 |
|
225 If you want to use an Elasticsearch index, you have to initialize index settings and mappings; the Ingest attachment |
|
226 plug-in is also required to handle attachments correctly. |
|
227 |
|
228 Elasticsearch integration is defined through the *PyAMS_content_es* package. Configuration files are available in this |
|
229 package, for attachment pipeline, index settings and mappings: |
|
230 |
|
231 .. code-block:: bash |
|
232 |
|
233 (env) # cd /var/local/src/pyams/pyams_content_es |
|
234 (env) # curl --noproxy localhost -XDELETE http://localhost:9200/pyams (1) |
|
235 (env) # curl --noproxy localhost -XPUT http://localhost:9200/pyams -d @index-settings.json |
|
236 |
|
237 (env) # curl --noproxy localhost -XPUT http://localhost:9200/pyams/WfNewsEvent/_mapping -d @mappings/WfNewsEvent.json |
|
238 (env) # curl --noproxy localhost -XPUT http://localhost:9200/pyams/WfTopic/_mapping -d @mappings/WfTopic.json |
|
239 (env) # curl --noproxy localhost -XPUT http://localhost:9200/pyams/WfBlogPost/_mapping -d @mappings/WfBlogPost.json |
|
240 |
|
241 (1) If 'pyams' is defined as Elasticsearch index name. |
|
242 |
|
243 |
|
244 NLTK initialization |
|
245 ------------------- |
|
246 |
|
247 Some NLTK (Natural Language Toolkit) tokenizers and stopwords utilities are used to index fulltext contents elements. |
|
248 This package requires downloading and configuration of several elements which are done as follow: |
|
249 |
|
250 .. code-block:: bash |
|
251 |
|
252 (end) # ./bin/py |
|
253 >>> import nltk |
|
254 >>> nltk.download() |
|
255 NLTK Downloader |
|
256 --------------------------------------------------------------------------- |
|
257 d) Download l) List u) Update c) Config h) Help q) Quit |
|
258 --------------------------------------------------------------------------- |
|
259 Downloader> c |
|
260 |
|
261 Data Server: |
|
262 - URL: <https://raw.githubusercontent.com/nltk/nltk_data/gh-pages/index.xml> |
|
263 - 6 Package Collections Available |
|
264 - 107 Individual Packages Available |
|
265 |
|
266 Local Machine: |
|
267 - Data directory: /home/tflorac/nltk_data |
|
268 |
|
269 --------------------------------------------------------------------------- |
|
270 s) Show Config u) Set Server URL d) Set Data Dir m) Main Menu |
|
271 --------------------------------------------------------------------------- |
|
272 Config> d |
|
273 New directory> /usr/local/lib/nltk_data (1) |
|
274 Config> m |
|
275 |
|
276 --------------------------------------------------------------------------- |
|
277 d) Download l) List u) Update c) Config h) Help q) Quit |
|
278 --------------------------------------------------------------------------- |
|
279 Downloader> d |
|
280 |
|
281 Download which package (l=list; x=cancel)? |
|
282 Identifier> punkt |
|
283 Downloading package punkt to /usr/local/lib/nltk_data... |
|
284 |
|
285 Downloader> d |
|
286 |
|
287 Download which package (l=list; x=cancel)? |
|
288 Identifier> stopwords |
|
289 Downloading package stopwords to /usr/local/lib/nltk_data... |
|
290 |
|
291 |
|
292 (1) On Debian GNU/Linux, you can choose any directory between '*~/nltk_data*' (where '~' is the homedir of user running |
|
293 Pyramid application), '*/usr/share/nltk_data*', '*/usr/local/share/nltk_data*', '*/usr/lib/nltk_data*' and |
|
294 '*/usr/local/lib/nltk_data*'. |
|
295 |
|
296 |
|
297 Starting the application |
|
298 ------------------------ |
|
299 |
|
300 When database upgrade process has ended, you can start the web application process with the standard Pyramid's |
|
301 *pserve* command line tool: |
|
302 |
|
303 .. code-block:: bash |
|
304 |
|
305 (env) # ./bin/pserve etc/development.ini |
|
306 |
|
307 In standard debug mode, all registered components are displayed in the console, until the final line (here using ZEO): |
|
308 |
|
309 .. code-block:: bash |
|
310 |
|
311 2018-01-14 11:37:54,339 INFO [ZEO.ClientStorage][MainThread] [('127.0.0.1', 8100)] ClientStorage (pid=28695) created RW/normal for storage: 'pyams' |
|
312 2018-01-14 11:37:54,340 INFO [ZEO.cache][MainThread] created temporary cache file 3 |
|
313 2018-01-14 11:37:54,345 INFO [ZODB.blob][MainThread] (28695) Blob directory `/var/local/env/pyams/var/db/blobs` is used but has no layout marker set. Selected `lawn` layout. |
|
314 2018-01-14 11:37:54,345 WARNI [ZODB.blob][MainThread] (28695) The `lawn` blob directory layout is deprecated due to scalability issues on some file systems, please consider migrating to the `bushy` layout. |
|
315 2018-01-14 11:37:54,346 DEBUG [asyncio][[('127.0.0.1', 8100)] zeo client networking thread] Using selector: EpollSelector |
|
316 2018-01-14 11:37:54,347 DEBUG [ZEO.asyncio.client][[('127.0.0.1', 8100)] zeo client networking thread] disconnected <ZEO.asyncio.client.Client object at 0x7feeb1de7390> None |
|
317 2018-01-14 11:37:54,348 DEBUG [ZEO.asyncio.client][[('127.0.0.1', 8100)] zeo client networking thread] try_connecting |
|
318 2018-01-14 11:37:54,349 INFO [ZEO.asyncio.base][[('127.0.0.1', 8100)] zeo client networking thread] Connected Protocol(('127.0.0.1', 8100), 'pyams', False) |
|
319 2018-01-14 11:37:54,355 INFO [ZEO.ClientStorage][[('127.0.0.1', 8100)] zeo client networking thread] [('127.0.0.1', 8100)] Connected to storage: ('localhost', 8100) |
|
320 2018-01-14 11:37:54,358 DEBUG [txn.140663320073984][MainThread] new transaction |
|
321 2018-01-14 11:37:54,360 DEBUG [txn.140663320073984][MainThread] commit |
|
322 2018-01-14 11:37:54,484 DEBUG [config][MainThread] include /home/tflorac/Dropbox/src/PyAMS/pyams_template/src/pyams_template/configure.zcml |
|
323 2018-01-14 11:37:54,485 DEBUG [config][MainThread] include /var/local/env/pycharm/lib/python3.5/site-packages/pyramid_zcml/configure.zcml |
|
324 ... |
|
325 2018-01-14 11:37:54,833 DEBUG [PyAMS (utils)][MainThread] Registering utility <class 'pyams_utils.timezone.utility.TimezoneGenerationsChecker'> named 'PyAMS timezone' providing <InterfaceClass pyams_utils.interfaces.site.ISiteGenerations> |
|
326 2018-01-14 11:37:54,834 DEBUG [PyAMS (utils)][MainThread] Registering class <class 'pyams_utils.timezone.vocabulary.TimezonesVocabulary'> as vocabulary with name "PyAMS timezones" |
|
327 2018-01-14 11:37:54,835 DEBUG [PyAMS (utils)][MainThread] Registering adapter <class 'pyams_utils.traversing.PathElementsAdapter'> for (<InterfaceClass zope.location.interfaces.IContained>,) providing <InterfaceClass pyams_utils.interfaces.traversing.IPathElements> |
|
328 2018-01-14 11:37:54,839 DEBUG [PyAMS (utils)][MainThread] Registering adapter <class 'pyams_utils.url.AbsoluteUrlTalesExtension'> for (<InterfaceClass zope.interface.Interface>, <InterfaceClass zope.interface.Interface>, <InterfaceClass zope.interface.Interface>) providing <InterfaceClass pyams_utils.interfaces.tales.ITALESExtension> |
|
329 2018-01-14 11:37:54,847 DEBUG [PyAMS (utils)][MainThread] Registering adapter <class 'pyams_utils.widget.decimal.DottedDecimalDataConverter'> for (<InterfaceClass pyams_utils.schema.IDottedDecimalField>, <InterfaceClass z3c.form.interfaces.IWidget>) providing <InterfaceClass z3c.form.interfaces.IDataConverter> |
|
330 2018-01-14 11:37:54,942 DEBUG [PyAMS (utils)][MainThread] Registering adapter <class 'pyams_utils.zmi.intids.IntIdsLengthAdapter'> for (<InterfaceClass zope.intid.interfaces.IIntIds>,) providing <InterfaceClass pyams_utils.interfaces.intids.IIndexLength> |
|
331 2018-01-14 11:37:54,943 DEBUG [PyAMS (pagelet)][MainThread] Registering pagelet view "properties.html" for <InterfaceClass zope.intid.interfaces.IIntIds> (<class 'pyams_utils.zmi.intids.IntIdsPropertiesDisplayForm'>) |
|
332 2018-01-14 11:37:54,949 DEBUG [PyAMS (pagelet)][MainThread] Registering pagelet view "properties.html" for <InterfaceClass pyams_utils.interfaces.timezone.IServerTimezone> (<class 'pyams_utils.zmi.timezone.ServerTimezonePropertiesEditForm'>) |
|
333 2018-01-14 11:37:54,980 DEBUG [PyAMS (utils)][MainThread] Registering class <class 'pyams_utils.zodb.ZEOConnectionVocabulary'> as vocabulary with name "PyAMS ZEO connections" |
|
334 2018-01-14 11:37:54,981 DEBUG [PyAMS (utils)][MainThread] Registering class <class 'pyams_utils.zodb.ZODBConnectionVocabulary'> as vocabulary with name "PyAMS ZODB connections" |
|
335 2018-01-14 11:37:55,015 DEBUG [PyAMS (pagelet)][MainThread] Registering pagelet view "add-zeo-connection.html" for <InterfaceClass zope.component.interfaces.ISite> (<class 'pyams_utils.zmi.zeo.ZEOConnectionAddForm'>) |
|
336 2018-01-14 11:37:55,016 DEBUG [PyAMS (utils)][MainThread] Registering adapter <class 'pyams_utils.zmi.zeo.ZEOConnectionNameAdapter'> for (<InterfaceClass pyams_utils.interfaces.zeo.IZEOConnection>, <InterfaceClass pyams_zmi.layer.IAdminLayer>) providing <InterfaceClass pyams_skin.interfaces.container.ITableElementName> |
|
337 2018-01-14 11:37:55,017 DEBUG [PyAMS (pagelet)][MainThread] Registering pagelet view "properties.html" for <InterfaceClass pyams_utils.interfaces.zeo.IZEOConnection> (<class 'pyams_utils.zmi.zeo.ZEOConnectionPropertiesEditForm'>) |
|
338 ... |
|
339 2018-01-14 11:41:13,214 DEBUG [PyAMS (utils)][MainThread] Registering adapter <class 'pyams_default_theme.skin.ResourcesAdapter'> for (<InterfaceClass zope.interface.Interface>, <InterfaceClass pyams_default_theme.layer.IPyAMSDefaultLayer>, <InterfaceClass zope.interface.Interface>) providing <InterfaceClass pyams_skin.interfaces.resources.IResources> |
|
340 2018-01-14 11:43:36,665 INFO [ZEO.ClientStorage][MainThread] [('127.0.0.1', 8100)] ClientStorage (pid=29335) created RW/normal for storage: 'pyams' |
|
341 2018-01-14 11:43:36,665 INFO [ZEO.cache][MainThread] created temporary cache file 9 |
|
342 2018-01-14 11:43:36,673 DEBUG [asyncio][[('127.0.0.1', 8100)] zeo client networking thread] Using selector: EpollSelector |
|
343 2018-01-14 11:43:36,674 DEBUG [ZEO.ClientStorage.check_blob_cache][[('127.0.0.1', 8100)] zeo client check blob size thread] 140712483907328 Checking blob cache size. (target: 966367642) |
|
344 2018-01-14 11:43:36,674 DEBUG [ZEO.asyncio.client][[('127.0.0.1', 8100)] zeo client networking thread] disconnected <ZEO.asyncio.client.Client object at 0x7ffa54058860> None |
|
345 2018-01-14 11:43:36,675 DEBUG [ZEO.ClientStorage.check_blob_cache][[('127.0.0.1', 8100)] zeo client check blob size thread] 140712483907328 blob cache size: 0 |
|
346 2018-01-14 11:43:36,675 DEBUG [ZEO.asyncio.client][[('127.0.0.1', 8100)] zeo client networking thread] try_connecting |
|
347 2018-01-14 11:43:36,675 DEBUG [ZEO.ClientStorage.check_blob_cache][[('127.0.0.1', 8100)] zeo client check blob size thread] 140712483907328 --> |
|
348 2018-01-14 11:43:36,677 INFO [ZEO.asyncio.base][[('127.0.0.1', 8100)] zeo client networking thread] Connected Protocol(('127.0.0.1', 8100), 'pyams', False) |
|
349 2018-01-14 11:43:36,679 INFO [ZEO.ClientStorage][[('127.0.0.1', 8100)] zeo client networking thread] [('127.0.0.1', 8100)] Connected to storage: ('localhost', 8100) |
|
350 2018-01-14 11:43:36,682 DEBUG [txn.140713340237568][MainThread] new transaction |
|
351 2018-01-14 11:43:36,683 DEBUG [txn.140713340237568][MainThread] commit |
|
352 2018-01-14 11:43:36,690 INFO [PyAMS (scheduler][MainThread] Starting tasks scheduler <SchedulerProcess(SchedulerProcess-1, initial)>... |
|
353 2018-01-14 11:43:36,698 INFO [PyAMS (scheduler][MainThread] Started tasks scheduler with PID 29361. |
|
354 2018-01-14 11:43:36,701 INFO [apscheduler.scheduler][MainThread] Scheduler started |
|
355 2018-01-14 11:43:36,702 DEBUG [apscheduler.scheduler][APScheduler] Looking for jobs to run |
|
356 2018-01-14 11:43:36,704 DEBUG [apscheduler.scheduler][APScheduler] No jobs; waiting until a job is added |
|
357 2018-01-14 11:43:36,719 INFO [ZEO.ClientStorage][MainThread] [('127.0.0.1', 8100)] ClientStorage (pid=29335) created RW/normal for storage: 'pyams' |
|
358 2018-01-14 11:43:36,720 INFO [ZEO.cache][MainThread] created temporary cache file 15 |
|
359 2018-01-14 11:43:36,724 DEBUG [asyncio][[('127.0.0.1', 8100)] zeo client networking thread] Using selector: EpollSelector |
|
360 2018-01-14 11:43:36,725 DEBUG [ZEO.asyncio.client][[('127.0.0.1', 8100)] zeo client networking thread] disconnected <ZEO.asyncio.client.Client object at 0x7ffa557e8b00> None |
|
361 2018-01-14 11:43:36,726 DEBUG [ZEO.asyncio.client][[('127.0.0.1', 8100)] zeo client networking thread] try_connecting |
|
362 2018-01-14 11:43:36,727 DEBUG [ZEO.ClientStorage.check_blob_cache][[('127.0.0.1', 8100)] zeo client check blob size thread] 140712483907328 Checking blob cache size. (target: 966367642) |
|
363 2018-01-14 11:43:36,728 INFO [ZEO.asyncio.base][[('127.0.0.1', 8100)] zeo client networking thread] Connected Protocol(('127.0.0.1', 8100), 'pyams', False) |
|
364 2018-01-14 11:43:36,729 DEBUG [ZEO.ClientStorage.check_blob_cache][[('127.0.0.1', 8100)] zeo client check blob size thread] 140712483907328 blob cache size: 0 |
|
365 2018-01-14 11:43:36,729 DEBUG [ZEO.ClientStorage.check_blob_cache][[('127.0.0.1', 8100)] zeo client check blob size thread] 140712483907328 --> |
|
366 2018-01-14 11:43:36,732 INFO [ZEO.ClientStorage][[('127.0.0.1', 8100)] zeo client networking thread] [('127.0.0.1', 8100)] Connected to storage: ('localhost', 8100) |
|
367 2018-01-14 11:43:36,735 DEBUG [txn.140713340237568][MainThread] new transaction |
|
368 2018-01-14 11:43:36,736 DEBUG [txn.140713340237568][MainThread] commit |
|
369 2018-01-14 11:43:36,743 INFO [PyAMS (media)][MainThread] Starting medias converter <MediaConversionProcess(MediaConversionProcess-2, initial)>... |
|
370 2018-01-14 11:43:36,751 INFO [PyAMS (media)][MainThread] Started medias converter with PID 29367. |
|
371 Starting server in PID 29335. |
|
372 Serving on http://0.0.0.0:6543 |
|
373 |
|
374 |
|
375 From this point, you can launch a browser and open URL *http://127.0.0.1:6543/admin* to get access to PyAMS |
|
376 management interface; default login is "admin/admin", that you may change as soon as possible (see |
|
377 :ref:`pyams_security`)!!. |
|