网站搜索

在 OpenSUSE 中安装 LEMP - Nginx、PHP、MariaDB 和 PhpMyAdmin


LEMPLinuxEngine-xMySQLPHP 堆栈是一个软件由安装在 Linux 操作系统上的开源软件组成,用于运行由 Nginx HTTP 服务器和 MySQL/MariaDB 数据库管理系统支持的基于 PHP 的 Web 应用程序。

另请阅读:在 OpenSUSE 中安装 LAMP – Apache、PHP、MariaDB 和 PhpMyAdmin

本教程将指导您如何使用 NginxMariaDBPHP 安装 LEMP 堆栈OpenSuse 服务器/桌面版本上的 PHP-FPMPhpMyAdmin

安装 Nginx HTTP 服务器

Nginx 是一个快速可靠的 HTTP 和代理服务器,可以处理更高负载的 HTTP 请求。它使用异步事件驱动的方法来处理请求,其模块化事件驱动架构可以在高负载下提供更可预测的性能。

要在 OpenSuse 上安装 Nginx,请运行以下命令。

sudo zypper install nginx

安装Nginx后,您可以暂时启动该服务,然后使其在启动时自动启动,并通过运行以下命令验证Nginx的状态。

sudo systemctl start nginx
sudo systemctl enable nginx
sudo systemctl status nginx

另请阅读:每个 Linux 用户必须了解的 10 个最常用的 Nginx 命令

此时,Nginx Web 服务器应该已启动并正在运行,您还可以使用 netstat 命令验证状态,如图所示。

sudo netstat -tlpn | grep nginx

现在,我们需要测试 Nginx 安装是否正常工作。与其他 Linux 发行版不同,在 openSUSE 下,Nginx 的 Web 根文件夹中没有标准的 index.html 文档。我们需要在根 Web 目录“/srv/www/htdocs”下创建一个新的 index.html 文件,如图所示。

echo "<h1>Nginx is running fine on openSUSE Leap</h1>" | sudo tee /srv/www/htdocs/index.html

如果您安装了firewalld,则需要打开端口80443以允许防火墙上的网络流量。

sudo firewall-cmd --permanent --add-port=80/tcp
sudo firewall-cmd --permanent --add-port=443/tcp
sudo firewall-cmd --reload

接下来,打开 Web 浏览器并导航到地址 http://localhost 并验证 Nginx 页面。

安装 MariaDB 数据库服务器

MariaDBMySQL 关系数据库管理系统的免费开源分支。它由 MySQL 的原始开发人员开发,并打算保持开源。 MariaDB 速度快、可扩展且稳健,拥有丰富的存储引擎、插件和许多其他工具生态系统,使其非常适合各种用例。

要在 OpenSuse 上安装 MariaDB,请运行以下命令。

sudo zypper install mariadb mariadb-client 

接下来,暂时启动 MariaDB 服务,然后使其在启动时自动启动并检查其状态。

sudo systemctl start mariadb 
sudo systemctl enable mariadb 
sudo systemctl status mariadb 

本节下的下一个关键步骤是保护 MariaDB 服务器安装的安全。因此,运行 MariaDB 包附带的安全脚本,如图所示。

注意:强烈建议生产中的所有 MariaDB 服务器运行 MariaDB 安全脚本及其所有部分。

sudo mysql_secure_installation 

运行脚本后,请仔细阅读每一步的说明。您应该设置 root 用户密码,删除匿名用户,禁用远程 root 访问,删除测试数据库并对其进行访问,最后重新加载权限表。

安装和配置 PHP 和 PHP-FPM

PHP-FPMPHP FastCGI Process Manager 的缩写)是 PHP 的替代 FastCGI 守护进程,具有一些附加功能并设计用于处理高负载。它维护池(可以响应 PHP 请求的workers)来完成此任务。重要的是,对于多用户 PHP 环境,它比传统的基于 CGI 的方法(例如 SUPHP)更快。

要安装 PHPPHP-FPM 以及所需的模块,请运行以下命令。

sudo zypper install php php-mysql php-fpm php-gd php-mbstring

在继续启动 PHP-FPM 服务之前,我们需要从安装过程中提供的默认文件创建所需的配置文件,并配置该服务以准备运行。

sudo cp /etc/php7/fpm/php-fpm.conf.default  /etc/php7/fpm/php-fpm.conf 
sudo cp /etc/php7/fpm/php-fpm.d/www.conf.default /etc/php7/fpm/php-fpm.d/www.conf

