服務器環境推薦要求
* Nignx(必須)
* PHP 7.1 ~ 7.4(必須此版本內,版本過大會警告不兼容)
* MySQL 5.7 ~ 8.0(必須)
* Redis(非必須)
后臺頁面展示:
客戶端展示
沒有redis默認會使用fiel緩存(建議使用redis更快)
基礎設置:
關閉防火墻、關閉SELinux:
systemctl stop firewalld
systemctl disable firewalld
setenforce 0
安裝dnf
先安裝 epel-release 依賴:
yum install epel-release
yum install dnf
使用git拉去CRMEB項目
先安裝git
sudo dnf install git -y
mkdir /data && cd /data
git clone https://gitee.com/ZhongBangKeJi/CRMEB.git
cd /data/CRMEB
修改數據庫配置文件,根據實際情況修改,(后面dnf腳本安裝mysql,用戶為root密碼為Aa123456.)路徑為:
#只能使用該路徑修改
cd /data/CRMEB
vi crmeb/.env
復制粘貼:
APP_DEBUG = false[APP]
DEFAULT_TIMEZONE = Asia/Shanghai[DATABASE]
TYPE = mysql
HOSTNAME = 127.0.0.1 #數據庫連接地址
HOSTPORT = 3306 #數據庫端口
USERNAME = root#數據庫登錄賬號
PASSWORD = Aa123456. #數據庫登錄密碼
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
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環境:
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環境,直接覆蓋掉原來的內容:
vi /etc/php.iniupload_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組件:
sudo dnf install php-mysqli -y
sudo? dnf install php-bcmath -y
sudo dnf install php-gd -y
1.4? 啟動php-fpm
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中配置項目
? ?vi /etc/nginx/nginx.conf
覆蓋原來的內容為:
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.有個點別忘了
vi mysql.sh
腳本中復制粘貼
#!/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 "安裝成功!!"# 啟動mysqlsystemctl 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
source mysql.sh
配置mysql啟動需要的my.conf 文件
覆蓋掉dnf安裝的默認my.conf,如果是二進制安裝、源碼安裝路徑不在這
# 修改my.cnf
vim /etc/my.cnf
[mysqld]
datadir=/var/lib/mysql
socket=/var/lib/mysql/mysql.socklog-error=/var/log/mysqld.log
pid-file=/var/run/mysqld/mysqld.pidlog-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
systemctl restart mysqld
4.1 安裝redis(可選)
dnf install redis -y
安裝php控制redis的擴展組件
dnf install -y php-pecl-redis5
#查看php組件
php -m
4.2 配置redis
vi /etc/redis/redis.conf