在运行网页之前,需要先对服务器的环境进行部署,使得服务器能够正常的提供服务。所以呢,为了zhuability让服务器正常提供服务,我们要为服务器安装环境。最经典的环境就是LAMP,即 Linux+Apache2+MySQL+PHP。现在默认我们已经装了Linux发行版Ubuntu(建议20.04 LTS),Debian类型的Linux发行版均可参照本文章。

部署Apache2

Apache2是一个很著名的服务器软件,用于提供web服务,因此Apache2是我们首先要安装的服务。
先来获取一下root权限(在终端中输入)

su

然后输入root用户的密码,就可以获得root权限。
这个时候,你的终端最左边会显示root,就像这样

[email protected]_computer_name:

然后首先更新一下服务器

apt update 
apt upgrade 
apt mist-upgrade

接下来就进入正题啦!睁大眼睛!!!

apt install apache2

忽略安装过程中的输出,如果要求你输入(Y/N),输入Y同意就行。

检查是否开启apache2服务:

systemctl status apache2

Apache成功运行
看到了大大的绿色的active就是完成了!

如果你要开启、关闭、重启Apache2服务,请参考一下指令:

开启Apache2服务:

systemctl start apache2

关闭Apache2服务:

systemctl stop apache2

重启Apache2服务

systemctl restart apache2

在服务器端的浏览器上输入127.0.0.1(或localhost)或者随便找一台设备在浏览器中输入你的服务器的公网ip(如果你是云服务器,请首先在安全组中放行80端口)或者访问你服务器的内网ip(设备与服务器要在同一个局域网中)就可以访问到Apache2默认的界面:
Apache2默认页面

部署MySQL

MySQL是一种数据库,用于网页的本地储存。
安装MySQL:

apt install mysql-server

输入 netstat -tap|grep mysql查看MySQL是否安装成功,如果显示如下处于LISTEN状态,就是安装成功了:

MySQL成功安装

可以通过如下的指令进入MySQL数据库:

mysql -u root -p

其中-u是指用户名(username),-p是指密码(password),这一行指令的意思是登录用户名为root的mysql数据库
按完回车后会让你输入密码,由于此时的MySQL没有密码,所以直接再次回车即可。
常用的MySQL指令如下(更多指令请search baidu):

show databases;      #显示数据库
use ***;             #进入名为***的数据库
show tables;         #显示当前数据库的表
exit;                #退出MySQL

接下来我们退出MySQL,在终端中输入mysql_secure_installation来进行MySQL的初始化操作,相关操作选择我已经打了注释:

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: N   

//我选择了没有安装

Please set the password for root here.
New password:   

//输入你要为root账户(MySQL最高权限账户)设置的数据库密码

Re-enter new password:   

//再次输入密码
By default, a MySQL installation has an anonymous user,
allowing anyone to log into MySQL without having to have
a user account created for them. This is intended only for
testing, and to make the installation go a bit smoother.
You should remove them before moving into a production
environment.

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  

//禁止root管理员从远程登录,我这边选择了N,不过如果你确定不需要远程登录的话,可以填Y
... skipping.
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  

//删除测试数据库和对测试数据库的访问权限,选择Y(强迫症当然选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  

//刷新授权表,让初始化后的设定立即生效,这边一定要选Y

Success.
All done!

 

这样MySQL初始化操作就结束了。(据说网上会有些人遇到问题,但是我好像没有遇到,如果你遇到了可以告诉我,或者出门右转找度娘qwq)
然后可以用查询服务状态的指令查询MySQL服务是否正常(其实不出意外都是正常的):

systemctl status mysql

部署PHP

php用于创建和显示动态网页。
输入以下命令安装php:

apt install php

输入以下命令测试php是否安装完成,若安装成功,会显示php的版本:

php -v

接下来测试php页面。我们首先要改变Apache2提供的首页。

输入:

vim /etc/apache2/mods-enabled/dir.conf

在vim中,输入i进入编辑编辑,除了不能使用鼠标移动光标外,其他的和普通编辑器一模一样。

将index.php放在最前面:

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

最后按esc退出编辑模式,再依次输入:wq来保存并退出(如果没有任何改动,则输入:q退出;如果有改动但是不想保存,想直接退出,则输入:q!)

在/var/www/html目录下新建一个叫做index.php的文件,在php文件中调用 phpinfo()函数来显示php测试页面,在index.php中输入:

<?php
phpinfo();
?>

接下来访问:http://{your_server_url}/index.php

你就可以访问到php的信息页面。

接下来安装php模块(可选可不选,反正我是强烈推荐装一下):

apt install php-curl php-mysql

然后你就可以愉快的玩耍啦~

如果想要可视化管理数据库,可以安装phpmyadmin,具体操作可以参考网上的很多博客~

Last modification:August 22nd, 2020 at 12:08 am