所谓LAMP一般就是指Linux+Apache+MySQL+PHP,Linux不用说了,就是我们正在使用的系统,Apache是一款全球使用率最高的Web服务器软件,MySQL是最流行的关系型数据库管理系统之一,PHP是一种服务器端解释型语言,使用率也非常高,入门和配置比较简单。

一、三个软件的安装

1.Apache的安装

使用apt源安装简单方便:

1
sudo apt-get install apache2 -y

安装后打开浏览器访问你的服务器,应该会看到Apache2 ubuntu default page,不然就是出了问题。

2.安装PHP

1
sudo apt-get install php7.2 -y

3.安装MySQL

1
sudo apt-get install mysql-server -y

4.安装PHP-MySQL相关组件

1
sudo apt-get install php7.2-mysql -y

到这里,环境已经安装完毕,接下来就是配置了。

二、MySQL的配置

1.MySQL root密码修改

新版本的MySQL安装的时候没有让用户输入密码,但是给我们分配了一个名为debian-sys-maint的用户,至于密码我们要执行

1
sudo vim /etc/mysql/debian.cnf

配置文件中的password字段就是密码,记录下来,退出vim。然后执行

1
mysql -u debian-sys-maint -p 密码

首先我们要进入到mysql数据库:

1
use mysql;

然后我们修改root的密码:
第一句的PASSWORD(str)是加密函数。第二句是将默认认证方式改为mysql_native_password,第三句是刷新权限。

1
2
3
update user set authentication_string=PASSWORD("你要改的密码") where user='root';
update user set plugin="mysql_native_password";
flush privileges;

2.MySQL配置外网访问(不安全)

配置外网能访问MySQL,方便我们在使用图形化工具导入导出数据(接着上一步),这句话的意思是采用授权将root用户登录MySQL的主机改为%,即所有主机,然后刷新权限退出。

1
2
3
grant all on *.* to root@'%' identified by '刚刚设置的密码' with grant option;
flush privileges;
quit;

退出之后我们还要再修改一下MySQL的配置文件:

1
sudo vi /etc/mysql/mysql.conf.d/mysqld.cnf

注释掉bind-address = 127.0.0.1,最后重启MySQL:

1
sudo service mysql restart

三、网站的配置(以typecho为例)

1.下载typecho

以下的步骤是下载解压typecho,并把网站移动到/var/www/html中去:

1
2
3
4
cd
wget http://typecho.org/downloads/1.1-17.10.30-release.tar.gz
tar -zxvf 1.1-17.10.30-release.tar.gz
sudo mv build/* /var/www/html

访问你的网站,输入数据库信息等,就可以使用typecho博客啦!如果遇到无法选择数据库适配器,请重启Apache2:

1
sudo service apache2 restart

2.配置HTTPS访问

HTTP早就不安全啦,可能你的网络提供商正无时无刻的查看着你通过HTTP协议访问的信息,使用HTTPS协议就可以避免这个问题,使你网站的浏览者的安全得到保障。

A.申请SSL证书

腾讯云用户可以直接在SSL管理界面免费申请一年的证书,其他用户可以在FreeSSL.org申请免费证书,过程我这里不做讲解了。

B.配置SSL证书

HTTPS协议的端口缺省是443,我们首先需要加载Apache的SSL模块并启动默认SSL站点:

1
2
sudo a2enmod ssl
sudo a2ensite default-ssl

将我们的私钥(.key)文件,和证书文件(.pem)放到一个地方,比如说/etc/apache2/ssl,私钥可千万别给别人哦。然后配置默认ssl站点:

1
sudo vim /etc/apache2/sites-enabled/default-ssl.conf

修改SSLCertificateFile为自己的证书文件,修改SSLCertificateKeyFile为自己的私钥文件。然后重启Apache2即可正常访问了。

C.80重定向到443端口

有些同学喜欢输入http://域名 这样就是使用了http协议,我们想让它自动跳转到443要怎么办呢?有两种方法,一种是更改Apache默认站点的配置设置重定向,一种是使用.htaccess配置文件来重定向,后者比较简单,所以我来讲解第二种。首先Apache2要加载重写模块并创建配置文件:

1
2
3
sudo a2enmod rewrite
sudo service apache2 restart
sudo vim /var/www/html/.htaccess

然后在.htaccess配置文件中写入

1
2
3
RewriteEngine on
RewriteCond %{SERVER_PORT} !^443$
RewriteRule ^.*$ https://域名%{REQUEST_URI} [L,R]

简单来说就是当前用户不是通过443端口访问的话,就跳转到https://域名 。