前言
说实话最近正好要用到PHP语言写的服务器,寻思着自己手上的服务器现在都是Linux的,也没有Windows Server的服务器,自己也从来没有在Linux系统里面搭建过服务器(宝塔除外),所以想尝试一下。
主要参考的文章来自CSDN的《Ubuntu 搭建Web服务器(MySQL+PHP+Apache)详细教程》,里面有部分前置知识感觉蛮有用的,这里也一并搬过来:
- PHP 和 Apache 啥关系?
大佬总结:(1)一说到 php, 很多人会本能地想到 apache, 其 php 和 apache 没有半毛钱的关系。
php 是语言, 而apache是web服务器 - What is LAMP?
LAMP:Linux+Apache+Mysql/MariaDB+Perl/PHP/Python - 啥是 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。
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的,于是安装成功!
2.3 登录MySQL查看
我们输入以下命令登录mysql查看所有的数据库
# default username: root; default password: root
mysql -u root -proot
我们可以发现我们进入到mysql里面了。
我们随便输入几条命令查一下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;
3 Ubuntu安装Apache2
3.1 安装Apache2
对于一个网站来说,我们需要一个Web容器,那么这就是Apache2的主要作用,我们安装Apache2只需要一条命令:
# install apache web content
apt-get install apache2
接下来我们去浏览器里面输入我们的ip地址,看看是否有显示,发现apache成功安装成功了~!
3.2 Apache的默认目录
对于Apache,我们有如下的一些目录
- 默认文档根目录 /var/www/
- 配置文件 /etc/apache2/apache2.conf
- 配置存储的子目录 /etc/apache2/
3.3 Apache的一些基本命令
- 重启Apache服务器
service apache2 restart
- 开启Apache服务器
service apache2 start
- 关闭Apache服务器
service apache2 stop
在这里Apache基本的介绍就完成了,然后既然我们是LAMP = Linux + Apache + MySQL + PHP,最后一个就是PHP了
4 Ubuntu安装PHP
4.1 安装PHP
我们首先可以通过命令查看自己Linux里面是否已经安装好了php,通过命令php -v
,发现并没有安装,于是乎可以开始安装了 QvQ!
这篇参考文章《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是否已经安装完成了。
O(∩_∩)O 完成啦~!
BUG
由于某些原因,用这方方法构建的服务器,php无法连接MySQL数据库,有解决了这个问题的同学请联系我。具体问题请见《[安全] 通过邮箱获取IP定位》中的1.3 连接数据库,插入数据。
参考
[1] Ubuntu 搭建Web服务器(MySQL+PHP+Apache)详细教程
Q.E.D.