Centos9傻瓜式linux部署CRMEB 开源商城系统(PHP)

基础设置:

关闭防火墙、关闭SELinux:

css 复制代码
systemctl stop firewalld
systemctl disable firewalld
setenforce 0

安装dnf
先安装 epel-release 依赖:

java 复制代码
yum install epel-release
yum install dnf

使用git拉去CRMEB项目

先安装git

css 复制代码
sudo dnf install git -y 
mkdir /data && cd /data 
git clone https://gitee.com/ZhongBangKeJi/CRMEB.git
cd /data/CRMEB  

修改数据库配置文件,根据实际情况修改,(后面dnf脚本安装mysql,用户为root密码为Aa123456.)路径为:

css 复制代码
#只能使用该路径修改
cd /data/CRMEB
vi crmeb/.env
bash 复制代码
APP_DEBUG = false

[APP]
DEFAULT_TIMEZONE = Asia/Shanghai

[DATABASE]
TYPE = mysql
HOSTNAME = 127.0.0.1 #数据库连接地址
HOSTPORT = 3306 #数据库端口
USERNAME = username #数据库登录账号
PASSWORD = password #数据库登录密码
DATABASE = test #数据库名称
PREFIX = eb_ #数据库表前缀
CHARSET = utf8mb4
DEBUG = true

[LANG]
default_lang = zh-cn

[CACHE]
DRIVER = file #缓存类型,支持file和redis
CACHE_PREFIX = cache_123456789 #缓存前缀
CACHE_TAG_PREFIX = cache_tag_123456789 #缓存标签前缀

[REDIS]
REDIS_HOSTNAME = 127.0.0.1 #redis服务器地址,本地请填写127.0.0.1
PORT = 6379 #redis端口,默认6379
REDIS_PASSWORD = password #redis数据库密码,默认为空
SELECT = 0 #redis数据库,默认0-15中的一个

[QUEUE]
QUEUE_NAME = 123456789 #队列前缀

修改文件权限

修改目录权限(linux系统) 777

bash 复制代码
cd crmeb/
chmod +R 777  【需要加权的文件】
#这些文件全部777权限一个个授权
#没有backup需要手动创建并加权
mkdir backup
chmod 777 -R backup/
chmod 777 -R public/
chmod 777 -R runtime/
chmod 777 -R .env
chmod 777 -R .version
chmod 777 -R .constant

配置项目环境

1.1 dnf安装php环境:

bash 复制代码
sudo dnf install epel-release -y
sudo dnf install https://rpms.remirepo.net/enterprise/remi-release-9.rpm -y
dnf module list php
sudo dnf module enable php:remi-7.4
sudo dnf install php php-cli php-common
php -v
systemctl start php-fpm
systemctl enable php-fpm
dnf install composer -y

1.2 配置php环境:

bash 复制代码
vi /etc/php.ini

upload_max_filesize = 32M 
post_max_size = 48M 
memory_limit = 256M 
max_execution_time = 600 
max_input_vars = 3000 
max_input_time = 1000

1.3 安装项目必要的php组件:

bash 复制代码
sudo dnf install php-mysqli -y
sudo  dnf install php-bcmath -y
sudo dnf install php-gd -y

1.4 启动php-fpm

bash 复制代码
sudo systemctl restart php-fpm
#或
sudo systemctl start php-fpm
#查看状态
sudo systemctl status php-fpm

2.1安装nginx

复制代码
sudo dnf install nginx -y

2.2在nginx中配置项目

bash 复制代码
   vi /etc/nginx/nginx.conf
