使用 Emlog 搭建一款多用户博客系统

使用 Emlog 搭建一款多用户博客系统

个人博客早就玩得有点腻了, 独乐乐不如众乐乐,自己也写了一个多用户博客,但是集成在一个比较大的系统里面,一直想把它分拆出来进行,但是一直没有时间和精力去做,考虑到更加没有时间去做推广。花费时间意义又不太大,本着想吃鱼不必去养鱼的想法,一直在寻找一款开源的解决方案。之前试用过 wordpress 的多用户博客,体验下来不太理想。其他的比如 Astro, Strapi 加自定义前端一个比较耗时,体验也不是很好。今天偶然间发现 emlog,我理想中的功能都有,而且还超过了我的预期。所以花了一点点时间把它安装了一下。官方教程写得不够详细,主要在数据库连接方面写得不够详细,花费了一些时间,最终选择了通用安装方式,从我的角度看比较理想。当然在此教程的基础上修改为 docker 或 docker compose 安装方案也比较容易。这里将安装过程记录下来,以便对有同样需求的人有所帮助。

Emlog全称为“Every Memory Log”,即“点滴记忆”,很贴合个人博客的使用场景。Emlog的运行基于PHP和MySQL,采用轻量化模式设计,能够以各种插件和模板的应用,为emolog带来更多功能和外观,让使用者能有更灵活的选择。并且,emlog也能在宝塔面板的一键部署中找到,这无疑节省了很多麻烦。

1. Emlog 的主要功能Markdown 支持多用户角色管理灵活的标签和分类多媒体资源管理全面支持 SEO内置 API 接口丰富的模板主题插件化扩展生态原生支持 AI 功能2. 选择一台 vps这是使用的是一台hostinger vps,申请过程参考这篇文章 快速注册 Hostinger 账号以及创建 Hostinger VPS

配置:4 vCore 16 GB RAM

本教教程使用的操作系统为: Almalinux 9

3. 基础环境安装3.1. 安装防火墙很多操作系统默认没有安装防火墙,或者防火墙没有开启,建议安装防火墙并开启,毕竟将重要端口暴露在公网会导致服务器被莫名地攻击。

12345678910sudo dnf install -y firewalldsystemctl enable firewalld --now# 如果开启, 需放行8080端口, 后面需要用到sudo firewall-cmd --add-port=8080/tcp --permanentsudo firewall-cmd --reload4. 安装 mariaDB在 AlmaLinux 9 上安装 mariaDB 可以参考在 Linux(AlmaLinux 9)上安装 MariaDB | 鹏叔的技术博客

安装完成后创建 emlog 数据库

要登录 MariaDB shell,请运行以下命令。然后系统将提示您输入 MariaDB root 密码:

1sudo mysql -u root -p要创建数据库和数据库用户,请运行以下命令。记得将 DB_password 替换为强大而安全的密码:

12CREATE DATABASE emlog;CREATE USER 'emlog'@'localhost' IDENTIFIED BY 'emlog';然后,运行以下命令授予并刷新数据库用户所有权限:

12GRANT ALL ON emlog.* TO 'emlog'@'localhost';FLUSH PRIVILEGES;您可以用您的数据库详细信息替换 db_name: emlog 和 db_user: emlog 。

要退出 MySQL 命令提示符,请运行以下命令:

1exit完整操作过程如下:

1234567891011121314151617181920212223242526[user@server]# sudo mysql -u root -pEnter password:Welcome to the MariaDB monitor. Commands end with ; or \g.Your MariaDB connection id is 4Server version: 10.5.27-MariaDB MariaDB ServerCopyright (c) 2000, 2018, Oracle, MariaDB Corporation Ab and others.Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.MariaDB [(none)]> CREATE DATABASE emlog;Query OK, 1 row affected (0.001 sec)MariaDB [(none)]> CREATE USER 'emlog'@'localhost' IDENTIFIED BY 'emlog';Query OK, 0 rows affected (0.003 sec)MariaDB [(none)]> GRANT ALL ON emlog.* TO 'emlog'@'localhost';Query OK, 0 rows affected (0.003 sec)MariaDB [(none)]> FLUSH PRIVILEGES;Query OK, 0 rows affected (0.001 sec)MariaDB [(none)]> exitBye数据库用户名,密码后续要用到。

5. 安装 PHP 和 PHP 扩展安装 PHP 和其他支持包,请运行以下命令:

123sudo dnf install -y php php-curl php-bcmath php-gd php-soap php-zip php-mbstring php-mysqlnd php-xml php-intl验证 php 是否安装成功, 要验证已安装的 PHP 版本,请运行以下命令:

123php -v输出如下:

123456PHP 8.0.30 (cli) (built: Aug 3 2023 17:13:08) ( NTS gcc x86_64 )Copyright (c) The PHP GroupZend Engine v4.0.30, Copyright (c) Zend Technologies with Zend OPcache v8.0.30, Copyright (c), by Zend Technologies6. 配置 php-fpm由于我们将使用 nginx 作为 web 服务器,而 php-fpm 默认的是 apache 服务器,

所以需要将 php-fpm 的默认用户和组修改为 nginx

修改 run-as 用户为 nginx 与 nginx web server 保持一致避免后面 upload 文件出现权限问题.

sudo vi /etc/php-fpm.d/www.conf

123456789; Unix user/group of processes; Note: The user is mandatory. If the group is not set, the default user's group; will be used.; RPM: apache user chosen to provide access to the same directories as httpduser = nginx; RPM: Keep a group allowed to write in log dir.group = nginx设置开机启动并运行 php-fpm 服务

123sudo systemctl enable --now php-fpm安装 nginx参考 Linux( Almalinux 9)上 nginx 安装教程

7. 安装 emlog通用安装方式

123sudo dnf install -y unzip nginx123wget -O /tmp/emlog.zip https://www.emlog.net/download/zip解压缩

123sudo unzip -d /var/www/emlog /tmp/emlog.zip并将/var/www/emlog 的 owner 修改为 nginx

1sudo chown -R nginx:nginx /var/www/emlog修改 emlog 配置文件

1234567891011121314151617181920[user@server]$ sudo vi /var/www/emlog/config.php

123sudo vi /etc/nginx/conf.d/emlog.conf1234567891011121314151617181920212223242526272829upstream phpupstream { server unix:/run/php-fpm/www.sock fail_timeout=5s max_fails=5;}server { listen 8080; server_name _; root /var/www/emlog; index index.php index.html index.htm; client_max_body_size 2048M; location / { if (!-e $request_filename) { rewrite ^/(.*)$ /index.php last; } } location ~ \.php$ { fastcgi_pass phpupstream; fastcgi_index index.php; include fastcgi_params; fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; fastcgi_param PATH_INFO $fastcgi_path_info; } }官方安装方式是代码放在/app/emlog, 而我是放在/var/www/emlog,和官方稍有不同。官方教程是使用 9000/tcp 端口通信,我这里是使用 socks 连接 nginx 和 php-fpm

启动nginx重启nginx

123sudo systemctl restart nginx 浏览器打开 https://your_server_ip:8080 访问emlog, 首次访问需要初始化数据库。

9. 参考文档emlog readme file

🎈 相关推荐

超级简单做煎饺的做法
365bet体育在线365

超级简单做煎饺的做法

📅 08-01 👀 4982
win10显示器如何设置hdmi
预付365商城下载

win10显示器如何设置hdmi

📅 08-11 👀 9493
2025眉笔10大品牌排行榜【最新名单公布】
365bet的网站是多少

2025眉笔10大品牌排行榜【最新名单公布】

📅 08-30 👀 8525