ubuntu 18 LAMP 搭建_sed

需要提前准备的东西

step1 安装apach并更新防火墙

安装apache

sudo apt update
sudo apt install apache2

配置防火墙

让web流量通过

sudo apt install ufw
sudo ufw app list

输出结果:

  Apache
  Apache Full
  Apache Secure
  OpenSSH

默认情况下ufw是允许80和443端口通过的

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

Step2 安装mysql

sudo apt install mysql-server

加强mysql的安全性:

sudo mysql_secure_installation

执行该命令之后会启动个安全设置向导,首先会让我们设置密码策略,分为高低中三个级别,这里我选择高(密码复杂度要符合mysql的要求)

然后会提示我们移除匿名用户、测试数据库、禁用root远程登录

在ubuntu中,mysql的认证是通过auth_socket插件进行的,并不是直接通过密码进行认证的,这样虽然提高了安全性,但是如果我们要搭建网站,就不合适了,因为我们需要使用密码认证,下面我们就来进行认证方式的修改

sudo 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 | *54A2B27F12A4D2F2389DD0BC9B4432C472111042 | mysql_native_password | localhost |
+------------------+-------------------------------------------+-----------------------+-----------+

可以看到root的认证方式是auth_socket,下面我们把它切换成mysql_native_password

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

注意这里设置的密码要符合上面我们选择的安全性等级

FLUSH PRIVILEGES;
mysql> SELECT user,authentication_string,plugin,host FROM mysql.user;
+------------------+-------------------------------------------+-----------------------+-----------+
| user             | authentication_string                     | plugin                | host      |
+------------------+-------------------------------------------+-----------------------+-----------+
| root             | *51019B46FE621F37RT1EC09C05F736B5747CBAA1 | mysql_native_password | localhost |
| mysql.session    | *THISISNOTAVALIDPASSWORDTHATCANBEUSEDHERE | mysql_native_password | localhost |
| mysql.sys        | *THISISNOTAVALIDPASSWORDTHATCANBEUSEDHERE | mysql_native_password | localhost |
| debian-sys-maint | *54A2B27F12A4D2F2389DD0BC9B4432C472111042 | mysql_native_password | localhost |
+------------------+-------------------------------------------+-----------------------+-----------+
4 rows in set (0.01 sec)

Step3 安装PHP

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

可以看到我们上面除了安装了php外,还安装了libapache2-mod-phpphp-mysql

前者用于和apache2,后者用于mysql

这两个属于helper package

现在我们可以对apache2进行一些简单的配置,默认情况下会访问index.html,我们可以再添加一个index.php

sudo nano /etc/apache2/mods-enabled/dir.conf

将index.php移动到第一位即可

sudo systemctl restart apache2

我们可以查看php的扩展包,并选择安装

apt search php- | less

上面这条命令会列出php的包名和简略的描述信息

使用下面这条命令查看详细信息

apt show package_name

package_name是我们选择的包的名字

Step4 设置虚拟主机

创建网站目录

udo mkdir /var/www/your_domain

更改目录权限

sudo chmod -R 755 /var/www/your_domain

配置虚拟主机

/etc/apache2/sites-available/your_domain.conf

编辑以下内容

<VirtualHost *:80>
    ServerAdmin webmaster@localhost
    ServerName penhub
    ServerAlias www.penhub
    DocumentRoot /var/www/penhub
    ErrorLog ${APACHE_LOG_DIR}/error.log
    CustomLog ${APACHE_LOG_DIR}/access.log combined
</VirtualHost>

a2ensite是用于快速切换站点的工具,a2ensite可以激活apache文件夹下sites-available里包含配置文件的站点

sudo a2ensite your_domain.conf

禁用默认配置

sudo a2dissite 000-default.conf

测试有无配置错误

sudo apache2ctl configtest

出现Syntax OK则说明一切正常

重启apache2服务器

sudo systemctl restart apache2