Table des matières
安装准备
创建flarum工程
一些修改和设置
修改权限
开启rewrite
重定向
修改host
数据库
安装flarum
访问oops
Maison développement back-end tutoriel php 升级站长秘籍:使用flarum框架搭建一个有逼格的轻论坛

升级站长秘籍:使用flarum框架搭建一个有逼格的轻论坛

Jun 23, 2016 pm 01:09 PM

先来个成品图观赏观赏:

手机版:

电脑版:

我的环境:ubuntu 14.06 x64 VPS

安装准备

依次安装 apache2、php5、mysql-server、php5-mysql .

sudo apt-get install apache2sudo apt-get install php5sudo apt-get install mysql-serversudo apt-get install php5-mysql
Copier après la connexion

安装composer.(这一步直接在官网下载可执行文件加上可执行权限复制到/usr/local/bin中就行)

php -r "readfile('https://getcomposer.org/installer');" > composer-setup.phpphp -r "if (hash('SHA384', file_get_contents('composer-setup.php')) === '7228c001f88bee97506740ef0888240bd8a760b046ee16db8f4095c0d8d525f2367663f22a46b48d072c816e7fe19959') { echo 'Installer verified'; } else { echo 'Installer corrupt'; unlink('composer-setup.php'); } echo PHP_EOL;"php composer-setup.php --install-dir=bin --filename=composerphp -r "unlink('composer-setup.php');"
Copier après la connexion

创建flarum工程

一定要在空目录里执行create-object.

mkdir V2NB_forumcd V2NB_forum/composer create-project flarum/flarum . --stability=beta
Copier après la connexion

安装过程中可能会出现错误:

Installing flarum/flarum (v0.1.0-beta.5)  - Installing flarum/flarum (v0.1.0-beta.5)    Downloading: 100%         Created project in .Loading composer repositories with package informationUpdating dependencies (including require-dev)Your requirements could not be resolved to an installable set of packages.  Problem 1    - flarum/flarum-ext-akismet v0.1.0-beta.3 requires tijsverkoyen/akismet ^1.1 -> satisfiable by tijsverkoyen/akismet[1.1.0].    - flarum/flarum-ext-akismet v0.1.0-beta.5 requires tijsverkoyen/akismet ^1.1 -> satisfiable by tijsverkoyen/akismet[1.1.0].    - tijsverkoyen/akismet 1.1.0 requires ext-curl * -> the requested PHP extension curl is missing from your system.    - Installation request for flarum/flarum-ext-akismet ^0.1.0 -> satisfiable by flarum/flarum-ext-akismet[v0.1.0-beta.3, v0.1.0-beta.5].  To enable extensions, verify that they are enabled in those .ini files:    - /etc/php5/cli/php.ini    - /etc/php5/cli/conf.d/05-opcache.ini    - /etc/php5/cli/conf.d/10-pdo.ini    - /etc/php5/cli/conf.d/20-json.ini    - /etc/php5/cli/conf.d/20-mysql.ini    - /etc/php5/cli/conf.d/20-mysqli.ini    - /etc/php5/cli/conf.d/20-pdo_mysql.ini    - /etc/php5/cli/conf.d/20-readline.ini  You can also run `php --ini` inside terminal to see which files are used by PHP in CLI mode.
Copier après la connexion

这时需要安装php-curl后,删除目录中的所有文件(包括.开头的隐藏文件)再执行 composer create-project flarum/flarum . --stability=beta .

sudo apt-get install php5-curl
Copier après la connexion

正常的安装日志应该好长好长。

这时工程目录中的文件如下:

一些修改和设置

修改权限

将工程目录全部文件和文件夹的权限修改为777.如我的是:

sudo chmod -R 777 /home/kiya/v2nb
Copier après la connexion

开启rewrite

cd /etc/apache2/mods-enabledsudo ln -s ../mods-available/rewrite.load
Copier après la connexion

重定向