bash 复制代码
user nginx;
worker_processes auto;
error_log /var/log/nginx/error.log;
pid /run/nginx.pid;
include /usr/share/nginx/modules/*.conf;
events {
    worker_connections 1024;
}
http {
    log_format  main  '$remote_addr - $remote_user [$time_local] "$request" '
                      '$status $body_bytes_sent "$http_referer" '
                      '"$http_user_agent" "$http_x_forwarded_for"';
    access_log  /var/log/nginx/access.log  main;
    sendfile            on;
    tcp_nopush          on;
    tcp_nodelay         on;
    keepalive_timeout   65;
    types_hash_max_size 4096;
    include             /etc/nginx/mime.types;
    default_type        application/octet-stream;
    # Load modular configuration files from the /etc/nginx/conf.d directory.
    # See http://nginx.org/en/docs/ngx_core_module.html#include
    # for more information.
    include /etc/nginx/conf.d/*.conf;
    server {
        listen       80;
        listen       [::]:80;
        server_name  _;
        #项目根目录
        root /data/CRMEB/crmeb/public;
        # Load configuration files for the default server block.
        include /etc/nginx/default.d/*.conf;
        error_page 404 /404.html;
        location = /404.html {
        }
        error_page 500 502 503 504 /50x.html;
        location = /50x.html {
        }
        location ~ \.php$ {
         #    root           html;
             fastcgi_pass   127.0.0.1:9000;

             fastcgi_index  index.php;
             fastcgi_param  SCRIPT_FILENAME  $document_root$fastcgi_script_name;
             include        fastcgi_params;
         }
        location / {
                index index.html index.php;   #增加index.php首页
                if (!-e $request_filename) {   #伪静态处理
                       rewrite  ^(.*)$  /index.php?s=$1  last;
                       break;
         }
        }

    }
}

3.1 使用脚本安装mysql

创建mysql.sh,复制文本到linux系统

使用:source执行脚本即可

用户:root,密码:Aa123456.有个点别忘了

bash 复制代码
vi mysql.sh
bash 复制代码
#!/bin/bash
# 0. 注意: 建议你们在操作前,先存个快照,因为安装mysql的时候,会遇到各种各样问题,如果我之前已经安装过了,
# 建议你恢复快照到只配了 ssh免密登录,安装vim,安装 epel仓库等,我前天提供的资料里面有三个服务器,你直接挂载
# 1. 安装mysql仓库
dnf install -y https://dev.mysql.com/get/mysql80-community-release-el9-1.noarch.rpm
# 2. 查看是否启动了仓库
dnf repolist enabled | grep mysql &> /dev/null
# 3. 安装mysql
[ $? -eq 0 ] && dnf install -y mysql-community-server --nogpgcheck
# 4. 判断是否安装成功了吧
if [ $? -eq 0 ]; then
    # 代表安装成功了
    echo "安装成功!!"
    # 启动mysql
    systemctl start mysqld
    # 设置开机自启
    systemctl enable mysqld
else
    #  代表安装失败了
    echo "安装失败!!"
    exit
fi
# 5. 获取mysql的临时密码
grep password /var/log/mysqld.log | awk '{print $NF}' >> /root/mysql_paswd.txt
# 5.1 将 /root/mysql_paswd.txt 文件中的内容 取出,并赋值给一个变量
TEMP_PASSWORD=`cat /root/mysql_paswd.txt`
# 6. 登录mysql,修改密码,删除临时用户,
# 登录 MySQL 并执行配置
MYSQL_ROOT_PASSWORD="Aa123456."
# --connect-timeout=10 : 连接10s,如果没有连接成功,直接停止
# <<EOF EOF  这是定界符
mysql --connect-timeout=10 -uroot -p"$TEMP_PASSWORD" --connect-expired-password <<EOF
-- 设置新的 root 密码
ALTER USER 'root'@'localhost' IDENTIFIED BY '$MYSQL_ROOT_PASSWORD';
-- 创建一个 root@% 账号
-- %:代表所有的ip都能访问我的数据库
CREATE USER 'root'@'%' IDENTIFIED BY '$MYSQL_ROOT_PASSWORD';
-- 这是赋值权限
GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' WITH GRANT OPTION;
-- 删除匿名用户
DELETE FROM mysql.user WHERE User='';
-- 删除 test 数据库
DROP DATABASE IF EXISTS test;
-- 刷新权限
FLUSH PRIVILEGES;
EOF

# 以上就是 mysql安装成功,并设置了 root 账号密码
# 导入数据
echo "开放3306端口号..."
firewall-cmd --zone=public --add-port=3306/tcp --permanent &> /dev/null
echo "开放3306端口号完成..."
#重新加载防火
firewall-cmd --reload

运行mysql.sh

bash 复制代码
source mysql.sh

配置mysql启动需要的my.conf 文件

css 复制代码
# 修改my.cnf
vim /etc/my.cnf
[mysqld]
datadir=/var/lib/mysql
socket=/var/lib/mysql/mysql.sock

log-error=/var/log/mysqld.log
pid-file=/var/run/mysqld/mysqld.pid

log-bin=/var/lib/mysql/binlog
server-id=10
character_set_server=utf8mb4
gtid-mode=on
log-slave-updates=1
enforce-gtid-consistency
sql_mode=NO_ENGINE_SUBSTITUTION

重新启动mysqld

java 复制代码
systemctl restart mysqld
相关推荐
Scott9999HH8 小时前
【IIoT流量实战】蒸汽管道阀门全关却仍有流量?用 Python 实现涡街信号 FFT 频谱分析与温压全补偿积算网关,深度拆解靠谱的涡街流量计厂家硬核技术标准
开发语言·python
码智社9 小时前
AES加密原理详解及Java实现加解密实战
java·开发语言
AI云海9 小时前
python 列表、元组、集合和字典
开发语言·python
萧瑟余晖10 小时前
JDK 26 新特性详解
java·开发语言
马优晨11 小时前
Freemarker 完整讲解(后端 Java 模板引擎)
java·开发语言·freemarker·freemarker 完整讲解·freemarker模板引擎
人邮异步社区12 小时前
怎么把C语言学到精通?
c语言·开发语言
心平气和量大福大13 小时前
C#-WPF-控件-TextBox 数据绑定
开发语言·c#·wpf
ttwuai13 小时前
Cursor 生成 CRUD 后,Go 后台接口别只测 200:JWT、RBAC 和 tenant_id 怎么验
开发语言·后端·golang
এ慕ོ冬℘゜13 小时前
前端基础:什么是时间戳?JS获取时间戳三种方法与实战用途
开发语言·前端·javascript
执明wa14 小时前
LayoutInflater详解: XML是如何变成View的?
android·xml·开发语言·android studio