文章详情

短信预约-IT技能 免费直播动态提醒

请输入下面的图形验证码

提交验证

短信预约提醒成功

ubuntu手动搭建typecho博客

2023-09-01 09:42

关注

Typecho是一个非常轻量化的开源博客程序,发展至今已经比较成熟,但是在部署时也会遇到一些问题。本文将根据Typecho的安装需求,从零开始部署一个完整的typecho博客。

Typecho需要的组件:

PHP5.1 以上

支持Mysql, PostgreSQL, SQLite 中的任意一种并在PHP中安装了相关扩展

CURL或Socket支持

mbstring或iconv扩展支持

1 PHP的安装

1.1 更新源

 首先安装一个管理源的工具包

apt-get install software-properties-common

 添加Ondřej Surý的PHP源

add-apt-repository ppa:ondrej/php

更新本地系统的源

apt-get update

1.2 安装 PHP7.4

安装PHP7.4,注意需要带上mbstring和mysql。

apt-get install php7.4 php7.4-fpm php7.4-mysql php7.4-gd php7.4-mbstring

安装完成后启动。

service php7.4-fpm start

 PHP安装完成之后,并不能直接使用,因为PHP是一个处理页面的工具,并不能处理http请求。所以我们需要安装Nginx做代理。如果想要搭建支持https的博客,建议编译安装带ssl模块的nginx,安装方法可以参考这篇博客

nginx安装完成以后,我们还需要连接PHP和Nginx,我们既可以通过socks连接,也可以通过端口连接。我自己尝试socks连接出了一些问题,大概于nginx的版本有关,这里有一些相关的讨论。稳妥起见,我们用端口连接PHP和Nginx。

1.3 配置PHP7.4

我们需要更改配置文件,让PHP以端口的方式连接nginx。

nano /etc/php/7.4/fpm/pool.d/www.conf

 找到 listen 项,把/run/php/php7.4-fpm.sock 改为 127.0.0.1:9000,并保存文件。

 重启PHP服务

service php7.4-fpm reload

 此时可以通过 lsof -i:9000 命令查看9000端口的监听情况,如果输出以下信息,说明PHP的配置没有问题。

2 Mysql的安装

ubuntu下安装Mysql非常简单,只需要一行命令:

sudo apt install mysql-server

此时root用户密码为空,我们以root身份进入mysql修改密码,并创建一个用于typecho的数据库:

mysql#进入mysql后更改root密码为mynewpasswordALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password by 'mynewpassword';#创建一个名为typecho_blog的数据库CREATE DATABASE typecho_blog;#随后退出mysqlexit

之后要以root身份进入mysql,就需要使用 'mysql -u root -p' 命令了。

3 typecho的部署

在某个你喜欢的地方新建一个目录,我们即将把typecho程序安装在这里(本文演示的目录为/home/typecho)。

#新建目录mkdir -p /home/typecho#进入目录cd /home/typecho#下载源码(可以在typecho官网找到)wget https://github.com/typecho/typecho/releases/latest/download/typecho.zip#解压源码unzip typecho.zip#对整个源码目录赋予足够的权限chmod -R 777 /home/typecho

解压完成后,我们开始配置Nginx。

4 Nginx与PHP的连接、博客的安装

以下是Nginx与PHP连接的一个示例配置,完成配置之后,重启nginx并在浏览器访问你自己的域名。

server {listen 80;server_name abc.com;root /home/typecho/;index index.php;location ~ .*\.php(\/.*)*$ {root           /home/typecho/;        fastcgi_split_path_info ^(.+?.php)(/.*)$;fastcgi_pass  127.0.0.1:9000;fastcgi_index  index.php;fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;include        fastcgi_params;    }}

点击“下一步”

 根据刚才的信息配置数据库

 配置完成后,就可以进入博客了。

5 支持https的配置

要让博客支持https,必须满足以下条件:

你的域名有SSL证书

Nginx包含了ssl模块

首先,我们来到typecho的后台—设置,将站点地址的http改为https。

接下来,我们进入typecho的安装目录,编辑“config.inc.php”文件,加上这句代码:

define('__TYPECHO_SECURE__',true);

随后,我们也要相应地将nginx的配置文件改为支持ssl的,以下是一个配置文件的示例:

server {listen 443 ssl;server_name abc.com;    #注意ssl证书路径,替换成你自己的ssl_certificate /home/ssl_cert/abc.com_bundle.pem;ssl_certificate_key /home/ssl_cert/abc.com.key;ssl_session_timeout 5m;ssl_ciphers ECDHE-RSA-AES128-GCM-SHA256:ECDHE:ECDH:AES:HIGH:!NULL:!aNULL:!MD5:!ADH:!RC4;ssl_protocols TLSv1 TLSv1.1 TLSv1.2;ssl_prefer_server_ciphers on;root /home/typecho/;index index.php;location ~ .*\.php(\/.*)*$ {root           /home/typecho/;        fastcgi_split_path_info ^(.+?.php)(/.*)$;fastcgi_pass  127.0.0.1:9000;fastcgi_index  index.php;fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; include        fastcgi_params;}}

 重启nginx后再次访问https的网站,可以发现已经变成了安全连接。

现在还有一个问题,如果直接访问域名的话,浏览器一般会默认访问http(80端口),要想强制访问443端口就需要在nginx中设置端口的重定向。这一部分本文就不再赘述,各位自行百度吧~

来源地址:https://blog.csdn.net/diqiudq/article/details/126425003

阅读原文内容投诉

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

软考中级精品资料免费领

  • 历年真题答案解析
  • 备考技巧名师总结
  • 高频考点精准押题
  • 2024年上半年信息系统项目管理师第二批次真题及答案解析(完整版)

    难度     813人已做
    查看
  • 【考后总结】2024年5月26日信息系统项目管理师第2批次考情分析

    难度     354人已做
    查看
  • 【考后总结】2024年5月25日信息系统项目管理师第1批次考情分析

    难度     318人已做
    查看
  • 2024年上半年软考高项第一、二批次真题考点汇总(完整版)

    难度     435人已做
    查看
  • 2024年上半年系统架构设计师考试综合知识真题

    难度     224人已做
    查看

相关文章

发现更多好内容

猜你喜欢

AI推送时光机
位置:首页-资讯-后端开发
咦!没有更多了?去看看其它编程学习网 内容吧
首页课程
资料下载
问答资讯