[HOWTO] Captive portal + FreeRADIUS + local MySQL user friendly single step
-
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).
-
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 -
I think I wrote about this in section 2.1.2.
Anyway, thanks for the feedback. -
Ahhh I see your right. I must have missed that some how. Anyway thanks again!
-
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
-
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?
-
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.
-
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!
-
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 repositoriesAlmost 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
-
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. -
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
-
What's your output of php -m ?
-
[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
-
It seems that the mysql extension is there.
Can you please restart php-fpm ? And if it does not work, restart pfSense ? -
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?
-
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.
-
Many thanks - all working now.
-
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
-
As stated above, you have the php mysql extension.
Please restart php-fpm from console and try again. -
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