Netgate Discussion Forum
    • Categories
    • Recent
    • Tags
    • Popular
    • Users
    • Search
    • Register
    • Login

    [HOWTO] Captive portal + FreeRADIUS + local MySQL user friendly single step

    Scheduled Pinned Locked Moved Captive Portal
    154 Posts 47 Posters 105.7k 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.
    • I
      Ivart
      last edited by

      Thanks deajan for the post with detailed information to implement self signed captive portal. My CP was working fine in 2.2 now I can´t install needed packages.
      pkg version (pkg -v) is 1.6.2, pkg install mysql56-server creates a loop with these messages

      
      Updating FreeBSD repository catalogue...
      FreeBSD repository is up-to-date.
      Updating pfSense-core repository catalogue...
      pfSense-core repository is up-to-date.
      Updating pfSense repository catalogue...
      pfSense repository is up-to-date.
      All repositories are up-to-date.
      New version of pkg detected; it needs to be installed first.
      Checking integrity... done (0 conflicting)
      The most recent version of packages are already installed
      
      

      I´ve tried pkg install pkg-1.7.2 with the same result

      1 Reply Last reply Reply Quote 0
      • D
        deajan
        last edited by

        Hello,

        This is more a pfSense than a captive portal problem.
        Are you still running V2.2 ?

        Check the contents of /usr/local/etc/pkg/pfSense.conf and see if FreeBSD is enabled (disable it after installing mysql).

        NetPOWER.fr - some opensource stuff for IT people

        1 Reply Last reply Reply Quote 0
        • M
          MasterBill
          last edited by

          Thanks so much Deajan for this code! I just wanted to give a heads up that I ran into an issue with the firmware 2.3-RELEASE. When data was submitted I was getting a Fatal error: Call to undefined function mysql_connect(). I was pushing this data to a remote Mysql server.

          After looking around I found out from a post that php56-mysql needs to be installed manually on 2.3 with```
          pkg install php56-mysql

          1 Reply Last reply Reply Quote 0
          • D
            deajan
            last edited by

            I think I wrote about this in section 2.1.2.
            Anyway, thanks for the feedback.

            NetPOWER.fr - some opensource stuff for IT people

            1 Reply Last reply Reply Quote 0
            • M
              MasterBill
              last edited by

              Ahhh I see your right. I must have missed that some how. Anyway thanks again!

              1 Reply Last reply Reply Quote 0
              • N
                novensiles
                last edited by

                Hallo,

                I did all fine but get

                PHP ERROR: Type: 1, File: /var/etc/captiveportal_oberemuehle.html, Line: 126, Message: Call to undefined function mysql_connect()

                after typed in registring datas and send it.

                php56-mysql  is Installed

                All Packages Updated + Upgraded

                1 Reply Last reply Reply Quote 0
                • J
                  jmonline
                  last edited by

                  On a brand new pfsense 2.3-RELEASE (amd64)

                  I have edited /usr/local/etc/pkg/repos/pfSense.conf and set the following value:

                  FreeBSD: { enabled: yes }
                  

                  I have then run :

                  pkg update
                  

                  Then:

                  pkg install nano git
                  

                  This then results in:

                  
                  pkg install nano git
                  Updating FreeBSD repository catalogue...
                  FreeBSD repository is up-to-date.
                  Updating pfSense-core repository catalogue...
                  pfSense-core repository is up-to-date.
                  Updating pfSense repository catalogue...
                  pfSense repository is up-to-date.
                  All repositories are up-to-date.
                  New version of pkg detected; it needs to be installed first.
                  The following 1 package(s) will be affected (of 0 checked):
                  
                  Installed packages to be REINSTALLED:
                          pkg-1.6.2 [pfSense]
                  
                  2 MiB to be downloaded.
                  
                  Proceed with this action? [y/N]: y
                  Fetching pkg-1.6.2.txz: 100%    2 MiB 632.9kB/s    00:04
                  Checking integrity... done (0 conflicting)
                  [1/1] Reinstalling pkg-1.6.2...
                  You may need to manually remove /usr/local/etc/pkg.conf if it is no longer needed.
                  [1/1] Extracting pkg-1.6.2: 100%
                  Message from pkg-1.6.2:
                  If you are upgrading from the old package format, first run:
                  
                    # pkg2ng
                  Updating FreeBSD repository catalogue...
                  FreeBSD repository is up-to-date.
                  Updating pfSense-core repository catalogue...
                  pfSense-core repository is up-to-date.
                  Updating pfSense repository catalogue...
                  pfSense repository is up-to-date.
                  All repositories are up-to-date.
                  New version of pkg detected; it needs to be installed first.
                  Checking integrity... done (0 conflicting)
                  The most recent version of packages are already installed
                  Updating FreeBSD repository catalogue...
                  FreeBSD repository is up-to-date.
                  Updating pfSense-core repository catalogue...
                  pfSense-core repository is up-to-date.
                  Updating pfSense repository catalogue...
                  pfSense repository is up-to-date.
                  All repositories are up-to-date.
                  New version of pkg detected; it needs to be installed first.
                  
                  

                  This then loops over and over and does not stop.

                  The same then happens if I run

                  pkg install mysql56-server
                  

                  What am I missing please?

                  1 Reply Last reply Reply Quote 0
                  • N
                    nimamhd
                    last edited by

                    This is the bug of pkg and will fix in pkg 1.7.2:

                    https://github.com/freebsd/pkg/issues/1303

                    "" pkg infinite loop with multiple repos containing different versions of pkg ""

                    you can comment out all other repo and install what you want, then restore the configuration to default.

                    after install, the pkg will update to the last version that may cause the pfsense package system stop working, to resolve this:

                    run:

                    "pkg delete -f pkg" and install it again with pfsense repo.

                    1 Reply Last reply Reply Quote 0
                    • ?
                      A Former User
                      last edited by

                      Hello Ozy, thank you so much for taking the time to do this. I can not stress how helpful this is!

                      I know this is a lot to ask but if anyone is considering to make a how to video I would really appreciate this. I am not so fluent in this type of configuration. Thank you!

                      1 Reply Last reply Reply Quote 1
                      • B
                        beewolf
                        last edited by

                        I have set the FreeBSD: { enabled: yes } but when I try to install the mysql56-server I get:

                        Updating pfSense-core repository catalogue…
                        pfSense-core repository is up-to-date.
                        Updating pfSense repository catalogue...
                        pfSense repository is up-to-date.
                        All repositories are up-to-date.
                        pkg: No packages available to install matching 'mysql56-server' have been found in the repositories

                        Almost as if it is not looking in the FreeBSD repo.

                        I have restarted after enabling FreeBSD and gone back in to check that it is enabled.

                        Any ideas?  Thanks

                        1 Reply Last reply Reply Quote 0
                        • D
                          deajan
                          last edited by

                          Hi,

                          I've updated the captive portal code a couple of days ago with some bug fixes and minor improvements.
                          Sorry for not having answered earlier, been in holidays :)

                          @novensiles: can you give the output of "php -m" ?
                          @abebraham: sorry, but I think the text howto is enough. It's also easier to update it than to update a video. Feel free to ask for help here on the forum or github.
                          @beewolf: Repo files slightly changed between 2.3-RC and 2.3 final. I've updated the doc for this.

                          NetPOWER.fr - some opensource stuff for IT people

                          1 Reply Last reply Reply Quote 0
                          • B
                            beewolf
                            last edited by

                            Many thanks for that - all installed fine with those changes but I am getting the following error on trying to log in:

                            PHP ERROR: Type 1, File /var/etc/captiveortal_guest_wifi.html, Line 127, Message: Call to undefined functionmysql_connect()

                            Probably something I have done but am struggling to find what exactly.  Any ideas?  Thanks

                            1 Reply Last reply Reply Quote 0
                            • D
                              deajan
                              last edited by

                              What's your output of php -m ?

                              NetPOWER.fr - some opensource stuff for IT people

                              1 Reply Last reply Reply Quote 0
                              • B
                                beewolf
                                last edited by

                                [2.3.1-RELEASE][root@pfSense.skh]/root/pfsense-cp-auth-onestep/sql: php -m

                                
                                bcmath
                                bz2
                                Core
                                ctype
                                curl
                                date
                                dom
                                ereg
                                filter
                                gettext
                                hash
                                json
                                ldap
                                libxml
                                mbstring
                                mcrypt
                                mhash
                                mysql
                                mysqlnd
                                openssl
                                pcntl
                                pcre
                                PDO
                                pdo_sqlite
                                pfSense
                                posix
                                radius
                                readline
                                Reflection
                                rrd
                                session
                                shmop
                                SimpleXML
                                sockets
                                SPL
                                sqlite3
                                ssh2
                                standard
                                suhosin
                                sysvmsg
                                sysvsem
                                sysvshm
                                tokenizer
                                xdebug
                                xml
                                xmlreader
                                xmlwriter
                                Zend OPcache
                                zlib
                                zmq
                                
                                [Zend Modules]
                                Xdebug
                                Zend OPcache
                                
                                
                                1 Reply Last reply Reply Quote 0
                                • D
                                  deajan
                                  last edited by

                                  It seems that the mysql extension is there.
                                  Can you please restart php-fpm ? And if it does not work, restart pfSense ?

                                  NetPOWER.fr - some opensource stuff for IT people

                                  1 Reply Last reply Reply Quote 0
                                  • B
                                    beewolf
                                    last edited by

                                    Yes, thank you that worked - I should have tried that first!!

                                    All seems to be working now in a test environment - just one thing, Freeradius needs to be started manually after a restart.  Is this usual?  Would it be possible to add the service to the MySQL cron job so it definitely starts automatically?

                                    1 Reply Last reply Reply Quote 0
                                    • D
                                      deajan
                                      last edited by

                                      I'll add a note about rebooting to the guide.

                                      As for the freeradius service, it depends on mysql service.
                                      As there is no loading order, sometimes freeradius loads before mysql and may fail.

                                      In order to get FreeRADIUS working all the time, I've setup the watchdog package to restart failing services.

                                      NetPOWER.fr - some opensource stuff for IT people

                                      1 Reply Last reply Reply Quote 0
                                      • B
                                        beewolf
                                        last edited by

                                        Many thanks - all working now.

                                        1 Reply Last reply Reply Quote 0
                                        • N
                                          novensiles
                                          last edited by

                                          
                                          bcmath
                                          bz2
                                          Core
                                          ctype
                                          curl
                                          date
                                          dom
                                          ereg
                                          filter
                                          gettext
                                          hash
                                          json
                                          ldap
                                          libxml
                                          mbstring
                                          mcrypt
                                          mhash
                                          mysql
                                          mysqli
                                          mysqlnd
                                          openssl
                                          pcntl
                                          pcre
                                          PDO
                                          pdo_sqlite
                                          pfSense
                                          posix
                                          radius
                                          readline
                                          Reflection
                                          rrd
                                          session
                                          shmop
                                          SimpleXML
                                          sockets
                                          SPL
                                          sqlite3
                                          ssh2
                                          standard
                                          suhosin
                                          sysvmsg
                                          sysvsem
                                          sysvshm
                                          tokenizer
                                          xdebug
                                          xml
                                          xmlreader
                                          xmlwriter
                                          Zend OPcache
                                          zlib
                                          zmq
                                          
                                          [Zend Modules]
                                          Xdebug
                                          Zend OPcache
                                          
                                          
                                          1 Reply Last reply Reply Quote 0
                                          • D
                                            deajan
                                            last edited by

                                            As stated above, you have the php mysql extension.
                                            Please restart php-fpm from console and try again.

                                            NetPOWER.fr - some opensource stuff for IT people

                                            1 Reply Last reply Reply Quote 0
                                            • First post
                                              Last post
                                            Copyright 2025 Rubicon Communications LLC (Netgate). All rights reserved.