如何在CentOS 8上使用NGINX安装Fork CMS

如何在CentOS 8上使用NGINX安装Fork CMS

Fork是易于使用的,使用Symfony组件构建的开源CMS。它具有直观且用户友好的界面,可下载以扩展站点的强大应用程序以及各种精美的主题。在本教程中,我们将使用Nginx作为Web服务器,使用MariaDB作为数据库引擎,在CentOS 8系统上完成Fork CMS的安装和设置,并且可以选择使用Acme.sh客户端和Let's Encrypt保护传输层。证书颁发机构以添加SSL支持。

要求

安装和运行Fork CMS的要求是:

  • PHP 7.1或更高版本。
  • 应安装并启用以下PHP扩展:cURL,libxml,DOM,SimpleXML,SPL,PDO(带有MySQL驱动程序),mb_string,iconv,GD2图形库,JSON,PCRE,国际。
  • MySQL 5.0或更高版本。
  • NGINX或Apache与 .htaccessmod_rewritemod_expires (可选,但建议), mod_deflate(可选)启用。

先决条件

  • 运行CentOS的操作系统8。
  • 具有sudo特权的非root用户。

初步步骤

检查您的CentOS版本:

cat /etc/centos-release
# CentOS Linux release 8.0.1905 (Core)

设置时区:

timedatectl list-timezones
sudo timedatectl set-timezone 'Region/City'

更新您的操作系统软件包(软件)。这是重要的第一步,因为它可以确保您具有操作系统默认软件包的最新更新和安全修复程序:

sudo yum update -y

安装一些基本软件包,这些软件包是CentOS操作系统的基本管理所必需的:

sudo yum install -y curl wget vim git unzip socat bash-completion epel-release

第1步-安装PHP和PHP扩展

安装PHP以及Fork CMS必需的PHP扩展:

sudo yum install -y php php-cli php-fpm php-common php-mysqlnd php-curl php-json php-zip php-gd php-xml php-mbstring php-opcache php-intl

要显示在模块中编译的PHP,可以运行:

php -m

ctype
curl
exif
fileinfo
. . .
. . .

检查PHP版本:

php --version
# PHP 7.2.11 (cli) (built: Oct 9 2018 15:09:36) ( NTS )

启动并启用PHP-FPM服务:

sudo systemctl start php-fpm.service
sudo systemctl enable php-fpm.service

我们可以继续下一步,即数据库安装和设置。

第2步-安装MariaDB并为Fork CMS创建数据库

安装MariaDB数据库服务器:

sudo yum install -y mariadb-server

检查MariaDB版本:

mysql --version
# mysql Ver 15.1 Distrib 10.3.11-MariaDB, for Linux (x86_64) using readline 5.1

启动并启用MariaDB服务:

sudo systemctl start mariadb.service
sudo systemctl enable mariadb.service

mysql_secure installation 脚本以提高MariaDB安全性并为MariaDB root用户设置密码:

sudo mysql_secure_installation

回答每个问题:

Would you like to setup VALIDATE PASSWORD plugin? N
New password: your_secure_password
Re-enter new password: your_secure_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

以root用户身份连接到MariaDB shell:

sudo mysql -u root -p
# Enter password

为Fork CMS创建一个空的MariaDB数据库和用户,并记住凭据:

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

用您选择的安全密码替换单词mypassword。从MariaDB退出:

mysql> exit

更换 dbname, username password 用你自己的名字。

步骤3-安装Acme.sh客户端并获取Let's Encrypt证书(可选)

不必使用HTTPS保护您的网站,但这是保护您网站访问量的一种好习惯。要从Let's Encrypt获得SSL证书,我们将使用Acme.sh客户端。 Acme.sh是一个纯Unix Shell软件,用于从Let's Encrypt获得TLS证书(零依赖性)。

下载并安装acme.sh:

sudo su - root
git clone https://github.com/Neilpang/acme.sh.git
cd acme.sh
./acme.sh --install --accountemail (email protected)
source ~/.bashrc
cd ~

检查acme.sh版本:

acme.sh --version
# v2.8.2

为您的域名/主机名获取RSA和ECC / ECDSA证书:

# RSA 2048
acme.sh --issue --standalone -d example.com --keylength 2048
# ECDSA
acme.sh --issue --standalone -d example.com --keylength ec-256

如果您想使用假证书进行测试,可以添加 --staging flag to the above commands.

运行上述命令后,您的证书和密钥将位于:

  • 对于RSA: /home/username/example.com directory.
  • 对于ECC / ECDSA: /home/username/example.com_ecc directory.

要列出您颁发的证书,可以运行:

acme.sh --list

创建一个目录来存储您的证书。我们将使用目录 /etc/letsencrypt.

mkdir -p /etc/letsecnrypt/example.com
sudo mkdir -p /etc/letsencrypt/example.com_ecc

将证书安装/复制到/ etc / letsencrypt目录。

# RSA
acme.sh --install-cert -d example.com --cert-file /etc/letsencrypt/example.com/cert.pem --key-file /etc/letsencrypt/example.com/private.key --fullchain-file /etc/letsencrypt/example.com/fullchain.pem --reloadcmd "sudo systemctl reload nginx.service"
# ECC/ECDSA
acme.sh --install-cert -d example.com --ecc --cert-file /etc/letsencrypt/example.com_ecc/cert.pem --key-file /etc/letsencrypt/example.com_ecc/private.key --fullchain-file /etc/letsencrypt/example.com_ecc/fullchain.pem --reloadcmd "sudo systemctl reload nginx.service"

