在FreeBSD 12上安装Bolt CMS

・11 分钟阅读

使用不同的系统?

Bolt是一个用PHP编写的开源CMS ,Bolt的源代码托管在 gitHub ,本指南将向你展示如何在FreeBsd 12实例上安装Bolt CMS。

要求

  • PHP版本5.5.9或更高版本,
  • 以下常见的PHP扩展: (可选但是,推荐)posixxmlfileinfoexifzip
  • 至少有32MB内存分配给PHP ,
  • SQLite,mysql/MariaDB或PostgreSQL数据库,本教程将使用MariaDB ,
  • 启用了mod_rewrite的Nginx或Apache ,本教程将使用Nginx ,

开始之前

查看FreeBSD版本。


uname -ro
# FreeBSD 12.0-RELEASE

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


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

如果系统不存在sudovimunzipwgetbashsocatgit软件包,则安装它们。


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

创建一个新的用户帐户,使用你首选的用户名(我们将使用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-ctype php72-curl php72-dom php72-hash php72-iconv php72-gd php72-json php72-mbstring php72-openssl php72-session php72-simplexml php72-xml php72-zip php72-zlib php72-pdo php72-pdo_mysql php72-mysqli php72-pgsql php72-sqlite3 php72-filter php72-ftp php72-tokenizer php72-calendar php72-pecl-APCu php72-opcache php72-phar php72-fileinfo php72-sqlite3 php72-pdo_sqlite php72-intl php72-posix php72-exif

检查版本。


php --version

# PHP 7.2.13 (cli) (built: Dec 23 2018 01:12:48) ( NTS )
# Copyright (c) 1997-2018 The PHP Group
# Zend Engine v3.2.0, Copyright (c) 1998-2018 Zend Technologies
# with Zend OPcache v7.2.13, Copyright (c) 1999-2018, by Zend Technologies

软链接php.ini-productionphp.ini


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

启用并启动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脚本以提高MariaDB安装的安全性。


sudo mysql_secure_installation

回答每个问题。


Enter current password for root (enter for none): <enter>
Set root password? [Y/n] y
New password: ********************************
Re-enter new password: ********************************
Remove anonymous users? [Y/n] y
Disallow root login remotely? [Y/n] y
Remove test database and access to it? [Y/n] y
Reload privilege tables now? [Y/n] y
. . .
All done!

以root用户身份登录到MariaDB 。


sudo mysql -u root -p
# Enter password:

创建新的MariaDB数据库和用户,并记住凭据。


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

退出MariaDB 。

 
exit

 

安装和配置Nginx

安装Nginx 。


sudo pkg install -y nginx

检查版本。


nginx -v
# nginx version: nginx/1.14.1

启用和启动Nginx 。


sudo sysrc nginx_enable=yes
sudo service nginx start

运行 sudo vim /usr/local/etc/nginx/bolt.conf 为Bolt配置Nginx 。


server {

 listen [::]:80;
 listen 80;

 server_name example.com; # Check this
 index index.php index.html; 

 root /usr/local/www/bolt/public; # Check this

 # Block access to"hidden" files
 location ~ /. {
 deny all;
 }

 # Block access to Apache .htaccess & .htpasswd files
 location ~ /.(htaccess|htpasswd)$ {
 deny all;
 }

 # Block access to Sqlite database files
 location ~ /.(?:db)$ {
 deny all;
 }

 # Block access to Markdown, Twig & YAML files directly
 location ~* /(.*).(?:markdown|md|twig|yaml|yml)$ {
 deny all;
 }

 location / {
 try_files $uri $uri/ /index.php?$query_string;
 }

 location ~ [^/].php(/|$) {
 try_files /index.php =404;
 fastcgi_split_path_info ^(.+?.php)(/.*)$;
 fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
 fastcgi_param HTTP_PROXY"";
 fastcgi_param HTTPS $https if_not_empty;
 fastcgi_pass 127.0.0.1:9000; # Check this
 include fastcgi_params;
 }

}

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

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

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

 
include bolt.conf;

 

测试Nginx配置。

 
sudo nginx -t

 

重新加载Nginx 。


sudo service nginx reload

下载并安装BoltCMS

创建文档root目录。


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

/usr/local/www/bolt目录的所有权更改为johndoe


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

导航到文档root目录。


cd /usr/local/www/bolt

从命令行下载最新稳定版的Bolt CMS


wget https://bolt.cm/distribution/bolt-latest.zip

解压BoltCMS,删除下载的zip文件和移动BoltCMS文件和目录到/usr/local/www/bolt目录。


unzip bolt-latest.zip
rm bolt-latest.zip
mv bolt-v3.6.3/* bolt-v3.6.3/.* . # Just press enter on warning
rmdir bolt-v3.6.3/

要完成安装,你需要重命名以下文件:


mv .bolt.yml.dist .bolt.yml
mv composer.json.dist composer.json
mv composer.lock.dist composer.lock
mv src/Site/CustomisationExtension.php.dist src/Site/CustomisationExtension.php 

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


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

在Web浏览器中打开你的域名/IP,然后按照Bolt CMS安装向导进行操作。 Bolt使用SQLite (默认情况)作为它数据库,如果要使用其他受支持的数据库,则可以在app/config/config.yml文件中对它进行配置,要访问Bolt的管理界面,请将/bolt附加到你的IP/域名。 如果你想了解更多信息,请参阅Bolt文档https://docs.bolt.cm

Chinaxiong profile image