升级站长秘籍:使用flarum框架搭建一个有逼格的轻论坛
先来个成品图观赏观赏:
手机版:
电脑版:
我的环境: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
安装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');"
创建flarum工程
一定要在空目录里执行create-object.
mkdir V2NB_forumcd V2NB_forum/composer create-project flarum/flarum . --stability=beta
安装过程中可能会出现错误:
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.
这时需要安装php-curl后,删除目录中的所有文件(包括.开头的隐藏文件)再执行 composer create-project flarum/flarum . --stability=beta .
sudo apt-get install php5-curl
正常的安装日志应该好长好长。
这时工程目录中的文件如下:
一些修改和设置
修改权限
将工程目录全部文件和文件夹的权限修改为777.如我的是:
sudo chmod -R 777 /home/kiya/v2nb
开启rewrite
cd /etc/apache2/mods-enabledsudo ln -s ../mods-available/rewrite.load
重定向
修改 /etc/apache2/sites-available/000-default.conf 文件中的DocumentRoot项为你的项目文件夹路径. 如 DocumentRoot /home/kiya/v2nb .
并在该文件中的 VirtualHost 节点之间添加如下代码:
<Directory /home/kiya/V2NB> AllowOverride All</Directory>
在 /etc/apache2/apache2.conf 文件中找到:
<Directory /> Options FollowSymLinks AllowOverride None Require all denied</Directory>
将 Require all denied 改为 Require all granted ,将 AllowOverride None 改为 AllowOverride All .
修改host
sudo vim /etc/hosts
打开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
数据库
命令行创建一个论坛用的数据库,user和pass时安装mysql时填写的账号密码. 待会要用到.
mysql -u user -ppasscreate database v2nb;
安装flarum
重启apache服务.
sudo service apache2 restart
用浏览器访问 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
如将 'url' => '23.105.197.243' 改为 'url' => 'v2nb.today' .

Outils d'IA chauds

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

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

Undress AI Tool
Images de déshabillage gratuites

Clothoff.io
Dissolvant de vêtements AI

AI Hentai Generator
Générez AI Hentai gratuitement.

Article chaud

Outils chauds

Bloc-notes++7.3.1
Éditeur de code facile à utiliser et gratuit

SublimeText3 version chinoise
Version chinoise, très simple à utiliser

Envoyer Studio 13.0.1
Puissant environnement de développement intégré PHP

Dreamweaver CS6
Outils de développement Web visuel

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

Alipay Php ...

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,

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

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.

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.

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� ...

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. Chaque fois que le système redémarre, nous devons exécuter la commande suivante pour modifier les autorisations d'UnixSocket: sudo ...
