如何在Freebsd 12上安装Vanilla论坛

・9 分钟阅读

使用不同的系统?

Vanilla是一个用PHP编写的简单讨论论坛,Vanilla源代码是公共托管在GitHub ,本指南会引导你在使用PHP MariaDB作为数据库和nginx作为Web服务器的FreeBsd12vultr服务器实例上完成普通的安装过程。

要求

Vanilla论坛推荐软件栈:

  • PHP版本7.2或更高版本,有以下扩展名:
    • mbstring
    • curl
    • gd
    • PDO
    • mysqli
    • openssl
  • MySQL版本5.7或更高,或MariaDB等效,本指南将使用MariaDB
  • Web服务器软件,如Nginx或Apache ,本指南将使用Nginx
  • SSL加密是可选的但推荐

开始之前

查看FreeBSD版本。


uname -ro
# FreeBSD 12.0-RELEASE

确保你的FreeBSD系统是最新的。


freebsd-update fetch install
pkg update && pkg upgrade -y

如果系统中不存在一些基本系统管理包,则安装它们。


pkg install -y sudo vim unzip wget curl bash socat git unzip

创建一个新的用户帐户,使用你首选的用户名(我们会使用johndoe )。


adduser

# Username: johndoe
# Full name: John Doe
# Uid (Leave empty for default): <Enter>
# Login group [johndoe]: <Enter>
# Login group is johndoe. Invite johndoe into other groups? []: wheel
# Login class [default]: <Enter>
# Shell (sh csh tcsh nologin) [sh]: bash
# Home directory [/home/johndoe]: <Enter>
# Home directory permissions (Leave empty for default): <Enter>
# Use password-based authentication? [yes]: <Enter>
# Use an empty password? (yes/no) [no]: <Enter>
# Use a random password? (yes/no) [no]: <Enter>
# Enter password: your_secure_password
# Enter password again: your_secure_password
# Lock out the account after creation? [no]: <Enter>
# OK? (yes/no): yes
# Add another user? (yes/no): no
# Goodbye!

运行visudo命令,并且取消注释%wheel ALL=(ALL)ALL行,以允许wheel组的成员执行任何命令。


visudo

# Uncomment by removing hash (#) sign
# %wheel ALL=(ALL) ALL

现在,使用su命令切换到新创建的用户。

 
su -johndoe

 

注:会johndoe替换为你的用户名。

设置时区。

 
sudo tzsetup

 

安装PHP

安装PHP和PHP扩展。


sudo pkg install -y php72 php72-mbstring php72-curl php72-gd php72-pdo php72-mysqli php72-pdo_mysql php72-json php72-openssl php72-ctype php72-dom php72-hash php72-iconv php72-tokenizer php72-calendar php72-fileinfo php72-session php72-simplexml php72-xml php72-filter

检查版本。


php --version
# PHP 7.2.14 (cli) (built: Jan 15 2019 01:14:39) ( NTS )
# Copyright (c) 1997-2018 The PHP Group
# Zend Engine v3.2.0, Copyright (c) 1998-2018 Zend Technologies

软链接php.ini-productionphp.ini


sudo ln -s /usr/local/etc/php.ini-production /usr/local/etc/php.ini

检查已安装的PHP扩展。


php -m
# mbstring
# curl
# gd
# PDO
# mysqli
# openssl
# . . .

启用并启动php fpm 。


sudo sysrc php_fpm_enable=yes
sudo service php-fpm start

安装MariaDB

安装MariaDB 。


sudo pkg install -y mariadb102-client mariadb102-server

检查版本。


mysql --version
# mysql Ver 15.1 Distrib 10.2.19-MariaDB, for FreeBSD12.0 (amd64) using readline 5.1

启动并启用MariaDB 。


sudo sysrc mysql_enable="yes" 
sudo service mysql-server start

运行mysql_secure_installation脚本以提高安装的安全性。


sudo mysql_secure_installation

以root用户身份登录到MariaDB 。


mysql -u root -p
# Enter password:

创建新数据库和用户,记住这个新用户的凭证。


CREATE DATABASE dbname;
GRANT ALL ON dbname.* TO 'username' IDENTIFIED BY 'password';
FLUSH PRIVILEGES;
exit;

安装Nginx

安装Nginx 。


sudo pkg install -y nginx

检查版本。


nginx -v
# nginx version: nginx/1.14.2

启用和启动Nginx 。


sudo sysrc nginx_enable=yes
sudo service nginx start

配置Nginx以便与Vanilla论坛一起使用。


sudo vim /usr/local/etc/nginx/vanilla.conf

使用以下命令填充文件。


server {

 listen 80;
 server_name example.com;
 root /usr/local/www/vanilla;
 index index.php;

 location ~* /.git { deny all; return 403; }
 location /build/ { deny all; return 403; }
 location /cache/ { deny all; return 403; }
 location /cgi-bin/ { deny all; return 403; }
 location /uploads/import/ { deny all; return 403; }
 location /conf/ { deny all; return 403; }
 location /tests/ { deny all; return 403; }
 location /vendor/ { deny all; return 403; }

 location ~* ^/index.php(/|$) {
 fastcgi_split_path_info ^(.+.php)(/.+)$;
 try_files $fastcgi_script_name =404;
 set $path_info $fastcgi_path_info;
 fastcgi_param PATH_INFO $path_info;
 fastcgi_index index.php;
 include fastcgi_params;
 fastcgi_param SCRIPT_NAME /index.php;
 fastcgi_param SCRIPT_FILENAME $realpath_root/index.php;
 fastcgi_param X_REWRITE 1;
 fastcgi_pass 127.0.0.1:9000;
 }

 location ~* .php(/|$) {
 rewrite ^ /index.php$uri last;
 }

 location / {
 try_files $uri $uri/ @vanilla;
 }

 location @vanilla {
 rewrite ^ /index.php$uri last;
 }

}

保存文件并退出: +W+Q。

现在我们需要在主nginx.conf文件中包含vanilla.conf文件。

运行 sudo vim /usr/local/etc/nginx/nginx.conf 会以下行添加到http {}块中。


include vanilla.conf;

测试配置。

 
sudo nginx -t

 

重新加载Nginx 。


sudo service nginx reload

安装Vanilla论坛

创建文档root目录。


sudo mkdir -p /usr/local/www/vanilla

/usr/local/www/vanilla目录的所有权更改为。


sudo chown -R johndoe:johndoe /usr/local/www/vanilla

导航到文档root目录。


cd /usr/local/www/vanilla

下载最新的Vanilla论坛


wget https://open.vanillaforums.com/get/vanilla-core-2.6.4.zip

解压并删除压缩文件。


unzip vanilla-core-2.6.4.zip
rm vanilla-core-2.6.4.zip

/usr/local/www/vanilla目录的所有权更改为。


sudo chown -R www:www /usr/local/www/vanilla

重新启动php fpm 。


sudo service php-fpm restart

导航到你在网页浏览器中上传的文件夹,并按照屏幕上的指示完成设置。

Haojinghui profile image