修改 /etc/apache2/sites-available/000-default.conf 文件中的DocumentRoot项为你的项目文件夹路径. 如 DocumentRoot /home/kiya/v2nb .

并在该文件中的 VirtualHost 节点之间添加如下代码:

<Directory /home/kiya/V2NB>    AllowOverride All</Directory>
Copier après la connexion

在 /etc/apache2/apache2.conf 文件中找到:

<Directory />        Options FollowSymLinks        AllowOverride None        Require all denied</Directory>
Copier après la connexion

将 Require all denied 改为 Require all granted ,将 AllowOverride None 改为 AllowOverride All .

修改host

sudo vim /etc/hosts
Copier après la connexion

打开hosts新增加一行 23.105.197.243 v2nb.today . 这里的ip是vps的ip,域名随便写. 本机的话可以ip可以写成 127.0.0.1 .

如果这里不加在启动apache服务时会警告:

AH00558: apache2: Could not reliably determine the server's fully qualified domain name, using v2nb.today. Set the 'ServerName' directive globally to suppress this message
Copier après la connexion

数据库

命令行创建一个论坛用的数据库,user和pass时安装mysql时填写的账号密码. 待会要用到.

mysql -u user -ppasscreate database v2nb;
Copier après la connexion

安装flarum

重启apache服务.

sudo service apache2 restart
Copier après la connexion

用浏览器访问 23.105.197.243 . 如果是本地测试则访问 localhost .

如果出现的是:

则需要安装 gd 模块,执行 sudo apt-get install php5-gd 重启apache即可.

正确的话会出现下图页面用以填写信息:

其中的 MySQL Database 是上面我们自己创建的数据库名字. 填好之后点击 Install Flarum .

出现下图就安装好啦~

管理员界面:

访问oops

在使用域名打开论坛时如果经常出现 Oops! Something went wrong. Please reload the page and try again 并且资源也加载不出,可能是说明请求的url和配置的url不一样.

需要修改工程目录下的 config.php 文件.

sudo vim config.php
Copier après la connexion

如将 'url' => '23.105.197.243' 改为 'url' => 'v2nb.today' .

Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn

Outils d'IA chauds

Undresser.AI Undress

Undresser.AI Undress

Application basée sur l'IA pour créer des photos de nu réalistes

AI Clothes Remover

AI Clothes Remover

Outil d'IA en ligne pour supprimer les vêtements des photos.

Undress AI Tool

Undress AI Tool

Images de déshabillage gratuites

Clothoff.io

Clothoff.io

Dissolvant de vêtements AI

AI Hentai Generator

AI Hentai Generator

Générez AI Hentai gratuitement.

Article chaud

R.E.P.O. Crystals d'énergie expliqués et ce qu'ils font (cristal jaune)
1 Il y a quelques mois By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Meilleurs paramètres graphiques
1 Il y a quelques mois By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Comment réparer l'audio si vous n'entendez personne
1 Il y a quelques mois By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Commandes de chat et comment les utiliser
1 Il y a quelques mois By 尊渡假赌尊渡假赌尊渡假赌

Outils chauds

Bloc-notes++7.3.1

Bloc-notes++7.3.1

Éditeur de code facile à utiliser et gratuit

SublimeText3 version chinoise

SublimeText3 version chinoise

Version chinoise, très simple à utiliser

Envoyer Studio 13.0.1

Envoyer Studio 13.0.1

Puissant environnement de développement intégré PHP

Dreamweaver CS6

Dreamweaver CS6

Outils de développement Web visuel

SublimeText3 version Mac

SublimeText3 version Mac

Logiciel d'édition de code au niveau de Dieu (SublimeText3)

Expliquez les jetons Web JSON (JWT) et leur cas d'utilisation dans les API PHP. Expliquez les jetons Web JSON (JWT) et leur cas d'utilisation dans les API PHP. Apr 05, 2025 am 12:04 AM

