华为云搭建部署Magento电商网站
3.1 申请弹性云主机
3.1.1购买云主机,选择对应的规格和镜像等
3.1.2 创建成功
3.2 实验环境配置
3.2.1 放行云主机绑定的安全组的规则,放行22、3306、80端口
3.3 安装配置LAMP平台
3.3.1 用xshell登录云主机
3.3.2 更新软件包
yum -y update
3.3.3 清理缓存,重新生成缓存
yum clean all && yum makecache
3.3.4 安装httpd服务
yum -y install httpd
3.3.5 配置mariadb的yum仓库
cat > /etc/yum.repos.d/mariadb.repo <<EOF
[mariadb]
name=mariadb
baseurl=https://mirrors.aliyun.com/mariadb/yum/10.4/centos/7/x86_64/
gpgcheck=0
enable=1
EOF
3.3.6 生成缓存并安装mariadb
yum makecache
yum -y install mariadb mariadb-server
3.3.7 启动httpd和mariadb服务,并设置开机自启
# --now表示现在启动该服务
systemctl enable httpd --now
systemctl enable mariadb --now
3.3.8 修改/etc/httpd/conf/httpd.conf
文件,
# 查找指定AllowOverride所在范围,并将对应范围赋给nums
nums=$(grep -En '<Directory "/var/www/html">|</Directory>' \
/etc/httpd/conf/httpd.conf | grep -E -A 1 '<Directory "/var/www/html">'\
| cut -d: -f1 | xargs | sed 's/ /,/g')
# 通过nums,即指定的行范围,修改AllowOverride None为AllowOverride all
sed -ri "${nums}s/( *[^#] AllowOverride) .*/\1 all/g" /etc/httpd/conf/httpd.conf
# 查看是否修改成功
sed -rn "${nums}{/ *[^#] AllowOverride/p}" /etc/httpd/conf/httpd.conf
# 或者用grep
grep -Ev "^#|^$| *#" /etc/httpd/conf/httpd.conf | grep -C3 "AllowOver"
3.3.9 在行末添加对应配置,加载相应模块,查看是否添加成功
echo "LoadModule rewrite_module modules/mod_rewrite.so" \
>> /etc/httpd/conf/httpd.conf
tail -n 1 /etc/httpd/conf/httpd.conf
3.3.10 加固mariadb
mysql_secure_installation
注:mariadb没有初始密码,而MySQL安装完后有初始密码,初始密码通过
grep 'temporary password' /var/log/mysqld.log
得到
3.3.11 安装相应的rpm包,获取yum源配置文件
# epel库云主机自带
yum -y install epel-release
# 安装php相应的yum仓库
rpm -Uvh https://mirror.webtatic.com/yum/el7/webtatic-release.rpm
3.3.12 安装php7和扩展包
yum -y install php70w php70w-pdo php70w-mysqlnd php70w-opcache \
php70w-xml php70w-gd php70w-mcrypt php70w-devel php70w-intl \
php70w-mbstring php70w-bcmath php70w-json php70w-iconv
3.3.13 安装完后,查看php的版本
php -v
3.3.14 修改 PHP 配置文件
# 修改memory_limit
sed -ri "s/(memory_limit =).*/\1 256M/g" /etc/php.ini
# 修改date.timezone,取消注释,并修改时区为上海
sed -ri "s/^; *(date\.timezone =)/\1 Asia\/Shanghai/g" /etc/php.ini
3.3.15 查看是否修改成功
grep -E "memory_limit|date\.timezone" /etc/php.ini
3.3.16 重启httpd服务
systemctl restart httpd
3.4 创建数据库
3.4.1 登录数据库,并创建一个数据库,为数据库创建用户并为用户分配数据库的完全访问权限,然后退出数据库
# ASD123asd为密码,magento_42zjd为数据库,mgtuser_42zjd为用户,请自行替换
mysql -uroot -pASD123asd
create database magento_42zjd;
grant all on magento_42zjd.* to mgtuser_42zjd@localhost identified by "ASD123asd";
exit
3.4.2 验证数据库和用户是否已成功创建,并退出 数据库命令行
# ASD123asd为密码,magento_42zjd为数据库,mgtuser_42zjd为用户,请自行替换
mysql -umgtuser_42zjd -pASD123asd
show databases;
exit;
3.5 安装配置 Composer
Composer是 PHP 用来管理依赖(dependency)关系的工具。你可以在自己的项目中声明所依赖的外部工具库(libraries),Composer 会帮你安装这些依赖的库文件。
[github下载地址](Releases · composer/composer)
3.5.1 下载composer
下载composer,根据下载速度,选择下面两种的其中一种下载即可
- 用github代理站下载composer
wget https://gh-proxy.com/github.com/composer/composer/releases/download/1.8.4/composer.phar
- 通过官网下载composer
wget https://getcomposer.org/download/1.8.4/composer.phar
3.5.2 赋予其执行权限,并将其移到到/usr/bin/目录下,并重命名为composer
chmod +x composer.phar
mv composer.phar /usr/bin/composer
3.5.3 验证composer是否安装成功
composer -v
3.5.4 安装git
yum -y install git
3.5.5 通过cd /var/www/html
切换到对应目录下,克隆整个magento2仓库
cd /var/www/html
#若改代理站速度较慢,请自行查找代理站
git clone https://gh-proxy.com/github.com/magento/magento2.git
#备用 git clone https://ghp.ci/github.com/magento/magento2.git
3.5.6 通过 cd进 入 magento2文件夹下,然后通过 git checkout -b强制把 magento的版本切换到 2.1.0的稳定版,并将安装文件移到 Web 服务器的根目录下
cd magento2 && git checkout tags/2.1.0 -b 2.1.0
# shopt -s [optname ...] 启用该选项
# 1 shopt命令是 set命令的一种替代,很多方面都和 set命令一样,但它增加了很多选项。可以使用“- p”选项来查看 shopt选项的设置,“-u”开关表示一个复位的选项,“-s”表示选项当前被设置。
# 2 dotglob:Bash在文件名扩展的结果中包括以点(.)开头的文件名
# 3 nullglob:如果设置,bash允许没有匹配任何文件的文件名模式扩展成一个空串,而不是他们本身
shopt -s dotglob nullglob && mv /var/www/html/magento2/* /var/www/html/ && cd ..
其它方法安装magento(3.5.6 3.5.7 3.5.8做了的请忽略,该方法可以更快的下载magento)
# 通过github下载magento源码包
# wget https://github.com/magento/magento2/archive/refs/tags/2.1.0.tar.gz
# 通过github代理站下载magento源码包,若代理站失效,请自行查找代理站,或通过其它手段下载
wget https://gh-proxy.com/github.com/magento/magento2/archive/refs/tags/2.1.0.tar.gz
shopt -s dotglob nullglob && mv /var/www/html/magento2-2.1.0/* /var/www/html/
注:shopt -s dotglob nullglob一定要做,不然移动目录时会缺失一些文件,导致最后的管理界面访问失败,其会提示:
Not Found The requested URL /admin_1b40w7/ was not found on this server
3.5.7 设置 Magento 文件的权限
chown -R :apache /var/www/html;
find /var/www/html -type f -print0 | xargs -r0 chmod 640;
find /var/www/html -type d -print0 | xargs -r0 chmod 750;
chmod -R g+w /var/www/html/{pub,var};
chmod -R g+w /var/www/html/{app/etc,vendor};
chmod 750 /var/www/html/bin/magento;
chown -R :apache /var/www/html
//通 过 chown –R修改指定目录和子目录下所有文件权限,该命令用于修改 apache根目录权限
find /var/www/html -type f -print0 | xargs -r0 chmod 640
//查 找 html 目录下所有文件,并把权限修改为 640(rw-r—–)用户可读可写,用户组可读,其他无权限
find /var/www/html -type d -print0 | xargs -r0 chmod 750
//查找 html 目录下所有目录,权限修改 750(rwxr-x—)用户可读可写可执行,用户组可读可执行,其他无权限
chmod -R g+w /var/www/html/{pub,var}
//修 改 html目录下 pub 目录和 var 目录下所有文件权限为用户组可写
chmod -R g+w /var/www/html/{app/etc,vendor}
//修 改 html目录下 app/etc目录和 vendor目录下所有文件权限为用户组可写
chmod 750 /var/www/html/bin/magento
//修 改 html目录下 bin/magento 权限 750(rwxr-x—)用户可读可写可执行,用户组可读可执行,其他无权限
3.6 安装配置 Magento
3.6.1 切换到/var/www/html
目录下,安装Magento
cd /var/www/html;composer install
3.6.2 安装成功
3.6.3 复制云主机的公网ip
3.6.4 访问云主机的公网ip
3.6.5 进行环境检查
3.6.6 填写数据库信息
3.6.7 web配置
3.6.8 配置时区、货币、语言
3.6.9 配置管理员账号
3.6.10 进行安装,安装成功
3.6.11 重新设置 Magento 文件的权限
chown -R :apache /var/www/html;
find /var/www/html -type f -print0 | xargs -r0 chmod 640;
find /var/www/html -type d -print0 | xargs -r0 chmod 750;
chmod -R g+w /var/www/html/{pub,var};
chmod -R g+w /var/www/html/{app/etc,vendor};
chmod 750 /var/www/html/bin/magento;
3.7 实验环境测试-添加cron作业
3.7.1 以apache用户配置定时任务
crontab -u apache -e
3.7.2 写入相关任务
*/10 * * * * php -c /etc /var/www/html/bin/magento cron:run
*/10 * * * * php -c /etc /var/www/html/update/cron.php
*/10 * * * * php -c /etc /var/www/html/bin/magento setup:cron:run
3.8 Magento商城个性化设计
3.8.1 访问用户界面
3.8.2 访问管理员界面
3.8.3 登录后界面提示“One or more indexers are invalid. Make sure your Magento cron job is running.” 的 错 误 信 息 , 可在 Magento 根目录 “/var/www/html” 执行php bin/magento indexer:reindex
命令
3.8.4 成功登录管理界面
3.8.5 进入用户界面创建用户
3.8.6 创建成功
3.8.7 进入管理界面,创建商品
3.8.8 配置用户界面
3.8.9 查看用户界面
3.9 释放资源
4. 问题汇总
4.1 安装centos7自带的mariadb版本过低
4.1.1 问题
4.1.2 解决方案
4.1.2.1 法一:参照参考文档,安装MySQL5.6以上版本
4.1.2.2 法二:自行配置mariadb yum仓库
cat > /etc/yum.repos.d/mariadb.repo <<EOF
[mariadb]
name=mariadb
baseurl=https://mirrors.aliyun.com/mariadb/yum/10.4/centos/7/x86_64/
gpgcheck=0
enable=1
EOF
4.2 php扩展包缺失
4.2.1 问题
4.2.2 原因
4.2.2.1 直接复制粘贴文档的内容,由于其会换行,导致其缺失一些php扩展包
4.2.2.2 缺失php扩展包,不会影响其版本信息查看
4.2.3 解决方案
4.2.3.1 重新安装php扩展包
yum -y install php70w php70w-pdo php70w-mysqlnd php70w-opcache \
php70w-xml php70w-gd php70w-mcrypt php70w-devel php70w-intl \
php70w-mbstring php70w-bcmath php70w-json php70w-iconv
4.2.3.2 重新进行检查,发现还是缺扩展
4.2.3.3 重启云主机
reboot
4.2.3.4 重新访问安装界面,环境检查成功
4.2.3.5 后续照着前面配置,magento安装成功,可以访问管理界面
本文由博客一文多发平台 OpenWrite 发布!