mardi 6 décembre 2022

Tag Archives: mysql

Ma Framboise devient un serveur

Voilà, une fois mon Wifi fonctionnel, je vais pouvoir passer à la suite.

1. Faire un peu de ménage dans les packages
On peut commencer par virer tout ce qui se rapporte au serveur X, puisqu’on n’en aura pas l’utilité, et surtout par sécurité :

root@raspi:/home/pi# aptitude purge xserver-xorg xserver-xorg-core xserver-xorg-input-all 
xserver-xorg-input-evdev xserver-xorg-input-synaptics xserver-xorg-video-fbdev xserver-common 
xpdf xinit x11-common x11-utils x11-xkb-utils xarchiver screen pcmanfm penguinspuzzle lxde-common 
lxappearance lxde-icon-theme lxinput lxmenu-data lxpanel lxpolkit lxrandr lxsession lxsession-edit 
lxshortcut lxtask lxterminal leafpad dillo galculator gnome-icon-theme gnome-themes-standard 
gnome-themes-standard-data gpicview hicolor-icon-theme gvfs-common libgtk-3-0 libgtk2.0-0 
libproxy0 lightdm lightdm-gtk-greeter lxde lxde-core midori openbox squeak-vm zenity kdebase-bin 
tk8.5 xdg-utils glib-networking-common glib-networking-services gvfs-daemons libgtk-3-common 
libgtk2.0-common obconf

Un dernier coup de ménage pour purger tous les paquets dont il ne reste plus que les fichiers de configuration.
Avec aptitude c’est très simple avec la commande aptitude purge ~c (ou aptitude purge ?config-files). Par sécurité, on remplacera purge par search avant pour visualiser uniquement la liste des paquets concernés :

aptitude search ?config-files
aptitude purge ~c
apt-get autoremove

On installe ensuite localepurge pour faire de la place dans les fichier de locales. Pour info, aptitude -R install est utilisé pour installer que les paquets absolument nécessaires :

aptitude -R install localepurge && localepurge

2. Se mettre à la page

apt-get update
apt-get upgrade
apt-get dist-upgrade

Dernière étape avant de passer aux choses sérieuses, redéfinir l’espace disque de votre Framboise avec raspi-config :

rootFS

Maintenant, on fait un peu de configuration de base.

3. Modification du hostname

echo "raspi.priv8.fr" > /etc/hostname
hostname -F /etc/hostname
/etc/init.d/hostname.sh start

4. Modification du fichier /etc/hosts

127.0.0.1      localhost.localdomain    raspi.priv8.fr    localhost    raspi
::1            localhost ip6-localhost ip6-loopback
fe00::0        ip6-localnet
ff00::0        ip6-mcastprefix
ff02::1        ip6-allnodes
ff02::2        ip6-allrouters
#127.0.1.1    raspberrypi

5. Modifier les locales (peut être réaliser avec raspi-config) et tzdata

root@raspi:/home/idem# dpkg-reconfigure locales
Generating locales (this might take a while)...
fr_FR.UTF-8... done
Generation complete.

Choisir fr_FR.UTF-8
Autre méthode :

root@raspi:/home/idem# echo "fr_FR ISO-8859-1
fr_FR.UTF-8 UTF-8
fr_FR.UTF-8@euro UTF-8
en_US.UTF-8
fr_FR@euro ISO-8859-15" > /etc/locale.gen

root@raspi:/home/idem# echo "en_US.UTF-8" > /etc/default/locale

root@raspi:/home/idem# /bin/sed -i -e 's/^LANG=.*/LANG=en_US.UTF-8/' /etc/default/locale
root@raspi:/home/idem# /bin/sed -i -e 's/^LANG=.*/LANG=fr_FR/' /etc/environment
root@raspi:/home/idem# /usr/sbin/locale-gen

Ensuite, on configure le timezone :

dpkg-reconfigure tzdata

On peut aussi modifier l’éditeur par défaut :

root@raspberrypi:/home/pi# aptitude install vim vim-nox 
root@raspberrypi:/home/pi# update-alternatives --set editor /usr/bin/vim.nox

Enfin, j’utilise beaucoup vim donc j’aime bien mon petit confort. On va donc activer manuellement certaines options dans le fichier /etc/vim/vimrc. Commençons par la coloration syntaxique  en de-commentant la linge :

syntax on

Décommettez les lignes suivantes afin que vim vous repositionne à la ligne où vous étiez dans le fichier précédemment fermé :

