技术教程 · 2019年12月16日 0

如何在Ubuntu 18.04上使用PHP和MySQL(LEMP Stack)安装Nginx

Nginx  (发音为“ engine x”)是一个免费的,开源的高性能HTTP服务器。Nginx以其稳定性,丰富的功能集,简单的配置和低资源消耗而著称。本教程显示了如何在具有PHP 7.2支持(通过 PHP-FPM )和MySQL支持(LEMP =  L inux + nginx(发音为“ e ngine x”)+  M ySQL +  P HP)的Ubuntu 18.04 LTS服务器上安装Nginx 。

先决条件

  • Ubuntu 18.04 LTS服务器
  • 根特权

我们要做什么?

  1. 安装Nginx
  2. 安装MySQL
  3. 安装PHP-FPM
  4. 配置Nginx和PHP-FPM
  5. 安装PhpMyAdmin
  6. 配置PhpMyAdmin
  7. 测试中

步骤1-安装Nginx

Nginx或引擎x是具有低内存消耗的高性能HTTP和代理服务器。Netflix,Pinterest,CloudFlare,GitHub等大多数大型网站都在使用Nginx。

在此步骤中,我们将从Ubuntu存储库中安装Nginx Web服务器。

运行下面的命令。

sudo apt install nginx -y

安装完成后,启动Nginx服务,并使其在每次系统引导时启动。

systemctl start nginx
systemctl enable nginx

Nginx安装完成。

配置防火墙

建议打开服务器上的防火墙。

将SSH和HTTP服务端口添加到防火墙配置中。

运行下面的UFW命令。

ufw allow ssh
ufw allow http

现在启动UFW防火墙,并使其在系统引导时每次启动。

ufw enable

Nginx Web服务器已启动并在UFW防火墙下运行。

UFW防火墙配置

第2步-安装MySQL

MySQL是由Oracle Corporation创建的最受欢迎的开源关系数据库管理系统(RDBMS)。它是LEMP Stack的核心组件,我们将从Ubuntu存储库中安装最新的MySQL版本。

使用下面的apt命令安装MySQL。

sudo apt install mysql-server mysql-client -y

MySQL安装完成后,启动MySQL服务并使其每次在系统引导时启动。

systemctl start mysql
systemctl enable mysql

安装MySQL数据库服务器

并且我们已经在Ubuntu 18.04服务器上安装了MySQL 5.7。

第3步-安装PHP-FPM

PHP-FPM或FastCGI Process Manager是较旧的PHP FastCGI的替代方法,它提供了附加功能并提高了速度。它非常适合基于PHP编程语言的小型到大型站点。

在此步骤中,我们将安装PHP7.2-FPM,以及phpmyadmin所需的一些其他扩展。

使用以下命令安装PHP-FPM。

sudo apt install php7.2 php7.2-fpm php7.2-cli php7.2-curl php7.2-mysql php7.2-curl php7.2-gd php7.2-mbstring php-pear -y

现在启动PHP-FPM服务,并使其在所有安装完成后每次系统引导时启动。

systemctl start php7.2-fpm
systemctl enable php7.2-fpm

PHP7.2-FPM已在sock文件下的Ubuntu 18.04上启动并运行,请使用netstat命令对其进行检查。

netstat -pl | grep php

安装并测试PHP FPM

第4步-配置Nginx和PHP-FPM

在此步骤中,我们将配置Nginx Web服务器和PHP-FPM。

配置Nginx

转到“ / etc / nginx”配置目录,然后使用vim或nano编辑“ nginx.conf”文件。

cd /etc/nginx/
vim nginx.conf

取消注释以下几行。

keepalive_timeout 2;
server_tokens off;

保存配置文件并退出编辑器。

现在编辑默认的Nginx虚拟主机文件。

vim sites-available/default

取消注释以下所示的PHP行,并更改sock文件行。

        location ~ \.php$ {
                include snippets/fastcgi-php.conf;
        #
        # # With php-fpm (or other unix sockets):
                fastcgi_pass unix:/var/run/php/php7.2-fpm.sock;
        # # With php-cgi (or other tcp sockets):
        # fastcgi_pass 127.2.0.1:9000;
        }

保存并退出。

测试Nginx配置并确保没有错误,然后重新启动服务。

