前两天帮人在阿里云服务器搭建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.14
,Mysql 5.7
,PHP 7.1
,phpMyAdmin
,Pure-Ftpd 1.0.47
,Redis 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