如何在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与
.htaccess
,mod_rewrite
,mod_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设置
确保您的服务器符合所有要求,然后继续:
选择语言,然后单击下一步:
根据需要选择设置,然后单击下一步:
输入数据库设置,然后单击下一步。确保您已经创建了数据库。
创建用户并完成安装:
完成上述所有步骤后,您将看到以下页面:
您已成功安装Fork CMS。享受您的新CMS
链接
- https://www.fork-cms.com/
- https://github.com/forkcms/forkcms