Bellow you can find all the steps needed to be done in order to build the GNWuorld (X and UWorld) Modules using FreeBSD 13.2 server.
Please keep in mind that the IP Address of the machine used for this HOWTO is 192.168.1.133 and it should be changed with the IP address of the machine where you want to have gnuworld installed.
OK, now let`s proceed....
1. We need to make sure that the server is update - to - date:
- freebsd-update fetch
- freebsd-update install
- pkg update -f
- pkg install nano
- pkg install plocate
- updatedb
- pkg install apache24 php82 php82-gd php82-pgsql php82-xml php82-readline php82-mbstring php82-sqlite3 php82-zip php82-zlib php82-curl php82-phar php82-filter php82-session readline-8.2.1 flex-2.6.4_2 git byacc bison openssl-1.1.1v,1 wget gmake-4.3_2 automake oath-toolkit-2.6.7_3
- sysrc apache24_enable=yes
- service apache24 start
Install PHP82 module for apache:
- pkg install mod_php82
- cp /usr/local/etc/php.ini-production /usr/local/etc/php.ini
- nano /usr/local/etc/php.ini
Save the file and close it.
Run PHP as root:
- sysrc php_fpm_enable=yes
- service php-fpm start
- nano /usr/local/etc/apache24/modules.d/001_mod-php.conf
<IfModule dir_module>
DirectoryIndex index.php index.html
<FilesMatch "\.php$">
SetHandler application/x-httpd-php
</FilesMatch>
<FilesMatch "\.phps$">
SetHandler application/x-httpd-php-source
</FilesMatch>
</IfModule>
Test out the Apache Configuration with the command below:
- apachectl configtest
- apachectl restart
2. Now we proceed with installing composer as root:
- curl -sS https://getcomposer.org/installer | php && mv composer.phar /usr/local/bin/composer
3. Install Postgresql 15 package as root:
- pkg install postgresql15-contrib postgresql15-server
- sysrc postgresql_enable="YES"
- /usr/local/etc/rc.d/postgresql initdb -A trust -E=SQL_ASCII
- /usr/local/etc/rc.d/postgresql start
- /usr/local/etc/rc.d/postgresql status
/usr/local/bin/postgres "-D" "/var/db/postgres/data15"
/var/db/postgres/data15 - is the data folder, hosting new db-s and current running pg_hba.conf file.
- nano /var/db/postgres/data15/pg_hba.conf
- Host all all 192.168.1.133/32 trust
Open postgresql conf file and set the host/ip that pgsql runs under:
- nano /var/db/postgres/data15/postgresql.conf
Save and close the file
Restart pgsql server:
- service postgresql restart
- service postgresql enable
- su - postgres
- psql
- create user gnuworld;
- CREATE DATABASE local_db with OWNER='gnuworld' ENCODING='SQL_ASCII' LC_COLLATE='en_US.UTF-8' LC_CTYPE='en_US.UTF-8' TEMPLATE=template0;
postgres=# \l
List of databases
Name | Owner | Encoding | Collate | Ctype | ICU Locale | Locale Provider | Access privileges
-----------+----------+-----------+-------------+-------------+------------+-----------------+-----------------------
local_db | gnuworld | SQL_ASCII | en_US.UTF-8 | en_US.UTF-8 | | libc |
postgres | postgres | SQL_ASCII | C | C.UTF-8 | | libc |
4 .We get the webpage source code from UnderNet Official GitHub under user gnuworld:
- su - gnuworld
- git clone https://github.com/UndernetIRC/cservice-web
- cd cservice-web/
- composer install
- cd php_includes/
- cp config.inc.dist config.inc #edit the file with your own values
- cp cmaster.inc.dist cmaster.inc
- cp blackhole.inc.dist blackhole.inc
4.1 We get the gnuworld source code from UnderNet Official GitHub under user gnuworld:
- su - gnuworld
- git clone https://github.com/UndernetIRC/gnuworld
- cd gnuworld/doc
- psql -h 192.168.1.133 -U gnuworld local_db < local_db.sql
- cd /usr/local/www/apache24/data/
- chmod 711 ~gnuworld
- chmod 711 ~gnuworld/cservice-web
- chmod 755 ~gnuworld/cservice-web/php_includes
- chmod 644 ~gnuworld/cservice-web/php_includes/config.inc
- chmod 755 ~gnuworld/cservice-web/docs/gnuworld/
- ln -s /home/gnuworld/cservice-web/docs/gnuworld live
6. There are two options to solve (IPR) restriction, bellow you can find how to on both.
- su - gnuworld
- pico ipr.sql
- insert into ip_restrict (id, user_id, added_by, added, type, expiry, value) values (1, 1, 1, now()::abstime::int4, 1, 0, ‘192.168.0.93’);
- /usr/local/pgsql/bin/psql -h 192.168.1.133 cservice < ipr.sql
6.2 - Fix (IPR) by disableing IPR option in config.inc file
- su - gnuworld
- cd gnuworld
- pico cservice_web/php_includes/config.inc
- change define("IPR_REQUIRED",1); to define("IPR_REQUIRED",0);
7 In order to permit login on CService Web from local IP address like 192.168.xx.xx or 10.0.0.xx the following changes must be made:
nano /home/gnuworld/cservice-web/php_includes/config.inc
# Replace define("DISALLOW_RESERVED_BLOCKS",1); to define("DISALLOW_RESERVED_BLOCKS",0);
Now login using * accounts from local IP address is possible.
This HOWTO was last updated by ZioN
21 Aug 2023