FreeBSD 14

Partons à la découverte de FreeBSD 14, la version courante à l'écriture de cet article étant la 14.2-RELEASE-p3.

On va tester l'OS dans une VM, à partir d'un Apple Silicon (architecture arm64), avec Vagrant et Parallels Desktop.

Prérequis :

1brew install vagrant
2vagrant plugin install vagrant-parallels

Créer le fichier Vagrantfile suivant :

 1# -*- mode: ruby -*-
 2# vi: set ft=ruby :
 3
 4Vagrant.configure("2") do |config|
 5  # VM FreeBSD 14 aarch64 via parallels (nécessite la licence business edition activée)
 6  # https://portal.cloud.hashicorp.com/vagrant/discover/bento/freebsd-14
 7
 8  config.vm.provider "parallels"
 9  config.vm.box = "bento/freebsd-14"
10  config.vm.box_version = "202502.21.0"
11end

Installer un paquet

Outil pkg. Exemples de paquets :

1pkg install pstree
2pkg install bind-tools # dig, hostname, ...
3pkg install php84 php84-curl php84-xml php84-mysqli php84-posix php84-gd php84-simplexml php84-mbstring php84-pdo php84-composer # 8.4.5
4pkg install python3 # 3.11.11
5pkg install nginx # 1.26.3
6pkg install mariadb114-server # 11.4 LTS

PHP

Par défaut le paquet php n'a pas beaucoup de modules activés (notés en gras)

  • Core
  • ctype
  • curl
  • date
  • filter
  • gd
  • hash
  • intl
  • json
  • libxml
  • mbstring
  • mysqli
  • mysqlnd
  • openssl
  • pcre
  • PDO
  • Phar
  • posix
  • random
  • Reflection
  • SimpleXML
  • SPL
  • standard
  • xml

Configuration

  • conf php-cli dans : /usr/local/etc/php/*.ini
  • conf php-fpm dans : /usr/local/etc/php-fpm.d/www.conf
  • conf nginx dans : /usr/local/etc/nginx/nginx.conf pas nativement de conf.d pour les vhosts
  • conf MariaDB dans : /usr/local/etc/mysql/my.cnf qui va lire tous les .cnf du sous-répertoire /usr/local/etc/mysql/conf.d/

Mise à jour du système

1freebsd-update fetch
2freebsd-update install

Effectivement la version courante est désormais :

1# freebsd-version
214.2-RELEASE-p3

Installer un serveur web

(pas de systemd ni systemctl)

1pkg install nginx
2sysrc nginx_enable=yes
3service nginx start

Pour vérifier que le port est en écoute :

1$ netstat -a|grep http
2tcp4       0      0 *.http                 *.*                    LISTEN

Retrouver son ip

1$ ifconfig|grep inet | head -1
2	inet 10.211.55.43 netmask 0xffffff00 broadcast 10.211.55.255

Tester la connexion http

 1$ curl --head http://10.211.55.43                                                                                                 ✔  13:01:59
 2HTTP/1.1 200 OK
 3Server: nginx/1.26.3
 4Date: Sun, 22 Jun 2025 11:02:07 GMT
 5Content-Type: text/html
 6Content-Length: 615
 7Last-Modified: Wed, 05 Feb 2025 11:07:30 GMT
 8Connection: keep-alive
 9ETag: "67a34672-267"
10Accept-Ranges: bytes
comments powered by Disqus