ML
    • Recent
    • Categories
    • Tags
    • Popular
    • Users
    • Groups
    • Register
    • Login

    Installing Frappe ERPNext on CentOS 7

    Scheduled Pinned Locked Moved IT Discussion
    centoscentos 7linuxerpnexterpfrappe
    36 Posts 6 Posters 11.8k Views
    Loading More Posts
    • Oldest to Newest
    • Newest to Oldest
    • Most Votes
    Reply
    • Reply as topic
    Log in to reply
    This topic has been deleted. Only users with topic management privileges can see it.
    • JaredBuschJ
      JaredBusch @scottalanmiller
      last edited by

      @scottalanmiller said in Installing Frappe ERPNext on CentOS 7:

      @msff-amman-Itofficer said in Installing Frappe ERPNext on CentOS 7:

      @stacksofplates said in Installing Frappe ERPNext on CentOS 7:

      Did they remove their install script? If I remember right it used to handle the NGINX setup. You just had to pass whatever the production option was.

      +1 thanks for this, will play with it tonight.

      whats is the point of putting an NGinx proxy infont of this app in prod ? for load-balancing perhaps ?

      cause I usually run my web apps naked, as they are ...

      Nginx provides some protection, flexibility and caching. Often adds a bit of speed and makes things like SSL much easier and more standard. And in a lot of cases SSL is not supported by apps so Nginx is a necessity.

      To me the bigger reason for a proxy in front of an app is to let the app remain on default ports. NodeBB runs on 4567 for example. Of course you can change it to 443 or 80. But that is not the design concept. Why go against design?

      1 Reply Last reply Reply Quote 2
      • stacksofplatesS
        stacksofplates @Emad R
        last edited by stacksofplates

        @msff-amman-Itofficer said in Installing Frappe ERPNext on CentOS 7:

        @stacksofplates said in Installing Frappe ERPNext on CentOS 7:

        Did they remove their install script? If I remember right it used to handle the NGINX setup. You just had to pass whatever the production option was.

        +1 thanks for this, will play with it tonight.

        whats is the point of putting an NGinx proxy infont of this app in prod ? for load-balancing perhaps ?

        cause I usually run my web apps naked, as they are ...

        I usually default to using NGINX instead of Apache for most things. All of the sites I have running right now are using NGINX as the server. It's lighter and better at caching.

        Having it in front of other apps allows you to keep the original port of the app, run more than one app per port, and adds some security ( with or without SSL).

        1 Reply Last reply Reply Quote 0
        • A
          ahmed.ramadan
          last edited by

          13:41:53 redis_cache.1 |
          13:41:53 redis_cache.1 | 24407:M 03 Apr 13:41:53.286 # WARNING: The TCP backlog setting of 511 cannot be enforced because /proc/sys/net/core/somaxconn is set to the lower value of 128.
          13:41:53 redis_cache.1 | 24407:M 03 Apr 13:41:53.286 # Server started, Redis version 3.2.3
          13:41:53 redis_cache.1 | 24407:M 03 Apr 13:41:53.286 # WARNING overcommit_memory is set to 0! Background save may fail under low memory condition. To fix this issue add 'vm.overcommit_memory = 1' to /etc/sysctl.conf and then reboot or run the command 'sysctl vm.overcommit_memory=1' for this to take effect.
          13:41:53 redis_cache.1 | 24407:M 03 Apr 13:41:53.286 # WARNING you have Transparent Huge Pages (THP) support enabled in your kernel. This will create latency and memory usage issues with Redis. To fix this issue run the command 'echo never > /sys/kernel/mm/transparent_hugepage/enabled' as root, and add it to your /etc/rc.local in order to retain the setting after a reboot. Redis must be restarted after THP is disabled.
          13:41:53 redis_cache.1 | 24407:M 03 Apr 13:41:53.286 * The server is now ready to accept connections on port 13000
          13:41:55 socketio.1 | listening on *: 9000
          13:42:00 worker_short.1 | 13:42:00 RQ worker u'rq:worker:51.24410.short' started, version 0.7.1
          13:42:00 worker_short.1 | 13:42:00 Cleaning registries for queue: short
          13:42:00 worker_short.1 | 13:42:00
          13:42:00 worker_short.1 | 13:42:00 *** Listening on short...
          13:42:00 watch.1 | Wrote ./assets/js/report.min.js - 256k
          13:42:00 watch.1 | Wrote ./assets/js/erpnext-web.min.js - 4k
          13:42:00 watch.1 | Wrote ./assets/css/frappe-web.css - 64k
          13:42:00 watch.1 | Wrote ./assets/css/web_form.css - 24k
          13:42:00 watch.1 | Wrote ./assets/css/desk.min.css - 279k
          13:42:00 watch.1 | Wrote ./assets/js/frappe-web.min.js - 141k
          13:42:00 watch.1 | Wrote ./assets/css/list.min.css - 14k
          13:42:00 watch.1 | Wrote ./assets/css/report.min.css - 8k
          13:42:00 watch.1 | Wrote ./assets/js/list.min.js - 150k
          13:42:00 watch.1 | Wrote ./assets/css/erpnext.css - 7k
          13:42:00 web.1 | Traceback (most recent call last):
          13:42:00 web.1 | File "/usr/lib64/python2.7/runpy.py", line 162, in _run_module_as_main
          13:42:00 web.1 | "main", fname, loader, pkg_name)
          13:42:00 web.1 | File "/usr/lib64/python2.7/runpy.py", line 72, in _run_code
          13:42:00 web.1 | exec code in run_globals
          13:42:00 web.1 | File "/home/frappe/frappe-bench/apps/frappe/frappe/utils/bench_helper.py", line 79, in <module>
          13:42:00 web.1 | main()
          13:42:00 web.1 | File "/home/frappe/frappe-bench/apps/frappe/frappe/utils/bench_helper.py", line 16, in main
          13:42:00 web.1 | click.Group(commands=commands)(prog_name='bench')
          13:42:00 web.1 | File "/home/frappe/frappe-bench/env/lib/python2.7/site-packages/click/core.py", line 722, in call
          13:42:00 web.1 | return self.main(*args, **kwargs)
          13:42:00 web.1 | File "/home/frappe/frappe-bench/env/lib/python2.7/site-packages/click/core.py", line 697, in main
          13:42:00 web.1 | rv = self.invoke(ctx)
          13:42:00 web.1 | File "/home/frappe/frappe-bench/env/lib/python2.7/site-packages/click/core.py", line 1066, in invoke
          13:42:00 web.1 | return _process_result(sub_ctx.command.invoke(sub_ctx))
          13:42:00 web.1 | File "/home/frappe/frappe-bench/env/lib/python2.7/site-packages/click/core.py", line 1066, in invoke
          13:42:00 web.1 | return _process_result(sub_ctx.command.invoke(sub_ctx))
          13:42:00 web.1 | File "/home/frappe/frappe-bench/env/lib/python2.7/site-packages/click/core.py", line 895, in invoke
          13:42:00 web.1 | return ctx.invoke(self.callback, **ctx.params)
          13:42:00 web.1 | File "/home/frappe/frappe-bench/env/lib/python2.7/site-packages/click/core.py", line 535, in invoke
          13:42:00 web.1 | return callback(*args, **kwargs)
          13:42:00 web.1 | File "/home/frappe/frappe-bench/env/lib/python2.7/site-packages/click/decorators.py", line 17, in new_func
          13:42:00 web.1 | return f(get_current_context(), *args, **kwargs)
          13:42:00 web.1 | File "/home/frappe/frappe-bench/apps/frappe/frappe/commands/init.py", line 24, in _func
          13:42:00 web.1 | ret = f(frappe._dict(ctx.obj), *args, **kwargs)
          13:42:00 web.1 | File "/home/frappe/frappe-bench/apps/frappe/frappe/commands/utils.py", line 342, in serve
          13:42:00 web.1 | frappe.app.serve(port=port, profile=profile, site=site, sites_path='.')
          13:42:00 web.1 | File "/home/frappe/frappe-bench/apps/frappe/frappe/app.py", line 220, in serve
          13:42:00 web.1 | use_debugger=True, use_evalex=True, threaded=True)
          13:42:00 web.1 | File "/home/frappe/frappe-bench/env/lib/python2.7/site-packages/werkzeug/serving.py", line 717, in run_simple
          13:42:00 web.1 | s.bind((hostname, port))
          13:42:00 web.1 | File "/usr/lib64/python2.7/socket.py", line 224, in meth
          13:42:00 web.1 | return getattr(self._sock,name)(*args)
          13:42:00 web.1 | socket.error: [Errno 98] Address already in use
          13:42:00 watch.1 | Wrote ./assets/js/form.min.js - 190k
          13:42:00 watch.1 | Wrote ./assets/js/web_form.min.js - 247k
          13:42:00 watch.1 | Wrote ./assets/js/dialog.min.js - 86k
          13:42:00 system | web.1 stopped (rc=1)
          13:42:00 system | sending SIGTERM to redis_socketio.1 (pid 24390)
          13:42:00 system | sending SIGTERM to worker_long.1 (pid 24397)
          13:42:00 system | sending SIGTERM to watch.1 (pid 24393)
          13:42:00 system | sending SIGTERM to redis_queue.1 (pid 24399)
          13:42:00 system | sending SIGTERM to schedule.1 (pid 24403)
          13:42:00 system | sending SIGTERM to worker_default.1 (pid 24404)
          13:42:00 system | sending SIGTERM to socketio.1 (pid 24405)
          13:42:00 system | sending SIGTERM to redis_cache.1 (pid 24407)
          13:42:00 system | sending SIGTERM to worker_short.1 (pid 24410)
          13:42:00 redis_cache.1 | 24407:signal-handler (1491219720) Received SIGTERM scheduling shutdown...
          13:42:00 redis_queue.1 | 24399:signal-handler (1491219720) Received SIGTERM scheduling shutdown...
          13:42:00 redis_socketio.1 | 24390:signal-handler (1491219720) Received SIGTERM scheduling shutdown...
          13:42:00 worker_short.1 | 13:42:00 Warm shut down requested
          13:42:00 system | socketio.1 stopped (rc=-15)
          13:42:00 system | worker_long.1 stopped (rc=-15)
          13:42:00 system | worker_default.1 stopped (rc=-15)
          13:42:00 system | schedule.1 stopped (rc=-15)
          13:42:00 redis_socketio.1 | 24390:M 03 Apr 13:42:00.362 # User requested shutdown...
          13:42:00 redis_socketio.1 | 24390:M 03 Apr 13:42:00.362 * Removing the pid file.
          13:42:00 redis_socketio.1 | 24390:M 03 Apr 13:42:00.362 # Redis is now ready to exit, bye bye...
          13:42:00 system | redis_socketio.1 stopped (rc=0)
          13:42:00 system | watch.1 stopped (rc=-15)
          13:42:00 redis_queue.1 | 24399:M 03 Apr 13:42:00.388 # User requested shutdown...
          13:42:00 redis_queue.1 | 24399:M 03 Apr 13:42:00.388 * Removing the pid file.
          13:42:00 redis_queue.1 | 24399:M 03 Apr 13:42:00.388 # Redis is now ready to exit, bye bye...
          13:42:00 system | redis_queue.1 stopped (rc=0)
          13:42:00 redis_cache.1 | 24407:M 03 Apr 13:42:00.399 # User requested shutdown...
          13:42:00 redis_cache.1 | 24407:M 03 Apr 13:42:00.399 * Removing the pid file.
          13:42:00 redis_cache.1 | 24407:M 03 Apr 13:42:00.399 # Redis is now ready to exit, bye bye...
          13:42:00 system | redis_cache.1 stopped (rc=0)
          13:42:00 system | worker_short.1 stopped (rc=0)
          [frappe@51 frappe-bench]$

          please help me

          1 Reply Last reply Reply Quote 0
          • scottalanmillerS
            scottalanmiller
            last edited by

            Check the Redis log, why did Redis feel that it should exit?

            A 1 Reply Last reply Reply Quote 0
            • A
              ahmed.ramadan @scottalanmiller
              last edited by

              @scottalanmiller

              nothing in redis log

              scottalanmillerS 1 Reply Last reply Reply Quote 0
              • scottalanmillerS
                scottalanmiller @ahmed.ramadan
                last edited by

                @ahmed.ramadan said in Installing Frappe ERPNext on CentOS 7:

                @scottalanmiller

                nothing in redis log

                It's blank?

                A 1 Reply Last reply Reply Quote 0
                • A
                  ahmed.ramadan @scottalanmiller
                  last edited by

                  @scottalanmiller yes

                  1 Reply Last reply Reply Quote 0
                  • scottalanmillerS
                    scottalanmiller
                    last edited by

                    Try running Redis and not ERPNext. See if it logs correctly.

                    1 Reply Last reply Reply Quote 0
                    • stacksofplatesS
                      stacksofplates
                      last edited by stacksofplates

                      Might need to enable verbose logging. I've never done anything with Redis, but if it's like some other services, you have to manually turn on debug logging.

                      scottalanmillerS 1 Reply Last reply Reply Quote 0
                      • scottalanmillerS
                        scottalanmiller @stacksofplates
                        last edited by

                        @stacksofplates said in Installing Frappe ERPNext on CentOS 7:

                        Might need to enable verbose logging. I've never done anything with Redis, but if it's like some other services, you have to manually turn on debug logging.

                        It should log starting up and stuff, at least.

                        stacksofplatesS 1 Reply Last reply Reply Quote 0
                        • stacksofplatesS
                          stacksofplates @scottalanmiller
                          last edited by

                          @scottalanmiller said in Installing Frappe ERPNext on CentOS 7:

                          @stacksofplates said in Installing Frappe ERPNext on CentOS 7:

                          Might need to enable verbose logging. I've never done anything with Redis, but if it's like some other services, you have to manually turn on debug logging.

                          It should log starting up and stuff, at least.

                          If I remember right, SSSD doesn't log really anything unless you enable it in the config. I mean syslog will spit something out saying it's not running, but the logs in /var/log/sssd don't have any info.

                          Just a thought.

                          1 Reply Last reply Reply Quote 0
                          • stacksofplatesS
                            stacksofplates
                            last edited by

                            As an aside, I never had really any luck running ERPNext with CentOS, only with Ubuntu. The script seemed to always have issues.

                            One of the main reasons why I stopped using it. It was too much work keeping up to date with it, and reinstalling was always a pain.

                            1 Reply Last reply Reply Quote 0
                            • scottalanmillerS
                              scottalanmiller
                              last edited by

                              Yes, very easily this is a new update that has broken ERPNext.

                              stacksofplatesS 1 Reply Last reply Reply Quote 0
                              • stacksofplatesS
                                stacksofplates @scottalanmiller
                                last edited by

                                @scottalanmiller said in Installing Frappe ERPNext on CentOS 7:

                                Yes, very easily this is a new update that has broken ERPNext.

                                I was really only using the accounting, so I just switched to Wave. I couldn't handle a part time job making sure their patches worked.

                                scottalanmillerS 1 Reply Last reply Reply Quote 1
                                • scottalanmillerS
                                  scottalanmiller @stacksofplates
                                  last edited by

                                  @stacksofplates said in Installing Frappe ERPNext on CentOS 7:

                                  @scottalanmiller said in Installing Frappe ERPNext on CentOS 7:

                                  Yes, very easily this is a new update that has broken ERPNext.

                                  I was really only using the accounting, so I just switched to Wave. I couldn't handle a part time job making sure their patches worked.

                                  We trialed it and decided not to use it. So after getting it up and running with the script, we've not run it since.

                                  1 Reply Last reply Reply Quote 0
                                  • Emad RE
                                    Emad R
                                    last edited by Emad R

                                    Hi,

                                    I think the guide needs additional steps:

                                    before :
                                    python install.py --develop --user frappe

                                    perhaps add:
                                    systemctl start mariadb
                                    systemctl enable mariadb
                                    mysql_secure_installation

                                    So we can use the root password of mysql when we run the installation script

                                    Also the below needs to be run from the user frappe, so you will need to exit if you are logged in as root, then login as frappe. (you can change the password for this user using passwd frappe)

                                    cd /home/frappe/frappe-bench
                                    bench new-site mysite
                                    bench get-app erpnext https://github.com/frappe/erpnext
                                    bench --site mysite install-app erpnext
                                    bench start &

                                    travisdh1T 1 Reply Last reply Reply Quote 0
                                    • travisdh1T
                                      travisdh1 @Emad R
                                      last edited by

                                      @msff-amman-Itofficer said in Installing Frappe ERPNext on CentOS 7:

                                      perhaps add:
                                      systemctl start mariadb
                                      systemctl enable mariadb
                                      mysql_secure_installation

                                      So we can use the root password of mysql when we run the installation script

                                      Shouldn't ever use the root password for an app. The app is storing that password in plain text somewhere on the system. Instead, create a database and give a new user permission to that database.

                                      SQL Script to create a new database, user, and assign permissions for the database to the user. Replace the agoodpassword with a good password, and save it as something like ~/erpnextdbcreate.sql

                                      CREATE DATABASE erpnext;
                                      CREATE USER 'erpuser'@'localhost' IDENTIFIED BY 'agoodpassword';
                                      GRANT ALL PRIVILEGES ON 'erpnext' . * TO 'erpuser'@'localhost';
                                      

                                      Then after running mysql_secure_installation,

                                      mysql -u root -p >> ~/erpnextdbcreate.sql
                                      
                                      JaredBuschJ 1 Reply Last reply Reply Quote 0
                                      • scottalanmillerS
                                        scottalanmiller
                                        last edited by

                                        Only matters a little when you are talking about a system with only one database. Limited access, full access... same thing.

                                        1 Reply Last reply Reply Quote 0
                                        • JaredBuschJ
                                          JaredBusch @travisdh1
                                          last edited by

                                          @travisdh1 making a sql file is a pain in the ass.

                                          Look at my Nextcloud 11 guide for the simpler way to handle that and securing mariadb.

                                          1 Reply Last reply Reply Quote 1
                                          • 1
                                          • 2
                                          • 2 / 2
                                          • First post
                                            Last post