dimanche 17 mars 2019

Installer Python3

Contenu du didacticiel

  1. Vagrant et Virtual Box
  2. Installer Apache / (Utiliser Nginx et PHP)
  3. Installer MySQL / MariaDB
  4. Installer PHP / Python

Installer Python3.6

On va installer Python dans la machine virtuel. D'abord, on va vérifier quelle version de Python est installédans le yum paque. Tapez la commande ci-dessous:
$ yum list python* 

Python 2.7 est déjà installé par défaut dans Cent OS 7, mais il n'y a pas Python 3.6 dans la liste. Pour utiliser Python 3.6, on va utiliser le package d'IUS Community Project, écrire la commande ci-dessous:
$ sudo yum install -y https://centos7.iuscommunity.org/ius-release.rpm
Et on peut utiliser les packages d'IUS Community Project. Pour installer Python 3.6, écrire la commande ci-dessous:
$ sudo yum install -y python36u python36u-libs python36u-devel python36u-pip python-pip
Pour vérifier si Python 3.5 est correctement installé dans la machine virtuel, écrire la commande ci-dessous:
$ python3.6 -V 
$ sudo which python3.6
C'est python3.5 sur cette image... mais vous allez voir 3.6.

Redémarrer Apache après l'installation.
$ sudo systemctl restart httpd

Les commands for CentOS6

$ sudo yum install -y https://centos6.iuscommunity.org/ius-release.rpm
$ sudo yum install -y python36u python36u-libs python36u-devel python36u-pip python-pip
$ sudo locate python3.6
$ sudo service httpd restart

Hello World en Python

On va créer un fichier "index.py" pour afficher "Hello World" dans le navigateur. Créer un fichier "index.py" avec un éditeur de texte dans C:\MyVM\MyCentOs\index.py et écrire dedans:
#!/usr/bin/env python
# -- coding: UTF-8 --

print("Content-Type: text/html\n\r")
print ("""
    <TITLE>CGI script ! Python</TITLE>
    <H1>This is my first CGI script</H1>
    Hello, world!
""")
Attention, la fin de ligne doit être LF. (pas CR/RF!)
Maintenant, faire cette commande dans Teraterm:
$ sudo vi /etc/httpd/conf/httpd.conf
Comment utilsier la commande de "vi" est ici:
Appuyez sur la touche A du clavier pour accéder au mode insérer pour pouvoir éditer le fichier. Appuyez sur la touche échap pour arrêter mode insérer, après d'avoir fini, appuyez sur les touches Shift + g pour aller en bas de page. Shift + zz pour enregistrer et fermer le fichier. On peut utiliser le mode commande en appuyant sur :. Pour enregistrer et quitter le mode commande, écrire :wq et appuyez sur entrée. Pour quitter le fichier sans sauvegarder, :q! et appuyez sur entrée. Pour chercher un mot, appuyez sur ? et écrire le mot cherché. Par exemple, si on écrit ?aaa et que l'on appuie sur entrée, "aaa" sera recherché et surligné dans le fichier. Appuyez sur n pour aller au résultat suivant.
Ajouter "ExecCGI" dans le répertoire de "/var/www/html".

<Directory "/var/www/html">
    Options Indexes FollowSymlinks ExecCGI
    AllowOverride None
    Require all granted
</Directory>

(Faites attention, il y a des paramètres similaires mais il faut que ce soit /var/www/html.)
Et ajouter .py au Add handler: 

AddHandler cgi-script .cgi .py

Directory 

Add handler
Au fait, peut-étre Add handler est un commentaire.

Supprimer le # de la ligne AddHandler et enregistrer et fermez-le par ":wq".

Redémarrer Apache (httpd):
$ sudo systemctl restart httpd
Si SELinux fonctionne:
$ sudo setenforce 0
Ou cette commande:
$ sudo chcon -R -t httpd_sys_script_exec_t /var/www/html/index.py
Pour avoir accès au fichier, voir ce page par un navigateur: http://192.168.33.10/index.py
Hello World!!
Si ça ne fonctionne pas et que les erreurs 500 ou 404 s'affichent à l'écran, faire cette commande pour voir les erreurs:

Apache
$ sudo less /var/log/httpd/error_log
Nginx
$ sudo less /var/log/nginx/error.log
Et rechercher sur google l'origine des erreurs.

Si vous voulez changer la permission du dossier de vagrant,, écrire comme ça dans le Vagrantfile:
config.vm.synced_folder "./", "/vagrant", owner: 'vagrant', group: 'apache', mount_options: ['dmode=777', 'fmode=777']

Django



Comment utiliser Nginx pour PHP

Contenu du didacticiel

  1. Vagrant et Virtual Box
  2. Installer Apache / (Utiliser Nginx et PHP)
  3. Installer MySQL / MariaDB
  4. Installer PHP / Python

