简介

LEMP是用来搭建动态网站的一组软件,首字母缩写分别表示Linux、Nginx(Engine-X)、MySQL和PHP。

本文将讲述如何在Ubuntu安装LEMP套件。当然,首先要安装Ubuntu18.04操作系统,接着按照以下方法完成其他组建的安装。

1.切换root用户

输入命令:

su root

回车提示输入密码,怎么输入都不对,这是你的root没有设置密码或者你当前就是root

给root用户设置密码:命令:

sudo passwd root

输入密码,并确认密码。

重新输入命令:

su root

然后输入密码:

发现可以切换到root权限了。

使用su xyx命令,切换到普通用户。

2.以下演示将通过非管理员账号进行,即通过sudo命令完成安装

如果是普通账号(非管理员)可继续往下看。 管理员可以去掉sudo直接使用命令

步骤一:安装Nginx网站服务器

$ sudo apt update
$ sudo apt install nginx

在Ubuntu上,使用以上两条命令完成nginx安装就可以通过localhost访问了,若访问失败,可能是已经安装了Apache等占用80端口的服务,或者是防火墙问题,若访问成功,应该如下图所示。

步骤二:安装MySQL数据库

$ sudo apt install mysql-server-5.7

执行该条命令安装MySQL,但仍为能使用,需要进行配置。考虑到安全问题,这里将通过一个脚本程序来完成MySQL的权限配置。

$ sudo mysql_secure_installation

执行该条命令,将会提示是否开启密码验证,如下所示,输入Y后按回车。

VALIDATE PASSWORD PLUGIN can be used to test passwords
and improve security. It checks the strength of password
and allows the users to set only those passwords which are
secure enough. Would you like to setup VALIDATE PASSWORD plugin?

Press y|Y for Yes, any other key for No:

然后,就会问设置密码的强度,可以根据提示按实际需要选择,这里选择0。

There are three levels of password validation policy:

LOW Length >= 8
MEDIUM Length >= 8, numeric, mixed case, and special characters
STRONG Length >= 8, numeric, mixed case, special characters and dictionary file

Please enter 0 = LOW, 1 = MEDIUM and 2 = STRONG: 1

接着,提示设置密码,连续输入两次密码后,会提示是否重新修改,输入N后回车完成密码设置。

MySQL5.7默认情况下,root用户使用的是auth_socket插件进行身份认证,所以通过账号密码的方式是无法登陆的,比如php通过root和password的方式连接数据库会失败。

为了能够使MySQL5.7的root账号能够使用密码进行登陆,可以按照以下方法修改权限。

$ sudo mysql

通过该条命令使用MySQL自带的客户端连接数据库服务器,然后输入以下命令查看root的登陆验证方式。

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

+------------------+-------------------------------------------+-----------------------+-----------+
| user | authentication_string | plugin | host |
+------------------+-------------------------------------------+-----------------------+-----------+
| root | | auth_socket | localhost |
| mysql.session | *THISISNOTAVALIDPASSWORDTHATCANBEUSEDHERE | mysql_native_password | localhost |
| mysql.sys | *THISISNOTAVALIDPASSWORDTHATCANBEUSEDHERE | mysql_native_password | localhost |
| debian-sys-maint | *CC744277A401A7D25BE1CA89AFF17BF607F876FF | mysql_native_password | localhost |
+------------------+-------------------------------------------+-----------------------+-----------+
4 rows in set (0.00 sec)

可以看到,root账号使用的auto_socket登陆验证方式,需要将它改为mysql_native_password方式。

mysql> ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY 'root密码';

此时如果报1819错误,输入:

set global validate_password_policy=0;

这样,判断密码的标准就基于密码的长度了,输入足够长就可以。

注意:将root密码修改为实际密码再执行以上命令,如该密码可用于php连接数据库时使用。

mysql> FLUSH PRIVILEGES;

执行该条命令更新下配置,输入以下命令,再次查看root账号的登陆验证方式。

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

