前言

说实话最近正好要用到PHP语言写的服务器,寻思着自己手上的服务器现在都是Linux的,也没有Windows Server的服务器,自己也从来没有在Linux系统里面搭建过服务器(宝塔除外),所以想尝试一下。
主要参考的文章来自CSDN的《Ubuntu 搭建Web服务器(MySQL+PHP+Apache)详细教程》,里面有部分前置知识感觉蛮有用的,这里也一并搬过来:

  1. PHP 和 Apache 啥关系?
    大佬总结:(1)一说到 php, 很多人会本能地想到 apache, 其 php 和 apache 没有半毛钱的关系。
    php 是语言, 而apache是web服务器
  2. What is LAMP?
    LAMP:Linux+Apache+Mysql/MariaDB+Perl/PHP/Python
  3. 啥是 Linux 包管理器,为啥我的用不了?
    (1)Linux 的常用包管理器 apt rpm yum 安装系统时是没有的,需要自己安装,就类似 windows 里面的添加/删除程序
    (2)Ubuntu 默认的包管理器为 apt,而 rpm,yum 是 Redhat 的软件包管理器
    (3)Ubuntu 绝大多数用 apt 就够了,当然也可以用 rpm yum 包管理器

(以下一切命令都是以root身份运行的,如果你不是用root身份运行的话,请在左右命令前加上sudo或者使用命令sudo su提升权限以root身份运行)

正文

1 Linux服务器

这次用的服务器是之前Linode里面注册的一个共享服务器,之前做的Beef测试所用的,先来查一下Linux版本吧。运行命令lsb_release -a。得知Linux版本为Ubuntu 18.04.4 LTS。
16484697971.png

2 Ubuntu安装MySQL

2.1 安装MySQL

MySQL作为数据库管理软件,还是需要的。分别运行以下命令

# 1. install server
apt-get install mysql-server
# 2. install client
apt-get install mysql-client
# 3. install library
apt-get install libmysqlclient-dev

2.2 检查MySQL是否安装成功

我们再来检测mysql的socket是否处于listen状态,如果有,则表示安装成功,运行以下命令

# if netstat does not work, run this command
# apt install net-tools

# check mysql whether is listened
netstat -tap | grep mysql

我们发现,mysql的端口是在被listen的,于是安装成功!
16484698801.png

2.3 登录MySQL查看

我们输入以下命令登录mysql查看所有的数据库

# default username: root; default password: root
mysql -u root -proot

我们可以发现我们进入到mysql里面了。
16484699041.png
我们随便输入几条命令查一下mysql里面的database 和 相关的表

# show all databases (be careful do not forget semicolon ';'!!)
show databases;

# use a specific database 'information_schema'
use sys;

# show all tables
show tables;

# check all the information
select * from x$user_summary;

16484699251.png

16484699471.png

16484699601.png

16484700211.png

3 Ubuntu安装Apache2

3.1 安装Apache2

对于一个网站来说,我们需要一个Web容器,那么这就是Apache2的主要作用,我们安装Apache2只需要一条命令:

# install apache web content
apt-get install apache2

接下来我们去浏览器里面输入我们的ip地址,看看是否有显示,发现apache成功安装成功了~!
16484701961.png

3.2 Apache的默认目录

对于Apache,我们有如下的一些目录

  1. 默认文档根目录 /var/www/
  2. 配置文件 /etc/apache2/apache2.conf
  3. 配置存储的子目录 /etc/apache2/

3.3 Apache的一些基本命令

  1. 重启Apache服务器 service apache2 restart
  2. 开启Apache服务器 service apache2 start
  3. 关闭Apache服务器 service apache2 stop

在这里Apache基本的介绍就完成了,然后既然我们是LAMP = Linux + Apache + MySQL + PHP,最后一个就是PHP了

4 Ubuntu安装PHP

4.1 安装PHP

我们首先可以通过命令查看自己Linux里面是否已经安装好了php,通过命令php -v,发现并没有安装,于是乎可以开始安装了 QvQ!
16484706201.png

这篇参考文章《Ubuntu 搭建Web服务器(MySQL+PHP+Apache)详细教程》已经给的很详细了,于是我这边直接就搬运过来,不做太多修改

# install php 7.2
apt-get install software-properties-common
add-apt-repository ppa:ondrej/php && sudo apt-get update
apt-get -y install php7.2

# if other php version exists, ban it
# a2dismod php5
# a2enmod php7.2

# recommended extension
apt-get -y install php7.2-fpm php7.2-mysql php7.2-curl php7.2-json php7.2-mbstring php7.2-xml  php7.2-intl php7.2-odbc php7.2-cgi

# other extensions if needed
# apt-get install php7.2-gd
# apt-get install php7.2-soap
# apt-get install php7.2-gmp      
# apt-get install php7.2-pspell     
# apt-get install php7.2-bcmath   
# apt-get install php7.2-enchant    
# apt-get install php7.2-imap       
# apt-get install php7.2-ldap       
# apt-get install php7.2-opcache
# apt-get install php7.2-readline   
# apt-get install php7.2-sqlite3    
# apt-get install php7.2-xmlrpc
# apt-get install php7.2-bz2
# apt-get install php7.2-interbase
# apt-get install php7.2-pgsql      
# apt-get install php7.2-recode     
# apt-get install php7.2-sybase     
# apt-get install php7.2-xsl     
# apt-get install php7.2-dba 
# apt-get install php7.2-phpdbg     
# apt-get install php7.2-snmp       
# apt-get install php7.2-tidy       
# apt-get install php7.2-zip

4.2 运行php

我们通过命令php -v来查看我们的PHP 7.2是否已经安装完成了。
16484709141.png
O(∩_∩)O 完成啦~!

BUG

由于某些原因,用这方方法构建的服务器,php无法连接MySQL数据库,有解决了这个问题的同学请联系我。具体问题请见《[安全] 通过邮箱获取IP定位》中的1.3 连接数据库,插入数据。

参考

[1] Ubuntu 搭建Web服务器(MySQL+PHP+Apache)详细教程

Q.E.D.


立志做一个有趣的碳水化合物