在 OpenSUSE 中安装 LEMP - Nginx、PHP、MariaDB 和 PhpMyAdmin
LEMP 或 Linux、Engine-x、MySQL 和 PHP 堆栈是一个软件由安装在 Linux 操作系统上的开源软件组成,用于运行由 Nginx HTTP 服务器和 MySQL/MariaDB 数据库管理系统支持的基于 PHP 的 Web 应用程序。
另请阅读:在 OpenSUSE 中安装 LAMP – Apache、PHP、MariaDB 和 PhpMyAdmin
本教程将指导您如何使用 Nginx、MariaDB、PHP、 安装 LEMP 堆栈OpenSuse 服务器/桌面版本上的 PHP-FPM 和 PhpMyAdmin。
安装 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,则需要打开端口80和443以允许防火墙上的网络流量。
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 数据库服务器
MariaDB 是 MySQL 关系数据库管理系统的免费开源分支。它由 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-FPM(PHP FastCGI Process Manager 的缩写)是 PHP 的替代 FastCGI 守护进程,具有一些附加功能并设计用于处理高负载。它维护池(可以响应 PHP 请求的workers)来完成此任务。重要的是,对于多用户 PHP 环境,它比传统的基于 CGI 的方法(例如 SUPHP)更快。
要安装 PHP 和 PHP-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 配置语法正确,请继续并重新启动 Nginx 和 PHP-FPM 服务以使最近的更改生效。
sudo systemctl restart nginx php-fpm
现在打开 Web 浏览器并导航到地址 http://localhost/info.php
以验证 PHP 配置,如以下屏幕截图所示。
安装和配置 PhpMyAdmin
phpMyAdmin 是一个用 PHP 编写的免费、简单易用且流行的工具,专为通过 Web 管理 MySQL 服务器而构建。它支持MySQL和MariaDB上的广泛操作。
要在 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/phpMyAdmin。 phpMyAdmin 登录页面应显示如下屏幕截图所示。输入您的数据库根用户登录凭据,然后单击开始。
就这样!在本教程中,我们向您解释了如何使用 Nginx、MariaDB、PHP、< OpenSuse 服务器/桌面版本上的 PHP-FPM 和 PhpMyAdmin。如果您在设置过程中遇到任何问题,请通过下面的评论表提出您的问题。