Ce page est pour PHP

Ce page est pour PHP. Utiliser Apache pour Python.

Qu’est ce que NGINX?

NGINX est un « nouveau » serveur WEB apparu en 2002 qui vient concurrencer de plus en plus APACHE, qui reste pour l’instant majoritaire. Dans cet article, nous allons faire une courte introduction sur NGINX.
-- AXOPEN (https://blog.axopen.com/2014/08/nginx-tutorial/)

Comment installer Nginx pour PHP


Activer le référentiel de d'IUS.
$ cd ~
$ curl 'https://setup.ius.io/' -o setup-ius.sh
$ sudo bash setup-ius.sh
Et installer PHP7.2.
$ sudo yum remove php-cli mod_php php-common php-fpm 
$ sudo yum -y install php72u-fpm-nginx mod_php72u php72u-cli php72u php72u-mysqlnd php72u-gd php72u-mbstring php72u-opcache php72u-xml php72u-pecl-xdebug php72u-pdo php72u-devel php72u-json

Installer Nginx

Ajouter le référentiel de Nginx. Écrire la commande ci-dessous:
$ sudo vi /etc/yum.repos.d/nginx.repo
Écrire dedans:
[nginx]
name=nginx repo
baseurl=http://nginx.org/packages/mainline/centos/7/$basearch/
gpgcheck=0
enabled=1
Comment utilsier la commande de "vi" est ici:

Appuyez sur la touche A du clavier pour accéder au mode insérer pour pouvoir éditer le fichier. Appuyez sur la touche échap pour arrêter mode insérer, après d'avoir fini, appuyez sur les touches Shift + g pour aller en bas de page. Shift + zz pour enregistrer et fermer le fichier. On peut utiliser le mode commande en appuyant sur :. Pour enregistrer et quitter le mode commande, écrire :wq et appuyez sur entrée. Pour quitter le fichier sans sauvegarder, :q! et appuyez sur entrée. Pour chercher un mot, appuyez sur ? et écrire le mot cherché. Par exemple, si on écrit ?aaa et que l'on appuie sur entrée, "aaa" sera recherché et surligné dans le fichier. Appuyez sur n pour aller au résultat suivant.
Installer nginx.
$ sudo yum install nginx
Démarrer et enregistrer nginx et php-fpm.
$ sudo systemctl start nginx
$ sudo systemctl enable nginx
$ sudo systemctl restart php-fpm
$ sudo systemctl enable php-fpm

La configuration

Écrire cette commande pour éditer la configuration de php-fpm.
$ sudo vi /etc/php-fpm.d/www.conf
Chercher une ligne qui contient "listen = 127.0.0.1:9000" et le changer en un commentaire. Et changer une ligne de "listen = /run/php-fpm/www.sock" en pas-commentaire par supprimer ";" de la ligne. 

Et cher une ligne qui contient "listen.acl_users" et le changer en un commentaire. Changer  "listen.acl_users = nginx" en pas-commentaire par supprimer ";" de la ligne. Et enregistrer le fichier.

Maintenant on va faire Nginx utiliser un "socket".
$ sudo vi /etc/nginx/conf.d/php-fpm.conf
Changer  "server 127.0.0.1:9000;" en commentaire par écrire "#" avant la ligne. Changer "server unix:/run/php-fpm/www.sock;"en pas-commentaire par supprimer "#" de la ligne.

On va configurer le fichier de la configuration de Nginx.
$ sudo vi /etc/nginx/conf.d/default.conf
Écrire comme ça et l'enregistrer.  
server {
    listen       80;
    server_name  localhost;
    root   /usr/share/nginx/html;
    index  index.html index.htm index.php;

    #charset koi8-r;
    #access_log  /var/log/nginx/host.access.log  main;

    location / {
        try_files $uri $uri/ /index.php?$query_string;
    }

    # redirect server error pages to the static page /50x.html
    error_page   500 502 503 504  /50x.html;
    location = /50x.html {
        root   /usr/share/nginx/html;
    }

    # proxy the PHP scripts to Apache listening on 127.0.0.1:80
    #
    #location ~ \.php$ {
    #    proxy_pass   http://127.0.0.1;
    #}

    location ~ \.php$ {
        fastcgi_split_path_info ^(.+\.php)(/.+)$;
        fastcgi_pass php-fpm;
        fastcgi_index  index.php;
        fastcgi_param  SCRIPT_FILENAME $document_root$fastcgi_script_name;
        include        fastcgi_params;
    }

    # deny access to .htaccess files, if Apache's document root
    # concurs with nginx's one
    #
    #location ~ /\.ht {
    #    deny  all;
    #}
}
Re-démarrer php-fpm et nginx.
$ sudo systemctl restart php-fpm
$ sudo systemctl restart nginx

Lien symbolique

On créé un "lien symbolique" parce que ça aide pour le développement.:
$ sudo rm -rf /usr/share/nginx/html
$ sudo ln -fs /vagrant /usr/share/nginx/html
Et tous des fichiers de "/vagrant" sont automatiquement synchronisé dans le dossier "/var/www/html".
$ ls /usr/share/nginx/html



Si on a tout fait, on voit tous fichiers du dossier.

Mais on doit créer 50x.html dans le dossier "/vagrant" parce que le fichier a été supprimé quand on a supprimé le dossier "/usr/share/nginx/html".

Vim

Installer "vim" qui est mieux que "vi":
$ sudo yum install vim-enhanced

SELinux

On peut donner la permission à Apache si SELinux fonctionne dans le serveur:
$ sudo yum -y install policycoreutils-python
$ sudo semanage permissive -a httpd_t
Mais peut-être c'est mieux de désactiver SELinux.
$ sudo setenforce 0
Ouvrier le fichier "/etc/selinux/config" et désactiver SELinux:
$ sudo vi /etc/selinux/config
Le changer comme ça et l'enregistrer:
# This file controls the state of SELinux on the system.
# SELINUX= can take one of these three values:
#     enforcing - SELinux security policy is enforced.
#     permissive - SELinux prints warnings instead of enforcing.
#     disabled - No SELinux policy is loaded.

SELINUX=disabled #Change HERE!!!!!

# SELINUXTYPE= can take one of three two values:
#     targeted - Targeted processes are protected,
#     minimum - Modification of targeted policy. Only selected processes are protected.
#     mls - Multi Level Security protection.
SELINUXTYPE=targeted

Vérifier si Nginx fonctionne

Écrire comme ça et l'enregistrer comme "index.php" dans /vagrant ou /usr/share/nginx/html (tous les deux fichiers doivent être le même parce que on a créé le lien symbolique).
<?php
phpinfo();
Voir http://192.168.33.10 par un navigateur. Si on le voit, nginx fonctionne. 


samedi 2 mars 2019

Comment installer pilote geforce sur Ubuntu18

Cocher "install the third party dirvers"

Quand on installe Ubuntu18 de usb ou CD, on vois une question qui est à propos de logiciels tiers. Cocher "yes (oui)" pour installer le pilote geforce.

Mais on ne dois pas utiliser "secure boot". On ne peut pas installer le pilote geforce avec le "secure boot".


Quand l'installation d'Ubuntu 18 est fini, vérifier si le "secure boot" est désactivé

Éteindre le PC et rallumer le PC. Quand on rallumer le PC, appuyer sur F2 à plusieurs reprises et aller au BIOS.  (Le bouton sur lequel appuyer est peut-être différent selon la marque). Dans le BIOS, vérifier que le "secure boot" est désactivé. 

Désactiver le nouveau driver

Nouveau driver ne peut pas être utilisé avec le driver Nvidia. Alors on doit le désactiver. Créer un fichier dans ce répertoire:
$ sudo vim /etc/modprobe.d/blacklist-nouveau.conf
Et ajouter ces lignes:
blacklist nouveau
blacklist lbm-nouveau
options nouveau modeset=0
alias nouveau off
alias lbm-nouveau off

Installer le driver Nvidia

Installer le driver Nvidia
$ sudo ubuntu-drivers autoinstall
Cette commande va installer le bon driver. 

Redémarrer le PC et vérifier si le driver Nvidia fonctionne bien 

Redémarrer le PC et vérifier si le driver Nvidia fonctionne bien avec cette commande:
$ nvdiai-smi
Si le driver fonctionne bien, on va voir ce message:

$ nvdiai-smi
Sat Nov 24 14:11:45 2018       
+-----------------------------------------------------------------------------+
| NVIDIA-SMI 396.54                 Driver Version: 396.54                    |
|-------------------------------+----------------------+----------------------+
| GPU  Name        Persistence-M| Bus-Id        Disp.A | Volatile Uncorr. ECC |
| Fan  Temp  Perf  Pwr:Usage/Cap|         Memory-Usage | GPU-Util  Compute M. |
|===============================+======================+======================|
|   0  GeForce GTX 106...  Off  | 00000000:01:00.0 Off |                  N/A |
|  0%   33C    P8    10W / 200W |    285MiB /  6078MiB |      4%      Default |
+-------------------------------+----------------------+----------------------+
                                                                               
+-----------------------------------------------------------------------------+
| Processes:                                                       GPU Memory |
|  GPU       PID   Type   Process name                             Usage      |
|=============================================================================|
|    0      1308      G   /usr/lib/xorg/Xorg                           130MiB |
|    0      2095      G   /usr/bin/gnome-shell                          97MiB |
|    0      4248      G   ...quest-channel-token=1154406552893718937    53MiB |
+-----------------------------------------------------------------------------+