ExpressionEngine是一个用PHP编写的成熟,灵活,安全,免费的开源内容管理系统(CMS)。它的源代码托管在Github上。使用ExpressionEngine,您可以构建功能齐全的网站,创建Web应用程序或向移动应用程序提供内容。所有这些都不需要复杂的编程技能。本指南将引导您使用PHP,MariaDB作为数据库以及Nginx作为Web服务器,在全新的CentOS 8上逐步完成ExpressionEngine的安装过程。
要求
ExpressionEngine需要运行PHP和MySQL / MariaDB的Web服务器。推荐的软件堆栈和版本为:
- PHP版本7.0或更大,PHP-FPM并用以下PHP扩展运行(
gd
,fileinfo
,intl
,mbstring
)。 - MySQL 5.6或更高版本或Percona 5.6或更高版本。本 教程将使用MariaDB。
- Nginx或Apache之类的Web服务器。本教程将使用Nginx。
初始步骤
检查您的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扩展:
sudo yum install -y php-cli php-fpm php-common php-mbstring php-gd php-intl php-mysql php-json php-zip
检查PHP版本:
php --version
# PHP 7.2.19 (cli) (built: Jun 2 2019 09:49:05) ( NTS )
# Copyright (c) 1997-2018 The PHP Group
# Zend Engine v3.2.0, Copyright (c) 1998-2018 Zend Technologies
要显示在模块中编译的PHP,可以运行:
php -m
ctype
curl
exif
fileinfo
. . .
. . .
启动并启用PHP-FPM服务:
sudo systemctl start php-fpm.service
sudo systemctl enable php-fpm.service
第2步-安装MariaDB
安装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安装的安全性:
sudo mysql_secure_installation
以root用户身份登录MariaDB:
sudo mysql -u root -p
# Enter password:
创建一个新的MariaDB数据库和数据库用户,并记住凭据:
CREATE DATABASE dbname;
GRANT ALL ON dbname.* TO 'username' IDENTIFIED BY 'password';
FLUSH PRIVILEGES;
quit
注意: 用替换dbname
并username
使用适当的名称进行设置。替换password
为强密码。
第3步-安装Acme.sh客户端并获取“让我们加密”证书(可选)
不必使用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 your_email@example.com
source ~/.bashrc
cd ~
检查acme.sh版本:
acme.sh --version
# v2.8.3
为您的域名/主机名获取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.12.2
启动并启用Nginx:
sudo systemctl start nginx.service
sudo systemctl enable nginx.service
为ExpressionEngine配置Nginx。运行sudo vi /etc/nginx/conf.d/expressionengine.conf
并使用以下配置填充文件。
server {
listen 443 ssl;
listen 80;
server_name example.com;
root /var/www/expressionengine;
# RSA
ssl_certificate /etc/letsencrypt/example.com/fullchain.cer;
ssl_certificate_key /etc/letsencrypt/example.com/example.com.key;
# ECDSA
ssl_certificate /etc/letsencrypt/example.com_ecc/fullchain.cer;
ssl_certificate_key /etc/letsencrypt/example.com_ecc/example.com.key;
index index.php;
location / {
index index.php;
try_files $uri $uri/ @ee;
}
location @ee {
rewrite ^(.*) /index.php?$1 last;
}
location ~* \.php$ {
fastcgi_pass 127.0.0.1:9000;
include fastcgi_params;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
}
}
检查NGINX配置是否存在语法错误:
sudo nginx -t
重新加载NGINX服务:
sudo systemctl reload nginx.service
第5步-安装ExpressionEngine
创建一个文件根目录,ExpressionEngine应该驻留在该目录中:
sudo mkdir -p /var/www/expressionengine
导航到文档根文件夹:
cd /var/www/expressionengine
下载最新版本的ExpressionEngine并将文件解压缩到服务器上的文件夹中:
sudo wget -O ee.zip --referer https://expressionengine.com/ 'https://expressionengine.com/?ACT=243'
sudo unzip ee.zip
sudo rm ee.zip
/var/www/expressionengine
目录的所有权更改为nginx:
sudo chown -R nginx:nginx /var/www/expressionengine
运行sudo vim /etc/php-fpm.d/www.conf
并将用户和组设置为nginx
。最初,它们将设置为apache:
sudo vi /etc/php-fpm.d/www.conf
# user = nginx
# group = nginx
重新启动PHP-FPM服务:
sudo systemctl restart php-fpm.service
将浏览器指向admin.php
您上传的文件的URL 。例如:http://example.com/admin.php
。按照屏幕上的说明安装ExpressionEngine。安装向导完成后,您应该重命名system/ee/installer/
目录或从服务器中删除目录。
步骤6-完成ExpressionEngine设定
通过输入数据库和管理员帐户详细信息来完成ExpressionEngine安装:
之后,您将看到默认的登录页面:
这是ExpressionEngine管理仪表板:
这是前端页面:
而已!ExpressionEngine安装完成。