下面我将为您详细讲解“在 Ubuntu 16.04 为 Nginx 服务器安装 LEMP 环境(MariaDB,PHP 7 并支持 HTTP 2.0)”的完整攻略。
环境要求
在开始设置 LEMP 环境之前,请确保已满足以下条件:
- 已使用 sudo 权限登录到 Ubuntu 16.04 服务器;
- 已安装 Nginx 服务器;
- 已配置域名解析到服务器的 IP 地址。
安装 MariaDB
使用以下命令从 MariaDB 官方网站添加软件包源,并安装 MariaDB 数据库:
sudo apt-key adv --fetch-keys 'https://mariadb.org/mariadb_release_signing_key.asc'
sudo add-apt-repository 'deb [arch=amd64] https://mirrors.tuna.tsinghua.edu.cn/mariadb/repo/10.5/ubuntu focal main'
sudo apt update
sudo apt install -y mariadb-server
配置 MariaDB
安装完 MariaDB 后,需要配置它以增强安全性并更好地适应实际情况。
使用以下命令从命令行启动 MariaDB,并运行安全脚本。
sudo mysql_secure_installation
脚本将提示您输入 MariaDB root 用户密码。如果未设置,请按 Enter 键跳过此步骤。
随后脚本将提示你进行以下操作:
- 更改 MariaDB root 用户密码
- 删除匿名用户
- 禁用 root 远程登录
- 删除 test 数据库和相关用户
根据需要选择和完成每个操作。建议按照脚本的建议进行操作。
安装 PHP 7
使用以下命令安装 PHP 7 和相关扩展:
sudo apt install -y php-fpm php-mysql php-mbstring php-xml php-zip php-gd
安装完成后,编辑 /etc/php/7.0/fpm/php.ini 文件,找到如下配置:
;cgi.fix_pathinfo=1
将其改为:
cgi.fix_pathinfo=0
然后,重新启动 PHP-FPM 服务:
sudo systemctl restart php7.0-fpm
配置 Nginx 支持 PHP
默认情况下,Nginx 不支持 PHP,我们需要进行以下设置:
首先,在 /etc/nginx/sites-available/ 目录下创建一个新的虚拟主机配置文件:
sudo nano /etc/nginx/sites-available/example.com
将以下内容复制到文件中:
server {
listen 80;
server_name example.com;
root /var/www/html;
index index.php index.html index.htm;
location / {
try_files $uri $uri/ /index.php$is_args$args;
}
location ~ \.php$ {
include snippets/fastcgi-php.conf;
fastcgi_pass unix:/run/php/php7.0-fpm.sock;
}
location ~ /\.ht {
deny all;
}
}
将其中的 server_name 修改为你的域名,root 修改为你的网站目录。
保存并关闭文件,使用以下命令创建软链接到 Nginx 的 sites-enabled 目录中:
sudo ln -s /etc/nginx/sites-available/example.com /etc/nginx/sites-enabled/
然后检查 Nginx 的配置文件是否存在语法错误:
sudo nginx -t
如没有出现错误,重新启动 Nginx 服务:
sudo systemctl restart nginx
支持 HTTP 2.0
要启用 HTTP 2.0,您需要使用 TLS/SSL。可以使用 Let's Encrypt 免费证书。在 http{} 部分的 server{} block 的配置中增加 ssl 配置即可开启:
listen 443 ssl http2;
ssl_certificate /etc/letsencrypt/live/example.com/fullchain.pem;
ssl_certificate_key /etc/letsencrypt/live/example.com/privkey.pem;
其中 example.com 改为你的域名。
同时您需要在 /etc/nginx/nginx.conf 文件里增加以下代码:
http2_idle_timeout 5m;
重启 Nginx 服务,即可启用 HTTP 2.0:
sudo systemctl restart nginx
示例说明
示例一:为 example.com 设置 LEMP 环境
假设我们的域名为 example.com,网站根目录为 /var/www/html。
首先,安装 MariaDB:
sudo apt-key adv --fetch-keys 'https://mariadb.org/mariadb_release_signing_key.asc'
sudo add-apt-repository 'deb [arch=amd64] https://mirrors.tuna.tsinghua.edu.cn/mariadb/repo/10.5/ubuntu focal main'
sudo apt update
sudo apt install -y mariadb-server
然后启动 MariaDB,进行安全配置:
sudo systemctl start mariadb
sudo mysql_secure_installation
接着,安装 PHP 7 和相关扩展:
sudo apt install -y php-fpm php-mysql php-mbstring php-xml php-zip php-gd
修改 php.ini:
sudo nano /etc/php/7.0/fpm/php.ini
修改以下内容:
cgi.fix_pathinfo=0
然后重启服务:
sudo systemctl restart php7.0-fpm
最后,创建虚拟主机配置文件:
sudo nano /etc/nginx/sites-available/example.com
将以下文本复制到文件中:
server {
listen 80;
server_name example.com;
root /var/www/html;
index index.php index.html index.htm;
location / {
try_files $uri $uri/ /index.php$is_args$args;
}
location ~ \.php$ {
include snippets/fastcgi-php.conf;
fastcgi_pass unix:/run/php/php7.0-fpm.sock;
}
location ~ /\.ht {
deny all;
}
}
保存文件并创建软链接:
sudo ln -s /etc/nginx/sites-available/example.com /etc/nginx/sites-enabled/
最后,检查 Nginx 的语法是否正确,然后重新启动服务:
sudo nginx -t
sudo systemctl restart nginx
现在您的例子域名 example.com 已完成 LEMP 环境配置。
示例二:启用 HTTP 2.0
假设您已经具有有效的域名和 Let's Encrypt SSL 证书,你可以在 Nginx 的虚拟主机配置文件中添加以下内容:
listen 443 ssl http2;
ssl_certificate /etc/letsencrypt/live/example.com/fullchain.pem;
ssl_certificate_key /etc/letsencrypt/live/example.com/privkey.pem;
其中 example.com 改为你的域名。
然后,您需要编辑 /etc/nginx/nginx.conf 文件,并添加以下代码:
http2_idle_timeout 5m;
重启 Nginx 服务:
sudo systemctl restart nginx
就可以启用 HTTP 2.0 了。
这就是完整的“在 Ubuntu 16.04 为 Nginx 服务器安装 LEMP 环境(MariaDB,PHP 7 并支持 HTTP 2.0)”攻略,希望对您有所帮助。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:在 Ubuntu 16.04 为 Nginx 服务器安装 LEMP 环境(MariaDB,PHP 7 并支持 HTTP 2.0) - Python技术站