云网牛站
所在位置:首页 > Linux云服务器 > 在Ubuntu 18.04服务器上安装LAMP Stack的方法[Apache、MySQL、PHP]

在Ubuntu 18.04服务器上安装LAMP Stack的方法[Apache、MySQL、PHP]

2019-02-12 21:27:36作者:叶云稿源:云网牛站

本文介绍在Ubuntu 18.04服务器上安装LAMP Stack的方法,采用Apache Web、MySQL、PHP构架,也可以采用MariaDB数据库,PHP语言换成Python/Perl,不影响LAMP Stack构架。以下所采用的操作系统是Ubuntu 18.04 LTS服务器版(Ubuntu-18.04.1-live-server-amd64.iso安装全过程),IP地址是192.168.225.22/24。

 

1.安装Apache Web服务器

首先,使用命令更新Ubuntu服务器:

$ sudo apt update

$ sudo apt upgrade

接下来,安装Apache Web服务器:

$ sudo apt install apache2

检查Apache Web服务器是否正在运行:

$ sudo systemctl status apache2

输出信息:

在Ubuntu 18.04服务器上安装LAMP Stack的方法[Apache、MySQL、PHP]

至此,Apache服务启动并运行。

1.1.调整防火墙以允许Apache Web服务器

默认情况下,如果在Ubuntu 18.04 LTS中启用了UFW防火墙(在Ubuntu 18.04系统中使用UFW设置防火墙),则无法从远程系统访问apache Web浏览器,必须按照以下步骤允许http和https端口。

首先,使用命令列出Ubuntu系统上可用的应用程序配置文件:

$ sudo ufw app list

样本输出:

Available applications:

Apache

Apache Full

Apache Secure

OpenSSH

如你所见,Apache和OpenSSH应用程序已安装UFW配置文件,可以使用“ufw app info”“配置文件名称”命令列出有关每个配置文件及其包含规则的信息。

让我们看看“Apache Full”配置文件,为此,请运行:

$ sudo ufw app info "Apache Full"

样本输出:

Profile: Apache Full

Title: Web Server (HTTP,HTTPS)

Description: Apache v2 is the next generation of the omnipresent Apache web

server.

Ports:

80,443/tcp

如你所见,“Apache Full”配置文件包含了启用端口80和443流量的规则。

现在,运行以下命令以允许此配置文件的传入HTTP和HTTPS流量:

$ sudo ufw allow in "Apache Full"

Rules updated

Rules updated (v6)

如果你不想允许https流量,但只允许http(80)流量,请运行:

$ sudo ufw app info "Apache"

1.2.测试Apache Web服务器

现在,打开Web浏览器并通过导航到http://localhost/或者http://IP-Address/来访问Apache测试页面:

在Ubuntu 18.04服务器上安装LAMP Stack的方法[Apache、MySQL、PHP]

如果你看到类似上面的屏幕,那么说明Apache服务器正在运行。

 

2.安装MySQL

要在Ubuntu上安装MySQL,请运行:

$ sudo apt install mysql-server

使用命令验证MySQL服务是否正在运行:

$ sudo systemctl status mysql

样本输出:

在Ubuntu 18.04服务器上安装LAMP Stack的方法[Apache、MySQL、PHP]

说明Mysql正在运行。

2.1.设置数据库管理用户(root)密码

默认情况下,MySQL root用户密码为空,需要通过运行以下脚本来保护MySQL服务器:

$ sudo mysql_secure_installation

系统将询问你是否要设置VALIDATE PASSWORD插件,此插件允许用户为数据库凭据配置强密码。如果启用,它将自动检查密码的强度,并强制用户仅设置足够安全的密码,将此插件禁用是安全的。但是必须为数据库凭据使用强大且唯一的密码,如果不想启用此插件,只需按任意键即可跳过密码验证部分并继续执行其余步骤。

如果你的答案为Yes,则会要求你选择密码验证级别:

Securing the MySQL server deployment.

Connecting to MySQL using a blank password.

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 y

可用的密码验证是低,中和强,只需输入相应的数字(0表示低,1表示中等,2表示强密码),然后按ENTER键:

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:

现在,输入MySQL root用户的密码,请注意,必须使用mysql root用户的密码,具体取决于你在上一步中选择的密码策略,如果没有启用该插件,只需使用你选择的任何强大且唯一的密码:

Please set the password for root here.

New password:

Re-enter new password:

Estimated strength of the password: 50 

Do you wish to continue with the password provided?(Press y|Y for Yes, any other key for No) : y

一旦输入密码两次,将看到密码强度(在我们的例子中它是50),如果可以,请按Y继续提供的密码,如果对密码长度不满意,请按任意其他键并设置强密码,我现在的密码没问题,所以我选择了y。

对于其他问题,只需键入y并按Enter键,这将删除匿名用户,禁止root用户远程登录并删除测试数据库:

Remove anonymous users? (Press y|Y for Yes, any other key for No) : y

Success.

Normally, root should only be allowed to connect from