JWT est une norme ouverte basée sur JSON, utilisée pour transmettre en toute sécurité des informations entre les parties, principalement pour l'authentification de l'identité et l'échange d'informations. 1. JWT se compose de trois parties: en-tête, charge utile et signature. 2. Le principe de travail de JWT comprend trois étapes: la génération de JWT, la vérification de la charge utile JWT et l'analyse. 3. Lorsque vous utilisez JWT pour l'authentification en PHP, JWT peut être généré et vérifié, et les informations sur le rôle et l'autorisation des utilisateurs peuvent être incluses dans l'utilisation avancée. 4. Les erreurs courantes incluent une défaillance de vérification de signature, l'expiration des jetons et la charge utile surdimensionnée. Les compétences de débogage incluent l'utilisation des outils de débogage et de l'exploitation forestière. 5. L'optimisation des performances et les meilleures pratiques incluent l'utilisation des algorithmes de signature appropriés, la définition des périodes de validité raisonnablement,

Expliquez le concept de liaison statique tardive en PHP. Expliquez le concept de liaison statique tardive en PHP. Mar 21, 2025 pm 01:33 PM

L'article traite de la liaison statique tardive (LSB) dans PHP, introduite dans PHP 5.3, permettant une résolution d'exécution de la méthode statique nécessite un héritage plus flexible. Problème main: LSB vs polymorphisme traditionnel; Applications pratiques de LSB et perfo potentiel

Caractéristiques de sécurité du cadre: protection contre les vulnérabilités. Caractéristiques de sécurité du cadre: protection contre les vulnérabilités. Mar 28, 2025 pm 05:11 PM

L'article traite des fonctionnalités de sécurité essentielles dans les cadres pour se protéger contre les vulnérabilités, notamment la validation des entrées, l'authentification et les mises à jour régulières.

Frameworks de personnalisation / d'extension: comment ajouter des fonctionnalités personnalisées. Frameworks de personnalisation / d'extension: comment ajouter des fonctionnalités personnalisées. Mar 28, 2025 pm 05:12 PM

L'article examine l'ajout de fonctionnalités personnalisées aux cadres, en se concentrant sur la compréhension de l'architecture, l'identification des points d'extension et les meilleures pratiques pour l'intégration et le débogage.

Comment envoyer une demande post contenant des données JSON à l'aide de la bibliothèque Curl de PHP? Comment envoyer une demande post contenant des données JSON à l'aide de la bibliothèque Curl de PHP? Apr 01, 2025 pm 03:12 PM

Envoyant des données JSON à l'aide de la bibliothèque Curl de PHP dans le développement de PHP, il est souvent nécessaire d'interagir avec les API externes. L'une des façons courantes consiste à utiliser la bibliothèque Curl pour envoyer le post� ...

Décrivez les principes solides et comment ils s'appliquent au développement de PHP. Décrivez les principes solides et comment ils s'appliquent au développement de PHP. Apr 03, 2025 am 12:04 AM

L'application du principe solide dans le développement de PHP comprend: 1. Principe de responsabilité unique (SRP): Chaque classe n'est responsable d'une seule fonction. 2. Principe ouvert et ferme (OCP): les changements sont réalisés par extension plutôt que par modification. 3. Principe de substitution de Lisch (LSP): les sous-classes peuvent remplacer les classes de base sans affecter la précision du programme. 4. Principe d'isolement d'interface (ISP): utilisez des interfaces à grain fin pour éviter les dépendances et les méthodes inutilisées. 5. Principe d'inversion de dépendance (DIP): les modules élevés et de bas niveau reposent sur l'abstraction et sont mis en œuvre par injection de dépendance.

Comment définir automatiquement les autorisations d'UnixSocket après le redémarrage du système? Comment définir automatiquement les autorisations d'UnixSocket après le redémarrage du système? Mar 31, 2025 pm 11:54 PM

Comment définir automatiquement les autorisations d'UnixSocket après le redémarrage du système. Chaque fois que le système redémarre, nous devons exécuter la commande suivante pour modifier les autorisations d'UnixSocket: sudo ...

See all articles