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
相关推荐
BingoGo2 天前
当你的 PHP 应用的 API 没有限流时会发生什么?
后端·php
JaguarJack2 天前
当你的 PHP 应用的 API 没有限流时会发生什么?
后端·php·服务端
BingoGo2 天前
OpenSwoole 26.2.0 发布:支持 PHP 8.5、io_uring 后端及协程调试改进
后端·php
JaguarJack2 天前
OpenSwoole 26.2.0 发布:支持 PHP 8.5、io_uring 后端及协程调试改进
后端·php·服务端
JaguarJack3 天前
推荐 PHP 属性(Attributes) 简洁读取 API 扩展包
后端·php·服务端
BingoGo3 天前
推荐 PHP 属性(Attributes) 简洁读取 API 扩展包
php
JaguarJack5 天前
告别 Laravel 缓慢的 Blade!Livewire Blaze 来了,为你的 Laravel 性能提速
后端·php·laravel
郑州光合科技余经理5 天前
代码展示:PHP搭建海外版外卖系统源码解析
java·开发语言·前端·后端·系统架构·uni-app·php
feifeigo1235 天前
matlab画图工具
开发语言·matlab
dustcell.5 天前
haproxy七层代理
java·开发语言·前端