'localhost'. This ensures that someone cannot guess at

the root password from the network.

Disallow root login remotely? (Press y|Y for Yes, any other key for No) : y

Success.

By default, MySQL comes with a database named 'test' that

anyone can access. This is also intended only for testing,

and should be removed before moving into a production

environment.

Remove test database and access to it? (Press y|Y for Yes, any other key for No) : y

- Dropping test database...

Success.

- Removing privileges on test database...

Success.

Reloading the privilege tables will ensure that all changes

made so far will take effect immediately.

Reload privilege tables now? (Press y|Y for Yes, any other key for No) : y

Success.

All done!

已设置MySQL root用户的密码。

2.2.修改MySQL root用户的认证方式

默认情况下,MySQL root用户设置为使用MySQL 5.7中的auth_socket插件和Ubuntu上的较新版本进行身份验证,即使它增强了安全性,当你使用任何外部程序(例如phpMyAdmin)访问数据库服务器时,它也会使事情变得复杂,要解决此问题,需要将身份验证方法从auth_socket更改为mysql_native_password,为此,请使用以下命令登录MySQL提示符:

$ sudo mysql

在mysql提示符下运行以下命令,查找所有mysql用户帐户的当前身份验证方法:

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

样本输出:

在Ubuntu 18.04服务器上安装LAMP Stack的方法[Apache、MySQL、PHP]

如你所见,mysql root用户使用auth_socket插件进行身份验证。

要将此身份验证更改为mysql_native_password方法,请在mysql提示符处运行以下命令,不要忘记用你选择的强大且唯一的密码替换“密码”,如果启用了VALIDATION插件,请确保根据当前的策略要求使用了强密码:

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

使用命令更新更改:

FLUSH PRIVILEGES;

现在再次检查是否使用命令更改了身份验证方法:

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

样本输出:

在Ubuntu 18.04服务器上安装LAMP Stack的方法[Apache、MySQL、PHP]

现在,mysql root用户可以使用密码进行身份验证来访问mysql shell。

退出mysql提示符:

exit

 

3.安装PHP

要安装PHP,请运行:

$ sudo apt install php libapache2-mod-php php-mysql

安装PHP后,在Apache根文档文件夹中创建info.php文件,通常,在大多数基于Debian的Linux发行版中,apache根文档文件夹将是/var/www/html/或/var/www/,在Ubuntu 18.04 LTS中,它是/var/www/html/。

让我们在apache根文件夹中创建info.php文件:

$ sudo vi /var/www/html/info.php

添加以下行:

<?php

phpinfo();

?>

按ESC键并输入:wq以保存并退出文件,重启apache服务以使更改生效:

$ sudo systemctl restart apache2

3.1.测试PHP

打开Web浏览器并导航到地址如http://IP-address/info.php。

你现在将看到php测试页面:

在Ubuntu 18.04服务器上安装LAMP Stack的方法[Apache、MySQL、PHP]

通常,当用户从Web服务器请求目录时,Apache将首先查找名为index.html的文件,如果要更改Apache以提供php文件而不是其他文件,请将index.php移动到dir.conf文件中的第一个位置,如下所示:

$ sudo vi /etc/apache2/mods-enabled/dir.conf

以下是上述文件的内容:

<IfModule mod_dir.c>

DirectoryIndex index.html index.cgi index.pl index.php index.xhtml index.htm

</IfModule>

# vim: syntax=apache ts=4 sw=4 sts=4 sr noet

将“index.php”文件移到第一个位置,完成更改后,dir.conf文件将如下所示:

<IfModule mod_dir.c>

DirectoryIndex index.php index.html index.cgi index.pl index.xhtml index.htm

</IfModule>

# vim: syntax=apache ts=4 sw=4 sts=4 sr noet

按ESC键并键入:wq以保存并关闭文件,重新启动Apache服务以使更改生效:

$ sudo systemctl restart apache2

3.2.安装PHP模块

要改进PHP的功能,可以安装一些额外的PHP模块。

要列出可用的PHP模块,请运行:

$ sudo apt-cache search php- | less

样本输出:

在Ubuntu 18.04服务器上安装LAMP Stack的方法[Apache、MySQL、PHP]

使用箭头键查看结果。要退出,请键入q并按Enter键。

要查找任何特定php模块的详细信息,例如php-gd,请运行:

$ sudo apt-cache show php-gd

要安装php模块,请运行:

$ sudo apt install php-gd

要安装所有模块(尽管不是必需的),请运行:

$ sudo apt-get install php*

安装任何php模块后别忘了重启Apache服务,要检查模块是否已加载,请在浏览器中打开info.php文件并检查它是否存在。

接下来,你可能希望安装数据库管理工具,以便通过Web浏览器轻松管理数据库,参考在Ubuntu 18.04 LAMP构架上安装phpMyAdmin的方法

 

相关主题

在Ubuntu 18.04/16.04命令行上安装MySQL 8.0.11的全过程

精选文章
热门文章