Output
+------------------+-------------------------------------------+-----------------------+-----------+
| user | authentication_string | plugin | host |
+------------------+-------------------------------------------+-----------------------+-----------+
| root | *3636DACC8616D997782ADD0839F92C1571D6D78F | mysql_native_password | localhost |
| mysql.session | *THISISNOTAVALIDPASSWORDTHATCANBEUSEDHERE | mysql_native_password | localhost |
| mysql.sys | *THISISNOTAVALIDPASSWORDTHATCANBEUSEDHERE | mysql_native_password | localhost |
| debian-sys-maint | *CC744277A401A7D25BE1CA89AFF17BF607F876FF | mysql_native_password | localhost |
+------------------+-------------------------------------------+-----------------------+-----------+
4 rows in set (0.00 sec)

可以看到,root的登陆验证方式已经从auto_socket变成mysql_native_password了。

mysql> exit

退出MySQL客户端,届时,完成了MySQL安装和配置。

步骤三:安装PHP和配置Nginx使用PHP处理器

通过以上操作,完成Nginx和MySQL的安装,而动态网页则是PHP的工作。
Nginx不想其他网站服务器自带PHP处理器,需要自己安装php-fpm,即fastCGI process manager,然后配置Nginx将客户端PHP请求传给它进行处理。

$ sudo apt install php-fpm php-mysql

此时,LEMP全部所需的软件都安装好了,接着就是配置的工作了。

首先配置Nginx服务器区块的等级(服务器区块类似Apache服务器的虚拟站点)。服务器区块配置文件在/etc/nginx/sites-available目录下,这里新建的服务器区块的配置文件名为localhost,如下命令,创建localhost文件并进行编辑。