然后打开主php-fpm.conf配置文件进行编辑。

sudo vim /etc/php7/fpm/php-fpm.conf 

取消注释以下行号 24 处的行,如图所示。

error_log = log/php-fpm.log

保存并关闭文件。

接下来,我们需要在 www.conf 配置文件中为已配置的池定义正确的设置。

sudo vim /etc/php7/fpm/php-fpm.d/www.conf

首先,将进程的Unix所有者和组所有者配置为Nginx用户和组。通过将用户和组参数的值从 nobody 更改为 nginx 来实现此目的。

user = nginx
group = nginx

现在保存对文件的更改并退出。

此外,还有一项更重要的配置需要执行,它可以保护 /etc/php/cli/php.ini 文件中的 PHP-FPM

sudo vim /etc/php7/cli/php.ini

搜索行 ;cgi.fix_pathinfo=1 并将其更改为。

cgi.fix_pathinfo=0

保存文件中的更改并退出。

接下来,暂时启动 PHP-FPM 服务,然后使其在启动时自动启动并检查其状态。

sudo systemctl start php-fpm
sudo systemctl enable php-fpm
sudo systemctl status php-fpm

配置 Nginx 以与 PHP-FPM 配合使用

此时,我们需要在默认的 Nginx 配置文件中配置 Nginx 以与 PHP-FPM 配合使用。

sudo vim /etc/nginx/nginx.conf

然后查找以下部分,并将 index.php 添加到预期索引文件列表中。

location / { 
           root   /srv/www/htdocs/; 
           index  index.php index.html index.htm ; 
       }

另请找到以下部分(应将其注释掉)并取消注释。此部分用于将 PHP 脚本传递到在 127.0.0.1:9000 上侦听的 FastCGI 服务器。

location ~ \.php$ { 
       root           /srv/www/htdocs/; 
       fastcgi_pass   127.0.0.1:9000; 
       fastcgi_index  index.php; 
       fastcgi_param  SCRIPT_FILENAME  $document_root$fastcgi_script_name; 
       include        fastcgi_params; 
       }

保存文件中的更改并退出。

测试 Nginx 和 PHP-FPM

下一步是通过在 DocumentRoot 目录下创建一个新的 PHP 测试文件来测试 Nginx 是否与 PHP-FPM 配合使用良好显示。

echo "<?php phpinfo(); ?>" | sudo tee /srv/www/htdocs/info.php

现在我们需要检查 Nginx 配置是否正确,如下所示,然后再重新启动服务。

sudo nginx -t

如果 Nginx 配置语法正确,请继续并重新启动 NginxPHP-FPM 服务以使最近的更改生效。

sudo systemctl restart nginx php-fpm

现在打开 Web 浏览器并导航到地址 http://localhost/info.php 以验证 PHP 配置,如以下屏幕截图所示。

安装和配置 PhpMyAdmin

phpMyAdmin 是一个用 PHP 编写的免费、简单易用且流行的工具,专为通过 Web 管理 MySQL 服务器而构建。它支持MySQLMariaDB上的广泛操作。

要在 OpenSuse 上安装 phpMyAdmin,请运行以下命令。

sudo zypper install phpMyAdmin

安装完成后,创建一个新的虚拟主机配置文件以访问 phpMyAdmin,如图所示。

sudo vim /etc/nginx/vhosts.d/phpmyadmin.conf

将以下配置添加到文件中。

server { 
   listen 80; 

   server_name localhost/phpMyAdmin; 

  root /srv/www/htdocs/phpMyAdmin; 

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

   location ~ \.php$ { 
       try_files $uri =404; 
       fastcgi_pass 127.0.0.1:9000; 
       fastcgi_index index.php; 
       include fastcgi_params; 
   } 
} 

保存更改并关闭文件。然后使用以下命令重新启动 Nginx 服务。

sudo systemctl restart nginx

现在转到您的网络浏览器并输入地址http://localhost/phpMyAdminphpMyAdmin 登录页面应显示如下屏幕截图所示。输入您的数据库根用户登录凭据,然后单击开始

就这样!在本教程中,我们向您解释了如何使用 NginxMariaDBPHP、< OpenSuse 服务器/桌面版本上的 PHP-FPM 和 PhpMyAdmin。如果您在设置过程中遇到任何问题,请通过下面的评论表提出您的问题。