所有证书将每60天自动更新一次。

获得证书后,从root用户退出并返回普通的sudo用户:

exit

第4步-安装和配置NGINX

安装NGINX Web服务器:

sudo yum install -y nginx

检查NGINX版本:

nginx -v
# nginx version: nginx/1.14.1

配置NGINX for Fork CMS。跑 sudo vim /etc/nginx/conf.d/fork.conf 并添加以下配置:

server {
    listen 80;
    listen 443 ssl;
root /var/www/fork; index index.php index.html; server_name example.com;

ssl_certificate /etc/letsencrypt/example.com/fullchain.pem;
ssl_certificate_key /etc/letsencrypt/example.com/private.key;
ssl_certificate /etc/letsencrypt/example.com_ecc/fullchain.pem;
ssl_certificate_key /etc/letsencrypt/example.com_ecc/private.key; location / { # Checks whether the requested url exists as a file $uri or directory $uri/ in the root, else redirect to /index.php. try_files $uri $uri/ @redirects; } location @redirects { rewrite ^ /index.php; } location ~ .php${ try_files $uri =404; include fastcgi_params; fastcgi_pass 127.0.0.1:9000; fastcgi_index index.php; fastcgi_read_timeout 60; fastcgi_split_path_info ^(.+.php)(/.+)$; fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; } # Don't pollute the logs with common requests location = /robots.txt { access_log off; log_not_found off; } location = /favicon.ico { access_log off; log_not_found off; } # As Fork CMS has the app_root as doc_root, we need to restrict access to a few things for security purposes! location ~* ^/(composer..*|vendor/.*|Procfile$|.git/.*|src/Console.*|.*.gitignore|.editorconfig|.travis.yml|autoload.php|bower.json|phpunit.xml.dist|.*.md|app/logs/.*|app/config/.*|src/Frontend/Cache/CompiledTemplates.*|src/Frontend/Cache/Locale/.*.php|src/Frontend/Cache/Navigation/.*.php|src/Frontend/Cache/Search/.*|src/Backend/Cache/CompiledTemplates/.*|src/Backend/Cache/Locale/.*.php)${ deny all; access_log off; log_not_found off; } # Deny access to dot-files. location ~ /. { deny all; access_log off; log_not_found off; } }

检查NGINX配置是否存在语法错误:

sudo nginx -t

重新加载NGINX服务:

sudo systemctl reload nginx.service

第5步-安装Composer

全局安装Composer(PHP依赖管理器):

php -r "copy('https://getcomposer.org/installer', 'composer-setup.php');"

php -r "if (hash_file('sha384', 'composer-setup.php') === 'a5c698ffe4b8e849a443b120cd5ba38043260d5c4023dbf93e1558871f1f07f58274fc6f4c93bcfd858c6bd0775cd8d1') { echo 'Installer verified'; } else { echo 'Installer corrupt'; unlink('composer-setup.php'); } echo PHP_EOL;"

php composer-setup.php

php -r "unlink('composer-setup.php');"

sudo mv composer.phar /usr/local/bin/composer

检查Composer版本:

composer --version
# Composer version 1.9.0 2019-08-02 17:46:47

步骤6-安装Fork CMS

创建一个文档根目录。

sudo mkdir -p /var/www/fork

更改所有权 /var/www/fork 当前登录用户的目录,在我的情况下,此用户名是 johndoe

sudo chown -R johndoe:johndoe /var/www/fork

在上面的命令中用您的登录用户名替换johndoe从命令行下载Fork CMS的最新稳定版本。

cd /var/www/fork
composer create-project forkcms/forkcms .

更改所有权 /var/www/fork 目录到 www-data

sudo chown -R nginx:nginx /var/www/fork

编辑 app/config/parameters.yml.dist 文件并设置数据库信息。

sudo vim /var/www/fork/app/config/parameters_install.yml

sudo vim /etc/php-fpm.d/www.conf 并将用户和组设置为nginx:

sudo vim /etc/php-fpm.d/www.conf

创造 /var/lib/php/session 目录并将其所有权更改为用户 nginx:

sudo mkdir -p /var/lib/php/session
sudo chown -R nginx:nginx /var/lib/php/session

重新开始 php-fpm.service:

sudo systemctl restart php-fpm.service

使用您喜欢的网络浏览器,打开您的站点并按照Fork CMS安装程序进行操作。按照安装程序进行操作后,您应该已启动并运行Fork。要访问Fork管理区域,只需追加 /private 您的网站网址。

第7步-完成Fork CMS设置

确保您的服务器符合所有要求,然后继续:

前叉CMS安装程序

选择语言,然后单击下一步:

语言设定

根据需要选择设置,然后单击下一步:

设定值

输入数据库设置,然后单击下一步。确保您已经创建了数据库。

数据库设置

创建用户并完成安装:

创建用户

完成上述所有步骤后,您将看到以下页面:

安装完成

您已成功安装Fork CMS。享受您的新CMS

链接

  • https://www.fork-cms.com/
  • https://github.com/forkcms/forkcms

资讯来源:由0x资讯编译自HOWTOFORGE,版权归作者所有,未经许可,不得转载
你可能还喜欢