在Ubuntu18.04上安装Linux, Apache, MySQL, PHP (LAMP)

[toc]

LAMP实际上是一组开源软件,它的主要作用是使能一个能够提供网络服务的服务器,简单点说,你可以在它上面假设各种网站服务。它实际上是一个缩写,其中,“L”代表Linux服务器(这里我们使用Ubuntu18.04发行版),“A”代表Apache“M”代表MySQL“P”代表“PHP”

一 Linux的安装

  在PC上安装Linux的方法网上已经介绍了好多,这里就不在赘述。而这里我们安装LAMP的用途是用来提供网络服务,比如搭建博客,搭建云存储服务器等,这样的话,服务器必须要有一个固定的IP地址,而且要保证能够24小时开机,所以这里我们一般选用VPS(虚拟私人服务器),那么,在VPS安装Linux的方法就简单多了。具体可参考我的另外一篇博客——如何搭建自己的虚拟专用服务器

二 安装及配置apache2

  Apache2是一款非常流行的web server软件之一。

2.1 安装apache2

  在Ubuntu 18.04上,可以使用下列的命令安装:

sudo apt update && sudo apt install apache2 -y

  安装完成之后,它默认设置网站代码的根目录为服务器的/var/www/html路径。在这个文件夹内你能看到一个apache2的测试网页index.html,在本地浏览器中打开http://your_srever_ip(your_srever_ip是你服务器的ip地址),就能够看到下图:

apache-homepage

2.2 配置apache2

这里只是介绍apache2的配置方法,这里暂时不需要配置apache2,因此,这步可暂时跳过。
查看apache2配置可以通过下面的命令:

sudo apachectl -S

输出的结果如下图:

apachectl-S

  这条命令会打印出apache的所有配置等具体信息。其中最主要的就是VirtualHost configuration:,它给出了apache当前使用的配置文件,而apache的所有配置信息都是在这个文件里定义的。
  这里需要注意的是配置文件的路径是:/etc/apache2/sites-enabled/000-default.conf,而实际上,真正的配置文件是/etc/apache2/sites-available/000-default.conf/etc/apache2/sites-enabled文件夹下的文件只是/etc/apache2/sites-available/下面文件的软连接而已。所以要修改配置,请务必修改/etc/apache2/sites-available/下面的文件,修改完成之后,可以先使用sudo apache2ctl configtest来确认配置文件语法正确,然后需要执行下面两条命令来使配置生效。

sudo a2ensite ××××.conf
sudo systemctl restart apache2

三 安装及配置MySQL

  MySQL是一款数据库管理软件,比如,我们的文件保存到服务器之后,文件的位置等信息,都是由MySQL所管理的。

3.1 安装MySQL

在Ubuntu 18.04上的安装方法如下:

sudo apt install mysql-server -y

3.2 配置MySQL

  • 3.2.1 基本配置

 在安装完MySQL之后可以使用下面的命令来配置一些数据库的基本配置,从而使你的数据库更加安全。

sudo mysql_secure_installation

具体配置及选择如下图:

mysql_secure_installation

注意:这里第一步设置的root用户密码一定要牢记,后面还会用到。

  • 3.2.2 修改用户认证方式
    修改MySQL的用户认证方式,从auth_socket切换成mysql_native_password

首先,登录数据库:

sudo mysql

经过确认,这里的密码既可以输入服务器root账户的密码,也可以使用2.2.1中设置的MySQL root账户的密码。

其次,输入下面的命令查看当前的认证方式。

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

mysql-authentication-method

从图中可以看出用户认证方式默认是auth_socket

再次,依次输入下面的命令修改用户认证方式并更新设置:

mysql> ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY 'password';
mysql> FLUSH PRIVILEGES;

注意,这里第一条命令的作用是将root用户的认证方式修改为mysql_native_password,并将其密码修改为password(当然,这个值你可以随便设置,但是务必牢记),所以,如果不想root账户修改密码,可以输入2.2.1中设置的密码;否则,password将是root账户的新密码。

最后,输入下面的命令,确认修改是否成功。

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

mysql-authentication-method-after-modified

从上图可以看出,用户认证方式已成功修改为:mysql_native_password

输入下面的命令退出MySQL登录。

mysql> \q

注意:MySQL的登录方法根据是否设置设置mysql root账户的密码分为两种情况:
1. 没有设置mysql root账户的密码时,登录mysql只需要输入sudo mysql命令即可登录,登录密码为服务器的root账户的密码;
2. 已经设置了mysql root账户的密码,登录mysql应该使用sudo mysql -u root -p命令;登录密码为mysql root账户的密码;

四 安装及配置PHP

  PHP是用来处理网页上的动态内容的服务器端的Web脚本程序,它可以从MySQL获取数据,处理动态的内容,并通过Web server显示出来。

4.1 安装PHP

  可以通过下面的命令安装PHP:

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

4.2 配置PHP

  通常情况下,Apache会优先寻找Apache ServerMain DocumentRoot目录下的index.html文件,而在安装了PHP之后,我们需要使它能够优先搜索index.php。修改的具体方法如下:

使用下列命令打开Apache的配置文件:

sudo vi /etc/apache2/mods-available/dir.conf

你会看到下面的内容:

<IfModule mod_dir.c>
        DirectoryIndex index.html index.cgi index.pl index.php index.xhtml index.htm
</IfModule>

将上述内容中的index.php移至index.html前面,得到如下结果:

<IfModule mod_dir.c>
        DirectoryIndex index.php index.html index.cgi index.pl index.xhtml index.htm
</IfModule>

之后保存该文件,使用下面的命令重启Apache服务即可。

sudo systemctl restart apache2

  到此为止,LAMP的基本设置就完成了。

发表回复

您的电子邮箱地址不会被公开。