nginx -t
systemctl reload nginx

重新启动Nginx并测试配置

配置PHP-FPM

转到“ /etc/php/7.2”目录并编辑“ php.ini”文件。

cd /etc/php/7.2/
vim fpm/php.ini

取消注释“ cgi.fix_patinfo”行并将其值更改为“ 0”。

cgi.fix_pathinfo=0

保存并退出。

重新加载PHP-FPM服务。

systemctl reload php7.2-fpm

至此,我们已经完成了Nginx Web服务器和PHP-FPM的配置。

步骤5-安装PhpMyAdmin

PhpMyAdmin是一个基于PHP的应用程序,用于通过Web浏览器管理MySQL或MariaDB数据库。

在此步骤中,我们将在LEMP(Linux,Nginx,MySQL和PHP-FPM)堆栈下安装并配置phpmyadmin。

使用下面的apt命令安装PHPMyAdmin。

sudo apt install phpmyadmin -y

在安装过程中,它将询问您有关phpmyadmin的Web服务器配置。

安装PHPMyAdmin

选择无选项,然后将光标移至“确定”。

对于phpmyadmin数据库配置,选择“是”。

不要选择配置Web服务器

并输入新的“ STRONG” phpmyadmin管理员,例如“ Hakaselabs001 @ #”。

输入密码

重复输入“ Hakaselabs001 @ #”密码。

重复密码

并且phpmyadmin安装完成。

步骤6-配置PhpMyAdmin

安装phpmyadmin之后,我们需要将phpmyadmin配置为在Nginx Web服务器下运行,并配置MySQL用户phpmyadmin的访问权限。

使用Nginx配置PhpMyAdmin

为了在Nginx Web服务器下运行phpmyadmin,我们需要将配置添加到虚拟主机配置文件中。

转到“ / etc / nginx”配置目录,然后编辑默认虚拟主机文件。

cd /etc/nginx/
vim sites-available/default

将以下phpmyadmin的Nginx配置粘贴到“服务器{…}”支架中。

location /phpmyadmin {
    root /usr/share/;
    index index.php;
    try_files $uri $uri/ =404;

location ~ ^/phpmyadmin/(doc|sql|setup)/ {
    deny all;
    }

location ~ /phpmyadmin/(.+\.php)$ {
    fastcgi_pass unix:/var/run/php/php7.2-fpm.sock;
    fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
    include fastcgi_params;
    include snippets/fastcgi-php.conf;
    }
}

保存并退出。

测试nginx配置,然后重新启动nginx服务。

nginx -t
systemctl reload nginx

并且我们为phpmyadmin添加了Nginx配置。

为PhpMyAdmin配置MySQL用户

在本教程中,我们将为PHPmyadmin使用非root用户MySQL用户。我们将创建一个新用户,并将该服务器内部数据库的所有特权授予该用户。

登录到MySQL Shell。

mysql -u root -p

现在,使用下面的MySQL查询创建一个新用户。

create user hakase@'localhost' identified by 'Hakaselabs001@#';
grant all privileges on *.* to hakase@'localhost' identified by 'Hakaselabs001@#';
flush privileges;
exit;

并且我们为phpmyadmin访问创建了一个新用户。

配置一个MySQL用户

步骤7-测试

测试PHP文件

转到网络根目录“ / var / www / html”并创建一个新的phpinfo文件。

cd /var/www/html/
vim info.php

粘贴下面的phpinfo脚本。

<?php
phpinfo();
?>

保存并退出。

现在,打开Web浏览器并输入服务器IP地址,如下所示。用服务器IP替换IP。

http://192.168.33.10/info.php

以下是有关PHP服务器配置的所有信息。

PHP信息结果

测试登录PhpMyAdmin

在Web浏览器上,键入以下phpmyadmin URL(用您的服务器IP替换IP)。

http://192.168.33.10/phpmyadmin/

在phpmyadmin登录页面上,输入密码为’ Hakaselabs001 @ #’的用户’ hakase ‘,然后单击’Go’按钮。

PHPMyAdmin登录

现在,我们将看到如下所示的phpmyadmin仪表板。

PHPMyAdmin仪表板

LEMP Stack和PhpMyAdmin已成功安装在Ubuntu 18.04 LTS上。