目标:基于 CentOS 7.8 + Apache 2.4 + PHP 7.2 + MySQL 5.7 运行环境部署个人博客。

1. Typecho博客上云

此处,博主选择的是 Typecho博客,运行环境要求:

  • Apache 2.4.x
  • MySQL 5.7.x
  • PHP >= 5.4【推荐版本7.2】

PHP 必要扩展:curl, mbstring, iconv, mysqlnd

2. Apache

Apache HTTP Server(简称 Apache)是 Apache 软件基金会的一个开放源码的网页服务器,可以在大多数计算机操作系统中运行,由于其多平台和安全性被广泛使用,是最流行的 Web 服务器端软件之一。它快速、可靠并且可通过简单的 API 扩展,将Perl/Python等解释器编译到服务器中。

Web server market share

申明:本图来源于 Netcraft 发布的 October 2020 Web Server Survey,在2020年10月的调查中,我们收到了来自 1,205,797,275 个网站的响应,涉及 264,098,084 个独特域名和 10,449,223 台面向网络的电脑。这反映了 950 万个主机名和 111,000 台计算机的增加。

2.1 Apache 安装

# 1. 检查 yum 仓库的 httpd 版本及安装状态
yum info httpd

# 2. 安装 httpd
yum -y install httpd

# 3. 启动 httpd 服务
systemctl start httpd

2.2 防火墙、安全组配置

  • 如果是本机或虚拟机环境的 CentOS 仅需配置防火墙即可
# 防火墙配置
systemctl restart firewalld.service
firewall-cmd --permanent --add-port=80/tcp
firewall-cmd --reload
  • 云服务中需要配置安全组

image.png

2.3 访问测试

打开浏览器,输入您的服务器的 IP(公网) 地址进行

image.png

3. PHP

PHP(全称:PHP:Hypertext Preprocessor,即“PHP:超文本预处理器”)是一种开源的通用计算机脚本语言,尤其适用于网络开发并可嵌入 HTML 中使用。PHP 的语法借鉴吸收 C 语言、Java 和 Perl 等流行计算机语言的特点,易于一般程序员学习。PHP 的主要目标是允许网络开发人员快速编写动态页面,但 PHP 也被用于其他很多领域。

PHP 最初是由勒多夫在1995年开始开发的;现在 PHP 的标准由 the PHP Group 维护。PHP 以 PHP License 作为许可协议,不过因为这个协议限制了 PHP 名称的使用,所以和开放源代码许可协议GPL 不兼容。

PHP 的应用范围相当广泛,尤其是在网页程序的开发上。一般来说PHP大多运行在网页服务器上,透过运行 PHP 代码来产生用户浏览的网页。PHP 可以在多数的服务器和操作系统上运行。根据 w3techs 官方显示,78.7%网站的服务器端编程语言使用 PHP ,其次是 ASP.NET占比10.5%,第三是 Java 占比3.5%,Python 则排名在第七占比1.4%。

image.png

# 1. 检查 yum 仓库的 php 版本及安装状态
yum info php

image.png

申明:默认 CentOS 7.x 的 yum 仓库中的软件包版本一般都比较陈旧,此处显示出 PHP 的版本为 5.4.16。

# 2. 寻找第三方的 PHP 安装源
#   2.1 EPEL 源:EPEL(Extra Packages for Enterprise Linux)是由Fedora Special Interest Group维护的Enterprise Linux(RHEL、CentOS)中经 常用到的包,一般的云服务器上已配置该 epel 源。
wget -O /etc/yum.repos.d/Aliyun-epel.repo http://mirrors.aliyun.com/repo/epel-7.repo

#   2.2 Remi 源:Remi 源大家或许很少听说, 但是我们强烈推荐, 尤其对于不想编译最新版的 linux 使用者, 因为 Remi 源中的软件几乎都是最新稳定版。
yum -y install https://rpms.remirepo.net/enterprise/remi-release-7.rpm
yum -y install yum-utils
yum-config-manager --disable 'remi-php*'
yum-config-manager --enable   remi-php72

# 3. 检查 PHP 源安装情况
yum repolist all | grep php

# 4. 安装 PHP 7.2
yum -y install php

# 5. 检查 PHP 安装情况
php -v
php -m

参考

4. LAP

  • Apache 已正常使用
  • PHP 7.2 安装完成
  • 测试 Apache 与 PHP 集成
