Jeudi 10 octobre 2019 (Modifié le Jeudi 10 octobre 2019)

Développement sur archlinux

mariaDB + Nginx + PHP - Archlinux

Installer nginx(compilation) + php sur archlinux : script ngx-arch-compil.sh
Télécharger le fichier ngx-arch-compil.sh

sudo -s                # ou su
chmod +x ngx-arch-compil.sh  # le rendre exécutable
./ngx-arch-compil.sh         # exécution du script

MariaDB

Installer MariaDB depuis les dépôts:

sudo pacman -S mariadb

Démarrer le service pour la session en cours:

systemctl start mysqld

L’établir au démarrage de votre système:

systemctl enable mysqld

sécuriser l’installation après le démarrage du service, à l’aide de l’outil fourni:

mysql_secure_installation

De là vous pouvez vous connecter au serveur avec ce compte:

mysql -u root -p

Version

mariadb --version
mariadb  Ver 15.1 Distrib 10.4.8-MariaDB, for Linux (x86_64) using readline 5.1

Depuis mariadb 10.3.12, /etc/mysql/my.cnf charge également les fichiers de configuration depuis le répertoire /etc/mysql/my.cnf.d/, ce qui permet de répartir les options de manière plus lisible (client/serveur, etc.).

Accès en ligne de commande

mysql -uroot -p$(cat /etc/yannick/mariadbroot)

Nginx

Utilisateur yannick pour nginx

/etc/nginx/nginx.conf
user yannick;
worker_processes auto;
pid /run/nginx.pid;
include /etc/nginx/modules-enabled/*.conf;

[...]

Vérification

ps -ef | grep nginx
root      614917  565361  0 12:00 pts/0    00:00:00 tail -f /var/log/nginx/localhost-error.log
root      661740       1  0 12:24 ?        00:00:00 nginx: master process /usr/sbin/nginx -g daemon on; master_process on;
yannick   661741  661740  0 12:24 ?        00:00:00 nginx: worker process
yannick   661742  661740  0 12:24 ?        00:00:00 nginx: worker process
yannick   661743  661740  0 12:24 ?        00:00:00 nginx: worker process
yannick   661744  661740  0 12:24 ?        00:00:00 nginx: worker process
root      662547  545381  1 12:24 pts/1    00:00:00 grep nginx

Répertoire de travail /home/yannick/media/devel/ouestline/

/etc/nginx/conf.d/default.conf 
server {
    listen 80;
    listen [::]:80;

   fancyindex on;              # Enable fancy indexes.
   fancyindex_exact_size off;  # Output human-readable file sizes.

    root /home/yannick/media/devel/ouestline/ ;
    index index.php;
        location ~ \.php$ {
           fastcgi_split_path_info ^(.+\.php)(/.+)$;
           fastcgi_pass unix:/run/php-fpm/php-fpm.sock;   # php archlinux
           fastcgi_index index.php;
           include fastcgi_params;
           fastcgi_param SCRIPT_FILENAME $request_filename;
        }

    access_log /var/log/nginx/localhost-access.log;
    error_log /var/log/nginx/localhost-error.log;
}

Vérification et relance sudo nginx -t && sudo systemctl restart nginx

PHP

php-fpm
Les droits php-fpm → /etc/php/php-fpm.d/www.conf

; Unix user/group of processes
; Note: The user is mandatory. If the group is not set, the default user's group
;       will be used.
user = yannick
group = yannick

[...]
listen = /run/php-fpm/php-fpm.sock

listen.owner = yannick
listen.group = yannick

Relancer : sudo systemctl restart php-fpm
Vérifier les droits ls -ahl /run/php-fpm/php-fpm.sock
srw-rw---- 1 yannick yannick 0 10 oct. 13:15 /run/php-fpm/php-fpm.sock

Extensions PHP
Les extensions PHP sont gérées dans le fichier /etc/php/php.ini pour celles qui sont natives
curl et zip sont actifs par défaut

Fichier /etc/php/php.ini , décommenter (enlever ; avant extension) mysqli et pdo_mysql si mysql/mariadb installé et sodium pour le chiffrement et les autres extensions

;;;;;;;;;;;;;;;;;;;;;;
; Dynamic Extensions ;
;;;;;;;;;;;;;;;;;;;;;;

extension=bcmath
extension=bz2
extension=curl
extension=gd
extension=pdo_mysql
extension=intl
extension=sodium
extension=ldap
extension=mysqli
extension=tidy
extension=zip
;extension=calendar
;extension=dba
;extension=enchant
;extension=exif
;extension=ftp
;extension=gettext
;extension=gmp
;extension=iconv
;extension=imap
;extension=odbc
;zend_extension=opcache
;extension=pdo_dblib
;extension=pdo_odbc
;extension=pdo_pgsql
;extension=pdo_sqlite
;extension=pgsql
;extension=pspell
;extension=shmop
;extension=snmp
;extension=soap
;extension=sockets
;extension=sqlite3
;extension=sysvmsg
;extension=sysvsem
;extension=sysvshm
;extension=xmlrpc
;extension=xsl

Relance et status

sudo systemctl restart php-fpm
sudo systemctl status php-fpm    
sudo systemctl restart nginx    
sudo systemctl status nginx    
sudo chown $USER:$USER -R /var/www # droits utilisateur

Composer
Vous pouvez télécharger le script composer à partir du site Web getcomposer.org en exécutant la commande suivante. Il créera un fichier composer.phar dans le répertoire en cours.

curl -sS https://getcomposer.org/installer | php
All settings correct for using Composer
Downloading...

Composer (version 1.9.0) successfully installed to: /home/yannick/composer.phar
Use it: php composer.phar

Copiez le fichier composer.phar dans le répertoire bin pour le rendre disponible n’importe où dans le système. Définissez également l’autorisation d’exécution sur le fichier. J’ai changé le nom de fichier de composer.phar en compositeur pour une utilisation facile.

sudo mv composer.phar /usr/local/bin/composer
chmod +x /usr/local/bin/composer

Mise à jour composer

sudo composer self-update 

Laravel

PHP framework