Préparation
Installer la version du serveur Ubuntu 16.04
Étape 1 : Installer le serveur nginx
1 nginx est un programme de serveur Web avancé et optimisé en ressources utilisé pour afficher des pages Web aux visiteurs sur Internet. Nous commençons par l'installation du serveur nginx et utilisons la commande apt pour obtenir le programme nginx à partir du référentiel de logiciels officiel d'Ubuntu.
$ sudo apt-get install nginx
Installez nginx
2 sur Ubuntu 16.04, puis entrez les commandes netstat et systemctl pour confirmer que le processus nginx a été démarré et lié au port 80.
$ netstat -tlpn
Vérifiez la connexion du port réseau nginx
$ sudo systemctl status nginx.service
Vérifiez l'état du service nginx
Lorsque vous confirmez que le processus de service a été démarré, vous pouvez ouvrir un navigateur et utiliser le protocole http pour accéder à l'adresse IP de votre serveur ou Nom de domaine, parcourez la page Web par défaut de nginx.
http://ip-address
Étape 2 : Activer le protocole nginx http/2.0
3. La prise en charge du protocole http/2.0 est incluse par défaut dans le fichier binaire nginx de la dernière version d'ubuntu 16.04. Il ne peut être connecté que via SSL et. est garanti d'être chargé. La vitesse des pages Web a été grandement améliorée.
Pour activer ce protocole de nginx, recherchez d'abord le fichier de configuration du site Web fourni par nginx et entrez la commande suivante pour sauvegarder le fichier de configuration.
$ cd /etc/nginx/sites-available/ $ sudo mv default default.backup
Sauvegardez le fichier de configuration du site Web nginx
4 Ensuite, utilisez un éditeur de texte pour créer un fichier par défaut et entrez le contenu suivant :
server { listen 443 ssl http2 default_server; listen [::]:443 ssl http2 default_server; root /var/www/html; index index.html index.htm index.php; server_name 192.168.1.13; location / { try_files $uri $uri/ =404; } ssl_certificate /etc/nginx/ssl/nginx.crt; ssl_certificate_key /etc/nginx/ssl/nginx.key; ssl_protocols tlsv1 tlsv1.1 tlsv1.2; ssl_prefer_server_ciphers on; ssl_ciphers eecdh+chacha20:eecdh+aes128:rsa+aes128:eecdh+aes256:rsa+aes256:eecdh+3des:rsa+3des:!md5; ssl_dhparam /etc/nginx/ssl/dhparam.pem; ssl_session_cache shared:ssl:20m; ssl_session_timeout 180m; resolver 8.8.8.8 8.8.4.4; add_header strict-transport-security "max-age=31536000; #includesubdomains" always; location ~ \.php$ { include snippets/fastcgi-php.conf; fastcgi_pass unix:/run/php/php7.0-fpm.sock; } location ~ /\.ht { deny all; } } server { listen 80; listen [::]:80; server_name 192.168.1.13; return 301 https://$server_name$request_uri; }
Activez le protocole nginx http 2
L'extrait de configuration ci-dessus s'applique à all ssl Ajoutez le paramètre http2 à la commande d'écoute pour activer http/2.0.
La dernière section ajoutée à la configuration du serveur ci-dessus est utilisée pour rediriger tout le trafic non SSL vers l'hôte par défaut SSL/tls. Remplacez ensuite l'option server_name par l'adresse IP ou l'enregistrement DNS de votre hôte (de préférence le nom de domaine complet).
5. Après avoir suivi les étapes ci-dessus pour modifier le fichier de configuration par défaut de nginx, utilisez les commandes suivantes pour générer et afficher le certificat SSL et la clé.
Terminez la création du certificat avec vos paramètres personnalisés. Notez que le nom commun est défini pour correspondre à votre enregistrement DNS FQDN ou à l'adresse IP de votre serveur.
$ sudo mkdir /etc/nginx/ssl $ sudo openssl req -x509 -nodes -days 365 -newkey rsa:2048 -keyout /etc/nginx/ssl/nginx.key -out /etc/nginx/ssl/nginx.crt $ ls /etc/nginx/ssl/
Générez le certificat et la clé SSL nginx
6. Utilisez un algorithme de cryptage dh fort en entrant la commande suivante, qui modifiera le fichier configuré par le fichier de configuration précédent ssl_dhparam.
$ sudo openssl dhparam -out /etc/nginx/ssl/dhparam.pem 2048
Créer une clé diffie-hellman
7. Une fois la clé diffie-hellman générée, vérifiez si le fichier de configuration nginx est correct et peut être appliqué par le programme de service réseau nginx. Exécutez ensuite la commande suivante pour redémarrer le démon et observer les modifications.
$ sudo nginx -t $ sudo systemctl restart nginx.service
Vérifiez la configuration de nginx
8 Tapez la commande suivante pour tester que nginx utilise le protocole http/2.0. Si vous voyez h2 dans le protocole, cela signifie que nginx a été configuré avec succès pour utiliser le protocole http/2.0. Tous les derniers navigateurs prennent en charge ce protocole par défaut.
$ openssl s_client -connect localhost:443 -nextprotoneg ''
Testez le protocole nginx http 2.0
Étape 3 : Installez l'interpréteur php 7
Avec l'aide du gestionnaire de processus fastcgi, nginx est capable de générer du contenu réseau dynamique à l'aide de l'interpréteur de langage dynamique php. fastcgi peut être obtenu en installant le package binaire php-fpm à partir du référentiel officiel Ubuntu.
9. Entrez la commande suivante dans la console de votre serveur pour obtenir php7.0 et le package d'extension, qui permet à php de communiquer avec le processus du service réseau nginx.
$ sudo apt install php7.0 php7.0-fpm
Installez php 7 et php-fpm
10 Une fois l'interpréteur php7.0 installé avec succès, entrez la commande suivante pour démarrer ou vérifier le démon php7.0-fpm :
$ sudo systemctl start php7.0-fpm $ sudo systemctl status php7.0-fpm
开启、验证 php-fpm 服务
11、 当前的 nginx 配置文件已经配置了使用 php fpm 来提供动态内容。
下面给出的这部分服务器配置让 nginx 能够使用 php 解释器,所以不需要对 nginx 配置文件作别的修改。
location ~ \.php$ { include snippets/fastcgi-php.conf; fastcgi_pass unix:/run/php/php7.0-fpm.sock; }
下面是的截图是 nginx 默认配置文件的内容。你可能需要对其中的代码进行修改或者取消注释。
启用 php fastcgi
12、 要测试启用了 php-fpm 的 nginx 服务器,用下面的命令创建一个 php 测试配置文件 info.php。接着用 http://ip_or domain/info.php 这个网址来查看配置。
$ sudo su -c 'echo "<?php phpinfo(); ?>" |tee /var/www/html/info.php'
创建 php info 文件
检查 php fastcgi 的信息
检查服务器是否宣告支持 http/2.0 协议,定位到 php 变量区域中的 $_server[‘server_protocol'] 就像下面这张截图一样。
检查 http2.0 协议信息
13、 为了安装其它的 php7.0 模块,使用 apt search php7.0 命令查找 php 的模块然后安装。
如果你想要 安装 wordpress 或者别的 cms,需要安装以下的 php 模块,这些模块迟早有用。
$ sudo apt install php7.0-mcrypt php7.0-mbstring
安装 php 7 模块
14、 要注册这些额外的 php 模块,输入下面的命令重启 php-fpm 守护进程。
$ sudo systemctl restart php7.0-fpm.service
第 4 步:安装 mariadb 数据库
15、 最后,我们需要 mariadb 数据库来存储、管理网站数据,才算完成 lemp 的搭建。
运行下面的命令安装 mariadb 数据库管理系统,重启 php-fpm 服务以便使用 mysql 模块与数据库通信。
$ sudo apt install mariadb-server mariadb-client php7.0-mysql $ sudo systemctl restart php7.0-fpm.service
安装 mariadb
16、 为了安全加固 mariadb,运行来自 ubuntu 软件仓库中的二进制包提供的安全脚本,这会询问你设置一个 root 密码,移除匿名用户,禁用 root 用户远程登录,移除测试数据库。
输入下面的命令运行脚本,并且确认所有的选择。参照下面的截图。
$ sudo mysql_secure_installation
mariadb 的安全安装
17、 配置 mariadb 以便普通用户能够不使用系统的 sudo 权限来访问数据库。用 root 用户权限打开 mysql 命令行界面,运行下面的命令:
$ sudo mysql mariadb> use mysql; mariadb> update user set plugin='‘ where user='root'; mariadb> flush privileges; mariadb> exit
mariadb 的用户权限
最后通过执行以下命令登录到 mariadb 数据库,就可以不需要 root 权限而执行任意数据库内的命令:
$ mysql -u root -p -e 'show databases'
查看 mariadb 数据库
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!