# 1. yum 安装 PHP 之后会自动产生适用于 Apache 的配置文件(/etc/httpd/conf.d/php.conf)

# 2. 重启 Apache 服务
systemctl restart httpd

# 3. 添加 PHP 测试页
cat > /var/www/html/index.php <<EOF
<?php
    phpinfo();
EOF

# 4. 在浏览器访问 index.php 测试页

image.png

5. MySQL

MySQL 原本是一个开放源码的关系数据库管理系统,原开发者为瑞典的 MySQL AB 公司,该公司于2008年被昇阳微系统(Sun Microsystems)收购。2009年,甲骨文公司(Oracle)收购昇阳微系统公司,MySQL 成为 Oracle 旗下产品。

MySQL 在过去由于性能高、成本低、可靠性好,已经成为最流行的开源数据库,因此被广泛地应用在 Internet 上的中小型网站中。随着 MySQL 的不断成熟,它也逐渐用于更多大规模网站和应用,比如维基百科、Google 和 Facebook 等网站。非常流行的开源软件组合 LAMP 中的“M”指的就是 MySQL。

但被甲骨文公司收购后,Oracle 大幅调涨 MySQL 商业版的售价,且甲骨文公司不再支持另一个自由软件项目 OpenSolaris 的发展,因此导致自由软件社区们对于 Oracle 是否还会持续支持 MySQL 社区版(MySQL之中唯一的免费版本)有所隐忧,MySQL 的创始人麦克尔·维德纽斯以 MySQL 为基础,成立分支计划 MariaDB。而原先一些使用 MySQL 的开源软件逐渐转向 MariaDB 或其它的数据库。例如维基百科已于2013年正式宣布将从 MySQL 迁移到 MariaDB 数据库。

申明:由于 MySQL 的开源软件转向 MariaDB,所以 CentOS 7.x 版本的系统中不再内置 MySQL 数据库,取而代之的是 MariaDB(MySQL 5.5.65)。

# 1. 转至 MySQL 官网,寻找需要的 MySQL(MySQL Community 5.7.x)

# 2. 根据系统安装对应的 MySQL YUM 源 
yum -y localinstall https://dev.mysql.com/get/mysql80-community-release-el7-3.noarch.rpm

# 3. YUM 源中默认启用的是 MySQL 8.0 版本,需要做如下设置
yum repolist all | grep mysql
yum-config-manager --disable mysql80-community
yum-config-manager --enable mysql57-community

# 4. 确认 MySQL 软件包的名称
yum search mysql | grep ^mysql
yum info mysql-community-server

# 5. 安装
yum -y install mysql-community-server

# 6. 启动 MySQL 数据库
systemctl enable mysqld
systemctl start mysqld

# 7. 重新设置 MySQL 中 root 的密码
#   7.1 MySQL 生成的临时密码查看
grep "temporary password" /var/log/mysqld.log

#   7.2 设置密码
mysqladmin -uroot -p password

# 8. 登录测试
mysql -uroot -p

image.png

参考

6. LAMP

LAMP 是指一组通常一起使用来运行动态网站或者服务器的自由软件名称首字母缩写:

  • Linux,操作系统
  • Apache,网页服务器
  • MariaDB 或 MySQL,数据库管理系统(或者数据库服务器)
  • PHP、Perl 或 Python,脚本语言

各独立程序都已准备就绪,接下来根据需要部署的项目详细需求,做必要的调整即可。

  • 运行环境准备
# 1. 检查 PHP 已安装模块并安装 Typeecho博客 中必要的 PHP 扩展模块
php -m
yum -y install php-mysqlnd php-mbstring

# 2. 重启 httpd 服务
systemctl restart httpd

# 3. 将 Typecho博客部署至 /var/www/html 中
cd /var/www/html
wget -O ~/typecho.tar.gz http://typecho.org/downloads/1.1-17.10.30-release.tar.gz
tar -xzf ~/typecho.tar.gz -C ./
mv ./build/* ./ && rm -rf ./build

image.png

  • 浏览器访问服务器,进入Typecho博客安装向导页

image.png

  • 创建typecho数据库
CREATE DATABASE IF NOT EXISTS typecho DEFAULT CHARSET utf8 COLLATE utf8_general_ci;
  • 安装成功

image.png

image.png

至此,一个属于你的个人博客就搭建完毕了,行动吧,在互联网的世界里,留下你的足迹。