在FreeBSD 12上安装Bolt CMS
Chinaxiong
・11 分钟阅读
使用不同的系统?
Bolt是一个用PHP编写的开源CMS ,Bolt的源代码托管在 gitHub ,本指南将向你展示如何在FreeBsd 12实例上安装Bolt CMS。
要求
- PHP版本5.5.9或更高版本,
- 以下常见的PHP扩展: (可选但是,推荐)
posix
xml
fileinfo
exif
和zip
, - 至少有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
如果系统不存在sudo
,vim
,unzip
,wget
,bash
,socat
和git
软件包,则安装它们。
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-production
到php.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 。