if has("autocmd")
          au BufReadPost * if line("'"") > 1 && line("'"") < = line("$") | exe "normal! g'"" | endif
endif

Décommettez les lignes suivantes pour que la recherche et la visualisation dans le fichier soit plus aisée :

set showmatch       " Show matching brackets
set ignorecase      " Do case insensitive matching
set smartcase       " Do smart case matching
set incsearch       " Incremental search

6. Petites modifications utiles
Ajoutons donc un vrai user (idem) et affectons le au groupe staff :

root@raspi:/home/pi# cat /etc/group | grep staff 
staff:x:50: 

root@raspi:/home/pi# adduser idem -gid 50

Maintenant, ajoutons la permission à cet utilisateur  d’être root via un sudo :

root@raspi:/home/pi# visudo
# User privilege specification
root    ALL=(ALL:ALL) ALL
idem    ALL=(ALL:ALL) ALL

# Allow members of group sudo to execute any command
#%sudo  ALL=(ALL:ALL) ALL

Un petit truc pratique que j’aime beaucoup, c’est avoir un joli prompt.
Pour cela, je modifie le fichier /etc/bash.bashrc :

# set a fancy prompt (non-color, overwrite the one in /etc/profile)
#PS1='${debian_chroot:+($debian_chroot)}u@h:w$ '
PS1='${debian_chroot:+($debian_chroot)}[33[01;32m]u@h[33[00m]:[33[01;34m]w[33[00m]$ '

7. Installer les packages de base + Apache/Php/MySQL

root@raspi:/home/pi# apt-get install mc cron-apt fail2ban ntpdate bison 
flex rkhunter lzma zoo arj nomarch lzop cabextract gettext 
apt-listchanges daemon sysstat libidn11 htop iftop sendmail 
ssl-cert php5 php5-dev php5-gd php5-fpm php5-cli php5-sqlite 
php5-curl php5-common php5-cgi php5-mysql sqlite php-pear 
php-apc autoconf automake autotools-dev libapr1 libtool libcurl4-openssl-dev 
php-xml-parser mysql-client mysql-server mutt samba samba-common-bin 
apache2 php5 mysql-server libapache2-mod-php5 php5-mysql mysql-client php-pear

Apache et PHP dans votre framboise

Tout d’abord, nous devons configurer la partie réseau de notre RaspBerry. Rassurez-vous, il s’agit là uniquement du minimum « vital ».

Tout d’abord, définir le nom de notre RaspBerry (je l’appellerais raspi):

# echo "raspi" >> /etc/hostname
# hostname -F /etc/hostname

Modifier le fichier /etc/hosts en commentant la référence à l’adresse 127.0.1.1 et modifiant l’ordre des noms :

127.0.0.1 localhost.localdomain raspi.priv8.fr raspi
::1 localhost ip6-localhost ip6-loopback
fe00::0 ip6-localnet
ff00::0 ip6-mcastprefix
ff02::1 ip6-allnodes
ff02::2 ip6-allrouters

#127.0.1.1 raspberrypi

Nous allons installer Apache (un serveur HTTP permettant de publier du contenu Html sur le web), PHP (langage serveur permettant le traitement dynamique d’informations) et MySQL (une base de données).

#apt-get install apache2 php5 mysql-server libapache2-mod-php5 php5-mysql mysql-client php-pear

Tout d’abord, activons la partie SSL. Pour cela, il faut éditer le fichier /etc/apache2/ports.conf :

NameVirtualHost *:80
NameVirtualHost *:443
Listen 80

    Listen 443

    Listen 443

Ensuite, nous activons les modules Apache (mod ssl pour activer les connexions sécurisées par ssl,rewrite pour permettre  l’url writing) :

#a2enmod actions include ssl rewrite headers deflate

Une petite configuration supplémentaire pour la sécurité nous permettant, lors des erreurs d’Apache de masquer les signatures. Dans le fichier /etc/apache2/conf.d/security, pour chacune des options, mettre ces valeurs :

...
ServerSignature off
ServerTokens Prod
...

Vérifier le Charset configurer dans le fichier /etc/apache2/conf.d/charset :

#AddDefaultCharset UTF-8

Maintenant nous configurons PHP avec le fichier /etc/php5/apache2/php.ini :

...
memory_limit = 128M      ; Maximum amount of memory a script may consume (128MB)
post_max_size = 8M
upload_max_filesize = 128M
...
[mbstring]
mbstring.language=UTF-8
mbstring.internal_encoding=UTF-8
mbstring.http_input=UTF-8
mbstring.http_output=UTF-8
mbstring.detect_order=auto
...

Le groupe rattaché au service HTTPd sera « domains » :

# addgroup domains

Utilisateurs du service Apache en editant le fichier /etc/apache2/envvars :

export APACHE_RUN_GROUP=domains

Pour faire propre, on applique les bons droits :

# chown www-data.domains /var/www

Pour vérifier le tout, créons un fichier avec le user www-data (su – www-data), /var/www/phpinfo.php :

< ?
phpinfo()
?>

Connectez-vous sur votre RapsBerry avec un navigateur à l’adresse
Et là, vous êtes fier de vous 🙂