Linux(CentOS7.9)环境Composer安装Magento2(2.4.5)项目
Linux(CentOS7.9)环境Composer安装Magento2(2.4.5)项目
一、Linux下安装lnmp环境
1.更换镜像
我使用的是阿里云ECS服务器,这边先停止服务器,更换服务器镜像为CentOS7.9.
然后访问lnmp.org(https://lnmp.org/install.html)可以直接使用安装适合自己的lnmp环境:这里我使用的是mysql5.7,php8.1
wget http://soft.vpser.net/lnmp/lnmp2.0.tar.gz -O lnmp2.0.tar.gz && tar zxf lnmp2.0.tar.gz && cd lnmp2.0 && ./install.sh lnmp
2.安装PHP扩展
安装完成后,cd到该版本目录:
cd /root/lnmp2.0
安装 sodium 扩展:
./addons.sh install sodium
安装 opcache 扩展:
./addons.sh install opcache
/usr/local/php/etc 目录下找到 php.ini ,修改以下几项:
;pcre.jit=1 => pcre.jit=0
memory_limit = 128M => memory_limit = 2G
;realpath_cache_size = 4096k => realpath_cache_size = 10M
;realpath_cache_ttl = 120 => realpath_cache_ttl = 7200
找到 disable_functions,删除以下2个函数:proc_open,proc_get_status。
3.开启和设置防火墙
开启防火墙:
systemctl start firewalld.service
开机自启:
systemctl enable firewalld.service
※开启80端口访问权限,不然网站将无法被正常访问:
firewall-cmd --zone=public --add-port=80/tcp --permanent
开启数据库3306端口:
firewall-cmd --zone=public --add-port=3306/tcp --permanent
重启防火墙:
systemctl restart firewalld.service
查看是否开启:
firewall-cmd --zone=public --query-port=3306/tcp
4.Mysql开启外部访问
mysql开启外部访问:
mysql - uroot -p
use mysql
GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY 'your password' WITH GRANT OPTION;
FLUSH PRIVILEGES;
mysql8.0及以上版本需要使用以下语句:
create user root@'%' identified by 'your password';
grant all privileges on *.* to root@'%' with grant option;
FLUSH PRIVILEGES;
二、安装Elasticsearch
参考文档:https://blog.csdn.net/qq_29917503/article/details/126487191
1.从官网下载ES最新版本包放在/home
2.解压后文件夹更名成elasticsearch
3.ES为了安全不允许使用root用户启动,添加es用户并授权文件夹权限
useradd es #新增es用户
passwd es
4.修改elasticsearch配置
#配置jdk环境变量,使用es自带的jdk版本
vim /etc/profile
export JAVA_HOME=/home/elasticsearch/jdk
export CLASSPATH=$:CLASSPATH:$JAVA_HOME/lib/
export PATH=$PATH:$JAVA_HOME/bin
source /etc/profile #刷新环境配置并生效
vim elasticsearch/config/elasticsearch.yml
cluster.name: elasticsearch
node.name: node-1
path.data: /home/data/es
path.logs: /home/eslogs
network.host: 0.0.0.0 #开启外部访问
http.port: 9200
#关闭安全认证,实现免密登录访问
xpack.security.enabled: false
xpack.security.http.ssl:
enabled: false
#修改jvm内存配置,服务器配置够好可以忽略
vim elasticsearch/config/jvm.options
-Xms512m
-Xmx512m
vim /etc/sysctl.conf
vm.max_map_count=655360 #最后面加一句,centos7 系统
sysctl -p #获取配置并生效
5.创建和修改文件的权限
mkdir -p /home/data/es && chown -R es:es /home/data/es/ && mkdir -p /home/eslogs && chown -R es:es /home/eslogs/
chown -R es:es /home/elasticsearch/ && chmod -R 777 /home/elasticsearch/
6.启动并访问
./elasticsearch/bin/elasticsearch
./elasticsearch/bin/elasticsearch -d #后台启动
curl 127.0.0.1:9200 #本地访问
或者浏览器输入http://服务器公网IP:9200,但这一步需要服务器的防火墙对外开启9200端口的访问
firewall-cmd --zone=public --add-port=9200/tcp --permanent
重启防火墙:
systemctl restart firewalld.service
三、安装Composer
参考文档:
linux安装composer:https://blog.csdn.net/yang913yang/article/details/123014607
windows安装composer:https://blog.csdn.net/baidu_32523857/article/details/126647488
四、使用Composer下载Magento项目
因为我这边用的阿里云服务器是杭州的,所以从外网下载可能会非常慢,但我本地的网络是香港的,所以我就用本地的windows环境去下载了magento项目
1.先把Composer更新到最新版本
composer self-update
2.把本地PHP更新到8.1版本并开启相应扩展
①下载安装PHP8.1
本地使用的php环境是小皮系统,但小皮系统的最新版本php才8.0所以需要自己下载php8.1.下载完之后重命名和之前小皮的php放在一起,php8.1就会自动出现在小皮的配置里
②配置windows环境变量(略)
③开启PHP扩展
然后把默认项目的php版本切换到8.1,开启php的扩展
3.Composer使用命令下载Magento项目
下载Magento2 2.4.5版本,项目名称为当前目录magento2
composer create-project --repository-url=https://repo.magento.com/ magento/project-community-edition=2.4.5 magento2
下载Magento2 最新版本,项目名称为当前目录magento2
composer create-project --repository-url=https://repo.magento.com/ magento/project-community-edition magento2
4.更换Composer镜像源
下载的过程并不顺利,有一大堆的Problem,这时候可能需要更换composer镜像源
先查看自带镜像源:
composer config -l -g
更换成阿里云镜像,修改该目录下config.json文件:
composer config -g repo.packagist composer https://packagist.phpcomposer.com #修改全局镜像
composer config repo.packagist composer https://packagist.phpcomposer.com #进入项目根目录更换当前镜像
阿里云镜像源:
https://mirrors.aliyun.com/composer/
5.修改Composer用户的账号密码
修改上一步目录下auth.json中的username和password为你在magento官方申请的public key和private key
6.最后删除原先生成的magento2文件夹重新下载项目
composer create-project --repository-url=https://repo.magento.com/ magento/project-community-edition=2.4.5 magento2
五、上传Magento安装包
将下载完的magento项目通过FTP上传到原先的linux服务器
这边建议先打包上传,不然ftp根据文件上传会比较慢
六、安装Magento 2.4.5
1.修改php.ini 文件:
max_execution_time = 300 => max_execution_time = 1800
zlib.output_compression = Off => zlib.output_compression = On
2.安装项目
安装指令:
/home/wwwroot/magento/bin/magento setup:install \
--base-url=http://www.***.cn/ \ #已经完成映射的域名
--db-host=localhost \ #数据库地址
--db-name=magento \ #数据库名称
--db-user=root \ #数据库账号
--db-password=****** \ #数据库密码
--admin-firstname=Uncle \ #后台管理员的名称
--admin-lastname=Bill \ #同上
--admin-email=*********@**.com \ #管理员邮箱
--admin-user=admin \ #后台登录账号
--admin-password=xixixi0920 \ #后台登录密码
--language=en_US \ #网站语言
--currency=USD \ #网站货币符号
--timezone=America/Chicago \ #网站时区
--use-rewrites=1 \
--search-engine=elasticsearch7 \
--elasticsearch-host=localhost \
--elasticsearch-port=9200 \
--elasticsearch-index-prefix=magento2 \
--elasticsearch-timeout=15
3.配置Nginx
安装之后发现并不能直接访问,那是因为你的nginx需要重新配置
vim /usr/local/nginx/conf/nginx.conf
相关server配置:
server
{
listen 80 ;
server_name _;
proxy_connect_timeout 600;
proxy_read_timeout 600;
proxy_send_timeout 599;
proxy_buffer_size 64k;
proxy_buffers 4 32k;
proxy_busy_buffers_size 64k;
proxy_temp_file_write_size 64k;
index index.html index.htm index.php;
set $MAGE_ROOT /home/wwwroot/magento; #设置magento项目根目录
include /home/wwwroot/magento/nginx.conf.sample; #引入magento项目的nginx.conf
access_log /home/wwwlogs/access.log;
}
新增server同级代理配置
upstream fastcgi_backend
{
# use tcp connection server 127.0.0.1:9000; or socket
server unix:/tmp/php-cgi.sock;
#server unix:/var/run/php/php7.0-fpm.sock;
}
配置完成后,lnmp重启:
lnmp restart
七、运行Magento项目
此时的项目还不能直接使用,登录前台后会发现许多图片有问题,这时候需要做一些配置和编译:
sudo -u www php bin/magento module:disable Magento_Csp
sudo -u www php bin/magento module:disable Magento_TwoFactorAuth
编译指令:
sudo -u www php bin/magento maintenance:enable && rm -rf var/generation/* && rm -rf var/cache/* && rm -rf var/page_cache/* && rm -rf var/view_preprocessed/* && rm -rf pub/static/* && rm -rf generated/* && rm -rf var/maps/ && rm -rf var/view/ && rm -rf var/tmp/ && sudo -u www php bin/magento setup:upgrade && sudo -u www php bin/magento setup:di:compile && sudo -u www php bin/magento cache:flush && sudo -u www php bin/magento setup:static-content:deploy -f && sudo -u www php bin/magento cache:clean && sudo -u www php bin/magento cache:flush && sudo -u www php bin/magento maintenance:disable
至此,我们的magento项目就算搭建完成了,下面是访问的前台和后台页面
后台路由可以通过访问项目配置文件获取:
cat app/etc/env.php
参考文档:
https://xiaoqiang.blog/magento-anzhuang/#google_vignette