如何在Ubuntu云服务器上安装Nginx、PHP和MySQL?

  • 发布时间:2022-01-23 10:19:45
  • 阅读次数:825

LEMP平台(Linux、Nginx、MySQL、PHP)是LAMP平台(Linux、Apache、MySQL、PHP)的一种替代方案,两者之间唯一的差别就是LEMP的Web服务器用的是Nginx,而LAMP用的是Apache。相比Apache,Nginx更迅速更安全。这篇帮助讲解如何在Ubuntu云服务器上安装LEMP平台的方法。

准备工作

首先我们创建一台安装Ubuntu 20.04操作系统的云服务器,安装Nginx和MariaBD和PHP,并且将操作系统更新到最新版本。

$ sudo apt install -y nginx mariadb-server php-fpm php-mysql
$ sudo apt update && sudo apt upgrade

配置MariaDB

首先运行MariaDB/MySQL安装向导,通过向导设置root密码,其余选项保持默认即可。

$ sudo mysql_secure_installation

连接MariaDB,创建测试数据库example_db,并设置数据库用户名username和密码password。

$ sudo mariadb

CREATE DATABASE example_db;
GRANT ALL ON example_db.* TO 'username'@'localhost' IDENTIFIED BY 'password' WITH GRANT OPTION;
FLUSH PRIVILEGES;
exit

下面测试使用用户名和密码能否连接成功,然后创建数据表table1,并插入一行记录。

$ sudo mariadb -u username -p

SHOW DATABASES;
USE example_db;
CREATE TABLE table1(column1 varchar(255));
INSERT INTO table1 VALUES("Database connection established successfully");
exit

配置Nginx

为网站创建一个目录,并给予适当的所有者权限,注意把example.com替换为实际域名。

$ sudo mkdir -p /var/www/example.com
$ sudo chown -R $USER:$USER /var/www/example.com

编辑站点配置文件,把example.com替换为实际域名。

$ sudo nano /etc/nginx/sites-available/example.com

在配置文件中添加如下代码,同样要把example.com替换为实际域名。

server {
    listen 80;
    listen [::]:80;
    server_name www.example.com;
    server_name example.com;
    root /var/www/example.com;
    location / {
        index index.html;
    }
}

重启Nginx使之生效。

$ sudo systemctl restart nginx.service

测试

在网站根目录下创建一个PHP测试文件。

$ nano /var/www/example.com/testdb.php

添加如下代码,并把username和password替换为之前配置的MariaDB的用户名和密码。

<?php
$mysqli = new mysqli("localhost", "username", "password", "example_db");
if (mysqli_connect_errno()) {
    printf("Connection failed: %s\n", mysqli_connect_error());
    exit();
}
$query = "SELECT column1 FROM table1";
if($result = $mysqli->query($query)) {
    while($row = $result->fetch_row()){
        printf("%s\n", $row[0]);
    }
    $result->close();
}
$mysqli->close();

最后在浏览器中访问:http://example.com/testdb.php ,如果没有报错信息,说明这台Ubuntu云服务器的LEMP平台已配置成功。

【全文完】

< 上一篇:如何在Debian云服务器上安装Nginx、PHP和MySQL? 下一篇:如何在FreeBSD云服务器上安装Nginx、PHP和MySQL? >