Ubuntu如何为Nginx服务器安装LEMP环境
时间:2023-05-24 15:58
前置准备 安装 ubuntu 16.04 服务器版本 步骤 1:安装 nginx 服务器 1、nginx 是一个先进的、资源优化的 web 服务器程序,用来向因特网上的访客展示网页。我们从 nginx 服务器的安装开始介绍,使用 apt 命令 从 ubuntu 的官方软件仓库中获取 nginx 程序。 在 ubuntu 16.04 安装 nginx 检查 nginx 网络端口连接 检查 nginx 服务状态 当你确认服务进程已经启动了,你可以打开一个浏览器,使用 http 协议访问你的服务器 ip 地址或者域名,浏览 nginx 的默认网页。 步骤 2:启用 nginx http/2.0 协议 3、 对 http/2.0 协议的支持默认包含在 ubuntu 16.04 最新发行版的 nginx 二进制文件中了,它只能通过 ssl 连接并且保证加载网页的速度有巨大提升。 要启用nginx 的这个协议,首先找到 nginx 提供的网站配置文件,输入下面这个命令备份配置文件。 备份 nginx 的网站配置文件 启用 nginx http 2 协议 上述添加到服务器配置的最后一段,是用来将所有非 ssl 的流量重定向到 ssl/tls 默认主机。然后用你主机的 ip 地址或者 dns 记录(最好用 fqdn 名称)替换掉 server_name 选项的参数。 5、 当你按照以上步骤编辑完 nginx 的默认配置文件之后,用下面这些命令来生成、查看 ssl 证书和密钥。 用你自定义的设置完成证书的制作,注意 common name 设置成和你的 dns fqdn 记录或者服务器 ip 地址相匹配。 生成 nginx 的 ssl 证书和密钥 创建 diffie-hellman 密钥 检查 nginx 的配置 测试 nginx http 2.0 协议 第 3 步:安装 php 7 解释器 通过 fastcgi 进程管理程序的协助,nginx 能够使用 php 动态语言解释器生成动态网络内容。fastcgi 能够从 ubuntu 官方仓库中安装 php-fpm 二进制包来获取。 9、 在你的服务器控制台里输入下面的命令来获取 php7.0 和扩展包,这能够让 php 与 nginx 网络服务进程通信。 安装 php 7 以及 php-fpm 开启、验证 php-fpm 服务 下面给出的这部分服务器配置让 nginx 能够使用 php 解释器,所以不需要对 nginx 配置文件作别的修改。 下面是的截图是 nginx 默认配置文件的内容。你可能需要对其中的代码进行修改或者取消注释。 启用 php fastcgi 创建 php info 文件 检查 php fastcgi 的信息 检查 http2.0 协议信息 如果你想要 安装 wordpress 或者别的 cms,需要安装以下的 php 模块,这些模块迟早有用。 安装 php 7 模块 第 4 步:安装 mariadb 数据库 15、 最后,我们需要 mariadb 数据库来存储、管理网站数据,才算完成 lemp 的搭建。 运行下面的命令安装 mariadb 数据库管理系统,重启 php-fpm 服务以便使用 mysql 模块与数据库通信。 安装 mariadb 输入下面的命令运行脚本,并且确认所有的选择。参照下面的截图。 mariadb 的安全安装 mariadb 的用户权限 查看 mariadb 数据库 以上就是Ubuntu如何为Nginx服务器安装LEMP环境的详细内容,更多请关注Gxl网其它相关文章!$ sudo apt-get install nginx
2、 然后输入 netstat 和 systemctl 命令,确认 nginx 进程已经启动并且绑定在 80 端口。$ netstat -tlpn
$ sudo systemctl status nginx.service
http://ip-address
$ cd /etc/nginx/sites-available/$ sudo mv default default.backup
4、然后,用文本编辑器新建一个默认文件,输入以下内容: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;}
上面的配置片段向所有的 ssl 监听指令中添加 http2 参数来启用 http/2.0。$ 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/
6、 通过输入以下命令使用一个强 dh 加密算法,这会修改之前的配置文件 ssl_dhparam 所配置的文件。$ sudo openssl dhparam -out /etc/nginx/ssl/dhparam.pem 2048
7、 当 diffie-hellman 密钥生成之后,验证 nginx 的配置文件是否正确、能否被 nginx 网络服务程序应用。然后运行以下命令重启守护进程来观察有什么变化。$ sudo nginx -t$ sudo systemctl restart nginx.service
8、 键入下面的命令来测试 nginx 使用的是 http/2.0 协议。看到协议中有 h2 的话,表明 nginx 已经成功配置使用 http/2.0 协议。所有最新的浏览器默认都能够支持这个协议。$ openssl s_client -connect localhost:443 -nextprotoneg ''
$ sudo apt install php7.0 php7.0-fpm
10、 当 php7.0 解释器安装成功后,输入以下命令启动或者检查 php7.0-fpm 守护进程:$ sudo systemctl start php7.0-fpm$ sudo systemctl status php7.0-fpm
11、 当前的 nginx 配置文件已经配置了使用 php fpm 来提供动态内容。location ~ .php$ { include snippets/fastcgi-php.conf; fastcgi_pass unix:/run/php/php7.0-fpm.sock; }
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'
检查服务器是否宣告支持 http/2.0 协议,定位到 php 变量区域中的 $_server[‘server_protocol'] 就像下面这张截图一样。
13、 为了安装其它的 php7.0 模块,使用 apt search php7.0 命令查找 php 的模块然后安装。$ sudo apt install php7.0-mcrypt php7.0-mbstring
14、 要注册这些额外的 php 模块,输入下面的命令重启 php-fpm 守护进程。$ sudo systemctl restart php7.0-fpm.service
$ sudo apt install mariadb-server mariadb-client php7.0-mysql$ sudo systemctl restart php7.0-fpm.service
16、 为了安全加固 mariadb,运行来自 ubuntu 软件仓库中的二进制包提供的安全脚本,这会询问你设置一个 root 密码,移除匿名用户,禁用 root 用户远程登录,移除测试数据库。$ sudo mysql_secure_installation
17、 配置 mariadb 以便普通用户能够不使用系统的 sudo 权限来访问数据库。用 root 用户权限打开 mysql 命令行界面,运行下面的命令:$ sudo mysql mariadb> use mysql;mariadb> update user set plugin='‘ where user='root';mariadb> flush privileges;mariadb> exit
最后通过执行以下命令登录到 mariadb 数据库,就可以不需要 root 权限而执行任意数据库内的命令:$ mysql -u root -p -e 'show databases'