在OpenSUSE Leap 42.1上安装LEMP堆栈(Nginx,MariaDB,PHP)

在本教程中,我们将学习如何在OpenSUSE Leap 42.1上安装LEMP堆栈(Nginx,MariaDB和PHP)。 您会发现此过程与在Debian,Fedora或CentOS上安装LEMP堆栈有些不同。 在特殊情况下,我们必须设置SuSE防火墙以允许Internet用户访问端口80。因此,事不宜迟,让我们开始吧。

步骤1:安装Nginx Web服务器

Nginx的 [engine x] 是由Igor Sysoev编写的HTTP服务器和IMAP / POP3代理服务器。 它已经在许多重载的俄罗斯站点上运行了很多年。

运行以下命令以在OpenSUSE Leap 42.1上安装Nginx

sudo zypper install nginx

然后启动Nginx进程,并将其设置为在系统启动时自动启动。

sudo systemctl start nginx

sudo systemctl enable nginx

现在创建一个 index.html 文件在 / srv / www / htdocs/网络根目录。

sudo nano /srv/www/htdocs/index.html

将以下HTML代码复制并粘贴到此文件中。

<!doctype html>
<html>
<body>
Welcome to Nginx on OpenSUSE!
</body>
</html>

保存并关闭文件。 现在,在Web浏览器中,键入您的OpenSUSE Leap 42.1计算机的IP地址。 如果您是本地计算机,则将看到以下内容。

如果要在远程服务器上安装Nginx,则需要配置SuSE防火墙以允许对端口80的公共访问,因为默认情况下,它仅允许对端口80的本地访问。打开防火墙配置文件。

sudo nano /etc/sysconfig/SuSEfirewall2

找到以下行。 (这是第253行。)

FW_SERVICES_EXT_TCP=""

在引号之间添加80。

FW_SERVICES_EXT_TCP="80"

FW表示防火墙,而EXT表示外部区域(Int​​ernet)。 这个指令意味着防火墙允许外部区域访问TCP端口80,这是Nginx监听的端口。 保存并关闭文件。 然后重新启动SuSE防火墙。

sudo systemctl restart SuSEfirewall2

现在,您应该可以访问远程Web服务器了。

步骤2:配置默认服务器块

中的默认服务器块 /etc/nginx/nginx.conf 一个静态HTML网站的文件就足够了。 但是,我们将安装PHP,因此我们需要更改默认服务器的某些配置。

这是我的配置。

server {
listen       80;
server_name  localhost;
#charset koi8-r;
#access_log  /var/log/nginx/host.access.log  main;
location / {
root   /srv/www/htdocs/;
index  index.php index.html index.htm;
}
#error_page  404              /404.html;
# redirect server error pages to the static page /50x.html
#
error_page   500 502 503 504  /50x.html;
location = /50x.html {
root   /srv/www/htdocs/;
}
# proxy the PHP scripts to Apache listening on 127.0.0.1:80
#
#location ~ .php$ {
#    proxy_pass   http://127.0.0.1;
#}

# pass the PHP scripts to FastCGI server listening on 127.0.0.1:9000
#
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;
        }

您唯一需要更改的就是取消注释与PHP相关的位置块并进行更改 /脚本 $ document_root。 保存并关闭文件。 然后运行Nginx配置测试。

sudo nginx -t
nginx: the configuration file /etc/nginx/nginx.conf syntax is ok
nginx: configuration file /etc/nginx/nginx.conf test is successful

如果测试成功,请重新加载Nginx。

sudo systemctl reload nginx

步骤3:安装MariaDB

MariaDB是MySQL数据库服务器的向后兼容的嵌入式替换分支。 它包括所有主要的开源存储引擎,包括Maria存储引擎。

使用以下命令安装MariaDB:

sudo zypper install mariadb mariadb-client

然后启动MariaDB服务,并在系统启动时启用自动启动。

sudo systemctl start mysql

sudo systemctl enable mysql

现在运行 mysql_secure_installation 脚本来为MariaDB root用户设置密码,删除匿名用户,禁用远程root登录并删除测试数据库。

 sudo mysql_secure_installation

在OpenSUSE Leap 42.1上安装LEMP堆栈

步骤4:安装PHP5

PHP是服务器端,跨平台的HTML嵌入式脚本语言。 运行以下命令以在OpenSUSE Leap上安装PHP5。

sudo zypper install php5-fpm

接下来,重命名/etc / php5 / fpm / php-fpm.conf.default/etc/php5/fpm/php-fpm.conf

sudo mv /etc/php5/fpm/php-fpm.conf.default /etc/php5/fpm/php-fpm.conf

现在编辑php-fpm配置文件。

sudo nano /etc/php5/fpm/php-fpm.conf

从更改用户和组值 没有人Nginx的

user = nginx
group = nginx

还可以在此文件中找到以下行。

;error_log = log/php-fpm.log

并将其更改为此:

error_log = /var/log/php-fpm.log

保存并关闭文件。 现在复制 php.ini 文件到/ etc / php5 / fpm /目录。

sudo cp /etc/php5/cli/php.ini /etc/php5/fpm/

然后编辑该文件。

sudo nano /etc/php5/fpm/php.ini

找到以下行:

;cgi.fix_pathinfo=1

并将其更改为此:

cgi.fix_pathinfo=0

保存并关闭文件。 现在启动php-fpm服务,并在系统启动时启用自动启动。

sudo systemctl start php-fpm

sudo systemctl enable php-fpm

最后一步:测试PHP

在Web根目录下创建一个php文件。

sudo nano /srv/www/htdocs/test.php

复制以下文本并将其粘贴到文件中。

<?php
phpinfo();
?>

保存文件,然后重新加载Nginx。

sudo systemctl reload nginx

在您的Web浏览器中,导航到 您的服务器IP / test.php。 您将看到服务器的所有PHP信息。

在OpenSUSE Leap 42.1上安装LEMP堆栈

恭喜! 您已在OpenSUSE Leap 42.1上成功安装了LEMP堆栈。 出于安全原因,最好从服务器中删除test.php文件,以免其他人窥视它。

Sidebar