HOME PAGE.jpg
前两天帮人在阿里云服务器搭建Magento,下面把完整过程整理出来,留作后用,以便节省时间,或者提供给需要帮助的人。

以Magento 2.2.2为例,配置参数来源于官方文档

服务器要求

  • 操作系统: Linux x86-64发行版
  • 内存: >= 2GB
  • Web服务器:Apache:2.2, 2.4 /Nginx: ^1.x
  • MySQL 5.6, 5.7
  • PHP :7.0.2 ,7.0.4,7.0.6–7.0.x,7.1.x
  • CPU内核推荐2核以上

本人采用了Ubuntu 18 LTS作为服务器操作系统,所以以下内容基于Ubuntu操作,如果使用其他Linux发行版请做相应的修改。

安装Linux面板

为方便管理服务器及安装软件,安装了宝塔Linux面板,如果担心影响服务器性能,也可以不用。
在用户根目录执行宝塔面板的安装命令:

wget -O install.sh http://download.bt.cn/install/install-ubuntu.sh && sudo bash install.sh

并根据提示安装,完成后会在终端显示后台登录地址及账号密码,这个过程大概需要5分钟。

安装运行环境

登录宝塔面板,进入面板设置,修改面板的参数,如别名,用户名,密码等,然后进入软件管理,安装运行环境所需要的软件。
推荐安装Nginx 1.14Mysql 5.7PHP 7.1phpMyAdminPure-Ftpd 1.0.47Redis 4.0,前3个为必须安装,其他的根据情况可选,此过程时间和服务器配置有关,大概需要1小时,其中Mysql5.7安装耗时最长且对服务器配置要求高,如果服务器性能不够也可以安装Mysql5.6。

PHP配置

PHP安装完成后,进入软件管理-PHP7.1-设置-安装扩展,安装opcache,redis,init,xsl扩展。
然后进入配置修改,将max_execution_time 修改为1200或更高,memory_limit 修改为768M或更高

安装Magento

运行环境搭建好以后,下面开始Magento的安装,Magento可以通过Composer、Git clone等方式安装,但是这2种方式由于网络原因安装速度很慢,这里采用下载源码包然后直接解压的方式安装。
去Magento官网下载源码包

https://magento.com/tech-resources/download

源码包分为带演示数据和不带演示数据,如果在本地测试使用,推荐安装带演示数据版(ZIP with sample data)。

将下载好的源码包通过ftp上传到服务器,然后解压到网站目录,然后用命令行执行安装,注意权限问题。

php bin/magento setup:install --base-url=http://mg.com/ \
--db-host=127.0.0.1 --db-name=magento --db-user=mg --db-password=123 \
--admin-firstname=Magento --admin-lastname=User --admin-email=admin@admin.com \
--admin-user=admin --admin-password=admin123 --language=en_US \
--currency=USD --timezone=America/Chicago --use-rewrites=1

安装完成后会打印一个后台的路径,可以在 app/etc/env.php 中查看或者修改。

配置Nginx

upstream fastcgi_backend {
#    # use tcp connection
#    # server  127.0.0.1:9000;
#    # or socket
    server   unix:/tmp/php-cgi-71.sock;
 }

server {
    listen 80;
    server_name mg.com;
    set $MAGE_ROOT /www/wwwroot/magento;
    include /www/wwwroot/magento/nginx.conf.sample;
    ……
}

修改权限

把系统的当前用户加入web服务器组,也就是拥有www用户组的权限,这里以max为例,

usermod -a -G www max

修改文件的访问权限

find . -type f -exec chmod 644 {} \; && find . -type d -exec chmod 755 {} \; && find ./var -type d -exec chmod 777 {} \; && chmod 777 var/ -R && find ./pub/media -type d -exec chmod 777 {} \; && find ./pub/static -type d -exec chmod 777 {} \; && chmod 777 ./app/etc && chmod 644 ./app/etc/*.xml && chmod u+x bin/magento

授权用户组

chown www:max . -hR  

更新系统

php bin/magento setup:upgrade
php bin/magento setup:di:compile
php bin/magento setup:static-content:deploy -f
php bin/magento indexer:reindex
php bin/magento cache:clean && php bin/magento cache:flush

配置Redis

php bin/magento setup:config:set --cache-backend=redis --cache-backend-redis-server=127.0.0.1 --cache-backend-redis-db=0

php bin/magento setup:config:set --page-cache=redis --page-cache-redis-server=127.0.0.1 --page-cache-redis-db=1

php bin/magento setup:config:set --session-save=redis --session-save-redis-host=127.0.0.1 --session-save-redis-log-level=3 --session-save-redis-db=2

配置定时任务

* * * * * /usr/bin/php /www/wwwroot/magento/bin/magento cron:run | grep -v "Ran jobs by schedule" >> /www/wwwroot/magento/var/log/magento.cron.log
* * * * * /usr/bin/php /www/wwwroot/magento/update/cron.php >> /www/wwwroot/magento/var/log/update.cron.log
* * * * * /usr/bin/php /www/wwwroot/magento/bin/magento setup:cron:run >> /www/wwwroot/magento/var/log/setup.cron.log

开发者模式

php bin/magento deploy:mode:show
php bin/magento deploy:mode:set developer

参考资料

[1]https://devdocs.magento.com/guides/v2.2/install-gde/bk-install-guide.html
[2]https://magento.com/tech-resources/download