在Ubuntu 18.04上安装Linux,Nginx,MySQL,PHP(LEMP堆栈)

LEMP配置

第1步 - 安装Nginx Web服务器

第2步 - 安装MySQL以管理站点数据

第3步 - 安装PHP并配置Nginx以使用PHP处理器

第4步 - 创建PHP文件以测试配置


第1步 - 安装Nginx Web服务器

由于这是我们第一次使用apt此会话,因此请先更新服务器的软件包索引。然后,安装服务器:

sudo apt update
sudo apt install nginx

在浏览器中访问服务器的域名或公共IP地址来测试服务器是否已启动并运行:

Nginxé»è®¤é¡µé¢

  第2步 - 安装MySQL以管理站点数据

sudo apt install mysql-server-5.7                        //安装MySQL
sudo mysql_secure_installation                           //修改一些MySQL不安全的默认值

然后进入修改界面,它将询问

配置MySQL系统中使用的密码              输入密码
配置VALIDATE PASSWORD PLUGIN         不配置
删除一些匿名用户和测试数据库            按下Y并ENTER键
禁用远程root登录                      按下Y并ENTER键
加载这些新规则                        按下Y并ENTER键

注意:VALIDATE PASSWORD PLUGIN是一种判断调用。如果启用,MySQL将拒绝与指定条件不符的密码并显示错误。如果你将弱密码与自动配置MySQL用户凭据的软件结合使用,例如phpMyAdmin的Ubuntu软件包,则会导致问题。保持禁用验证是安全的,但是你应该始终为数据库凭据使用强大的唯一密码。 

注意:在运行MySQL 5.7(及更高版本)的Ubuntu系统中,MySQL的root用户设置为auth_socket,默认使用插件进行身份验证,而不是使用密码。这在许多情况提供了更高的安全性和可用性,但是当我们想要使用外部程序(如phpMyAdmin)访问用户时,就有麻烦了。

将身份验证方法从auth_socket切换为mysql_native_password:

1.从终端打开Mysql提示符:sudo mysql 

2.查看所有MYSQL用户使用的身份验证方法:

SELECT user,authentication_string,plugin,host FROM mysql.user;

3.修改root用户使用密码进行身份验证:

ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY 'password';

4.重新加载授权表并使新更改生效:FLUSH PRIVILEGES;

  5.再次检查,确保root用户不再使用auth-socket插件进行身份验证:

  SELECT user,authentication_string,plugin,host FROM mysql.user;

  6.退出Mysql提示符:exit 

  第3步 - 安装PHP并配置Nginx以使用PHP处理器

1    sudo apt install php-fpm php-mysql 

      若报错(E:Unable to locate package php-fpm),universe在服务器版本上没有默认启用,可以尝试先: 

       sudo add-apt-repository universe

       PHP用来生成动态内容,Nginx不像其他一些Web服务器那样包含本机PHP处理,需要安装php-fpm,它代表“fastCGI进程管理器”,将告诉Nginx将PHP请求传递给该软件进行处理。php-mysql是一个允许PHP与mysql数据库后端通信的附加帮助程序包,安装将引入必要的PHP核心文件。

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

       现在已经安装了所有必需的LEMP堆栈组件,但仍需要进行一些配置更改,告诉Nginx将PHP处理器用于动态内容。新建一个服务器块配置文件并将其命名为example.com,将以下内容(从默认服务器块配置文件中获取并略微修改)添加到新配置文件example.com中。

server {
        listen 80;
        root /var/www/html;
        index index.php index.html index.htm index.nginx-debian.html;
        server_name example.com;

        location / {
                try_files $uri $uri/ =404;
        }

        location ~ \.php$ {
                include snippets/fastcgi-php.conf;
                fastcgi_pass unix:/var/run/php/php7.2-fpm.sock;
        }

        location ~ /\.ht {
                deny all;
        }
}

以下是每个指令和位置块的作用:

  • listen - 定义Nginx将侦听的端口。
  • root - 定义存储网站服务的文档根目录。
  • index- 配置Nginx请求索引文件时优先处理index.php命名的文件。
  • server_name - 将此指令指向服务器的域名或公共IP地址。
  • location /- 第一个位置块包括一个try_files指令,该指令检查是否存在满足URI请求的文件。如果Nginx找不到合适的文件,则会返回404错误。
  • location ~ \.php$- 此位置块通过将Nginx指向fastcgi-php.conf配置文件和php7.2-fpm.sock文件来处理实际的PHP处理,该文件声明了与哪个套接字相关联php-fpm。检查/etc/php/7.0/fpm/pool.d/www.conf文件并查找“listen”行。
  • location ~ /\.ht- 通过添加deny all指令,如果任何.htaccess文件碰巧进入文档根目录,它们将不会被提供给访问者。

添加此内容后,保存并关闭该文件。

通过将新服务器块配置文件(在/etc/nginx/sites-available/目录中)创建符号链接到/etc/nginx/sites-enabled/目录来启用新服务器块:(注意/etc/nginx/sites-enabled这个文件夹只会有一个配置文件生效)

sudo ln -s /etc/nginx/sites-available/example.com /etc/nginx/sites-enabled

 

4     键入以下命令测试新配置文件的语法错误:sudo nginx -t

       如果报告了任何错误,请返回并重新检查您的文件,然后再继续。

5    准备好后,重新加载Nginx以进行必要的更改:sudo systemctl reload nginx

  第4步 - 创建PHP文件以测试配置

验证Nginx是否可以正确地将.php文件传送到PHP处理器。

使用文本编辑器在文档根目录中创建info.php测试PHP文件是否能够被处理sudo nano /var/www/html/info.php

在新文件中输入以下PHP代码,将返回有关服务器的信息:

<?php
phpinfo();

完成后,保存并关闭文件。

现在,可以通过访问服务器的域名或公共IP地址在Web浏览器中访问info.php页面

http://your_server_domain_or_IP/info.php

配置完成页面:

PHP页é¢ä¿¡æ¯

 

猜你喜欢

转载自blog.csdn.net/weixin_39467231/article/details/83956560