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

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

    Captive Portal
    47
    154
    104.1k
    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.
    • 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
                                          • B
                                            beewolf
                                            last edited by

                                            My system has been running fine for a week - I had to restart to get the cables sorted neatly and now whatever I do I cant get Freeradius to start.  There is another post here:

                                            https://forum.pfsense.org/index.php?topic=109775.msg611138#msg611138

                                            with similar symptoms to what I am getting and I have tried the suggestions in that but no difference.

                                            I realise that this is probably a freeradius/pfsense problem but really need some help sorting it - I don't want to have to rebuild again!

                                            Many thanks

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