$ sudo nano /etc/nginx/sites-available/localhost
server {
listen 80;
root /var/www/html;
index index.php index.html index.htm index.nginx-debian.html;
server_name localhost; 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 —— 网站监听端口,这里设置为80,即浏览器默认的HTTP端口号。
root —— 网站根目录。
index —— 默认访问页。
server_name —— 网站访问域名,若是其他域名访问时,则不会响应,这里设置为localhost用于本地调试。
location / —— 该区块有一个try_files命令,当客户端请求找不到对应文件时,将会返回404页面。
location ~\.php$ —— 该区块匹配.php后缀的文件并传给php-fpm进行处理。
location ~ /\.ht —— 该区块禁止.htaccess的访问。
保存以上配置后,通过创建软连接的方式,使配置文件能够被Nginx加载。

$ sudo ln -s /etc/nginx/sites-available/localhost /etc/nginx/sites-enabled/

然后测试配置文件是否正常。

$ sudo nginx -t

配置正常的话,就可以重新启动nginx使配置生效了。

$ sudo systemctl reload nginx

步骤四:创建PHP文件和访问测试
在配置nginx时定义了网站根目录为/var/www/html/,可以在此目录创建PHP网页供访问测试。

$ sudo nano /var/www/html/info.php
<?php
phpinfo();
?>

保存后,打开浏览器输入http://localhost/info.php,访问成功的话,可以看到如下截图的类似界面。

LEMP--如何在Ubuntu上安装Linux、Nginx、MySQL和PHP的更多相关文章

  1. (转)如何在Windows上安装多个MySQL

    原文:http://www.blogjava.net/hongjunli/archive/2009/03/01/257216.html 如何在Windows上安装多个MySQL 本文以免安装版的mys ...

  2. 【转载】如何在Ubuntu上安装LAMP服务器系统?

    转载自:http://os.51cto.com/art/201307/405333.htm [2013年7月25日 51CTO外电头条]为何应该在Ubuntu上安装LAMP服务器?从事Web开发工作时 ...

  3. [转载]如何在Ubuntu上安装LAMP服务器系统

    [2013年7月25日 51CTO外电头条]为何应该在Ubuntu上安装LAMP服务器?从事Web开发工作时,我更偏爱在不受干扰的情况下,在我那台计算机上的开发环境下进行开发.我宁愿所犯的错误大部分是 ...

  4. 【Ubuntu QQ】记如何在Ubuntu上安装QQ(附下载)

    什么困扰着一批批的ubuntu桌面用户?是麻花藤.哦不,是QQ,怎么在ubuntu上安装完美无瑕的QQ. 最佳解决方案在“三”部分,当然前两个也不失为解决方案 一.尝试的开始 配置: 双系统:Wind ...

  5. 如何在 Ubuntu 上安装 MongoDB

    MongoDB 是一个越来越流行的自由开源的 NoSQL 数据库,它将数据存储在类似 JSON 的灵活文档集中,这与 SQL 数据库中常见的表格形式形成对比. 你很可能发现在现代 Web 应用中使用 ...

  6. 如何在 Ubuntu 上安装 pip

    1.为 Python 2 安装 pip 首先,确保已经安装了 Python 2. 在 Ubuntu 上,可以使用以下命令进行验证 python2 --version 如果没有错误并且显示了 Pytho ...

  7. 如何在ubuntu上安装 搜狗输入法(已经成功)

    转自:https://blog.csdn.net/qq_37589838/article/details/81208409 本文链接:https://blog.csdn.net/qq_37589838 ...

  8. [译]How to Setup Sync Gateway on Ubuntu如何在ubuntu上安装sync-gateway

    参考文章https://hidekiitakura.com/2015/03/21/how-to-setup-sync-gateway-on-ubuntudigitalocean/ 在此对作者表示感谢 ...

  9. 如何在Ubuntu上安装LAMP服务器系统?

    在Ubuntu上安装LAMP Ubuntu的开发人员让人们很容易安装和配置LAMP软件包,只要借助一个终端命令.所以,打开终端窗口,让我们开始入手吧. sudo apt-get install lam ...

随机推荐

  1. _STORAGE_WRITE_ERROR_:./Application/Runtime/Cache/Home/f8995a0e1afcdadc637612fae5a3b585.php

    将one think部署到服务器上出现下面的问题 _STORAGE_WRITE_ERROR_:./Application/Runtime/Cache/Home/f8995a0e1afcdadc6376 ...

  2. 【JZOJ5088】【GDOI2017第四轮模拟day2】最小边权和 排序+动态规划

    题面 有一张n个点m条边的有向图,每条边有一个互不相同的边权w,有q个询问,要求你从点a经过不超过c条边到点b,要求经过的边权递增并和尽量小,求出最小的边权和,如果没有合法方案则输出-1. 对于100 ...

  3. 【JZOJ4711】【NOIP2016提高A组模拟8.17】Binary

    题目描述 输入 输出 样例输入 6 6 8 9 1 13 9 3 1 4 5 2 6 9 1 3 7 2 7 7 1 6 1 2 11 13 样例输出 45 19 21 数据范围 解法 40%暴力即可 ...

  4. hasLayout是什么

    haslayout 是Windows Internet Explorer渲染引擎的一个内部组成部分.在InternetExplorer中,一个元素要么自己对自身的内容进行计算大小和组织,要么依赖于父元 ...

  5. openssl生成SSL证书的流程 - moonhillcity的博客 - CSDN博客

    1.安装openssl 之后在/usr/lib/ssl目录下(ubuntu系统,用whereis查下ssl目录即可)下找到openssl.cnf,拷贝到工作目录下. 2.工作目录下新建demoCA文件 ...

  6. golang中包的初始化

    1.当一个go源程序被初始化时,首先去初始化所依赖的其他包,然后初始化该go源码文件的全局变量的初始化和执行初始化函数,其中该包所有的全局变量初始化在前,该包的初始化函数int在后.当所有包的初始化函 ...

  7. python中字母的大小写转换

    1.   capitalize(): 首字母大写,其余全部小写 2.   upper() :全转换成大写 3.   lower(): 全转换成小写 4.   title() :标题首字大写,如  &q ...

  8. Mysql主从安装配置

    Mysql主从安装配置   环境: 主从服务器上的MySQL数据库版本同为5.1.34 主机IP:192.168.0.1 从机IP:192.168.0.2  一. MySQL主服务器配置 1.编辑配置 ...

  9. jquery 浏览器缓存网页

    头部:<meta http-equiv="Cache-Control" content="no-cache, no-store, must-revalidate&q ...

  10. day5 from 金角大王

    Python 之路 Day5 - 常用模块学习   本节大纲: 模块介绍 time &datetime模块 random os sys shutil json & picle shel ...