Nginx
Adobe Commerce支援nginx 1.x (或最新的主線版本)。 您也必須安裝最新版本的php-fpm
。
安裝指示會因您使用的作業系統而異。 如需詳細資訊,請參閱PHP。
烏本圖
以下章節說明如何使用nginx、PHP和MySQL在Ubuntu上安裝Adobe Commerce 2.x。
安裝nginx
sudo apt -y install nginx
您也可以從來源建置nginx
完成下列章節並安裝應用程式之後,我們將使用範例組態檔來設定nginx。
安裝和配置php-fpm
Adobe Commerce需要多個PHP擴充功能才能正常運作。 除了這些擴充功能之外,如果您使用nginx,您也必須安裝並設定php-fpm
擴充功能。
若要安裝和設定php-fpm
:
-
安裝
php-fpm
和php-cli
:code language-bash apt-get -y install php7.2-fpm php7.2-cli
note note NOTE 這個指令會安裝最新可用的PHP 7.2.X版本。請參閱支援的PHP版本系統需求。 -
在編輯器中開啟
php.ini
檔案:code language-bash vim /etc/php/7.2/fpm/php.ini
code language-bash vim /etc/php/7.2/cli/php.ini
-
編輯這兩個檔案以符合以下行:
code language-conf memory_limit = 2G max_execution_time = 1800 zlib.output_compression = On
note note NOTE 測試Adobe Commerce時,建議將記憶體限制設為2 G。 如需詳細資訊,請參閱必要的PHP設定。 -
儲存並退出編輯器。
-
重新啟動
php-fpm
服務:code language-bash systemctl restart php7.2-fpm
安裝及設定MySQL
如需詳細資訊,請參閱MySQL。
安裝與設定
有數種方式可下載Adobe Commerce,包括:
此範例顯示使用命令列的Composer型安裝。
-
以檔案系統擁有者的身分,登入您的應用程式伺服器。
-
變更至Web伺服器docroot目錄,或您設定為虛擬主機docroot的目錄。 在此範例中,我們使用Ubuntu預設值
/var/www/html
。code language-bash cd /var/www/html
-
全域安裝撰寫器。 安裝Adobe Commerce之前需要撰寫器更新相依性:
code language-bash curl -sS https://getcomposer.org/installer | sudo php -- --install-dir=/usr/bin --filename=composer
-
使用Adobe Commerce中繼資料建立撰寫器專案。
Magento Open Source
code language-bash composer create-project --repository=https://repo.magento.com/ magento/project-community-edition <install-directory-name>
Adobe Commerce
code language-bash composer create-project --repository=https://repo.magento.com/ magento/project-enterprise-edition <install-directory-name>
出現提示時,請輸入您的驗證金鑰。 您的 公開金鑰 是您的使用者名稱;私密金鑰 是您的密碼。
-
安裝應用程式之前,請先設定網頁伺服器群組的讀寫許可權。 這是必要的,以便命令列可以將檔案寫入檔案系統。
code language-bash cd /var/www/html/<magento install directory>
code language-bash find var generated vendor pub/static pub/media app/etc -type f -exec chmod g+w {} +
code language-bash find var generated vendor pub/static pub/media app/etc -type d -exec chmod g+ws {} +
code language-bash chown -R :www-data . # Ubuntu
code language-bash chmod u+x bin/magento
-
從命令列安裝。 此範例假設安裝目錄名為
magento2ee
,db-host
在相同電腦(localhost
)上,且db-name
、db-user
和db-password
皆為magento
:code language-bash bin/magento setup:install \ --base-url=http://localhost/magento2ee \ --db-host=localhost \ --db-name=magento \ --db-user=magento \ --db-password=magento \ --backend-frontname=admin \ --admin-firstname=admin \ --admin-lastname=admin \ --admin-email=admin@admin.com \ --admin-user=admin \ --admin-password=admin123 \ --language=en_US \ --currency=USD \ --timezone=America/Chicago \ --use-rewrites=1 \ --search-engine=elasticsearch7 \ --elasticsearch-host=es-host.example.com \ --elasticsearch-port=9200
-
切換到開發人員模式:
code language-bash cd /var/www/html/magento2/bin
code language-bash ./magento deploy:mode:set developer
設定nginx
我們建議使用安裝目錄和nginx虛擬主機中提供的nginx.conf.sample
設定檔來設定nginx。
這些指示假設您使用的是nginx虛擬主機的Ubuntu預設位置(例如/etc/nginx/sites-available
)和Ubuntu預設docroot (例如/var/www/html
),不過您可以變更這些位置以符合您的環境。
-
為您的網站建立新的虛擬主機:
code language-bash vim /etc/nginx/sites-available/magento
-
新增下列設定:
code language-conf upstream fastcgi_backend { server unix:/run/php/php7.2-fpm.sock; } server { listen 80; server_name www.magento-dev.com; set $MAGE_ROOT /var/www/html/magento2; include /var/www/html/magento2/nginx.conf.sample; }
note note NOTE include
指示詞必須指向安裝目錄中的範例nginx組態檔。 -
將
www.magento-dev.com
取代為您的網域名稱。 這必須符合您在安裝Adobe Commerce時指定的基底URL。 -
儲存並退出編輯器。
-
在
/etc/nginx/sites-enabled
目錄中建立新建立的虛擬主機的symlink以啟動它:code language-bash ln -s /etc/nginx/sites-available/magento /etc/nginx/sites-enabled
-
請確認語法正確:
code language-bash nginx -t
-
重新啟動nginx:
code language-bash systemctl restart nginx
驗證安裝
開啟網頁瀏覽器,並瀏覽至您網站的基底URL,以驗證安裝。
CentOS 7
以下章節說明如何使用nginx、PHP和MySQL在CentOS 7上安裝Adobe Commerce 2.x。
安裝nginx
yum -y install epel-release
yum -y install nginx
安裝完成後,請啟動nginx並將它設定為在開機時啟動:
systemctl start nginx
systemctl enable nginx
完成下列章節並安裝應用程式後,我們將使用範例組態檔來設定nginx。
安裝和配置php-fpm
Adobe Commerce需要多個PHP擴充功能才能正常運作。 除了這些擴充功能之外,如果您使用nginx,您也必須安裝並設定php-fpm
擴充功能。
-
安裝
php-fpm
:code language-bash yum -y install php70w-fpm
-
在編輯器中開啟
/etc/php.ini
檔案。 -
取消註解
cgi.fix_pathinfo
行並將值變更為0
。 -
編輯檔案以符合下列各行:
code language-conf memory_limit = 2G max_execution_time = 1800 zlib.output_compression = On
note note NOTE 測試Adobe Commerce時,建議將記憶體限制設為2 G。 如需詳細資訊,請參閱必要的PHP設定。 -
取消註解工作階段路徑目錄並設定路徑:
code language-conf session.save_path = "/var/lib/php/session"
-
儲存並退出編輯器。
-
在編輯器中開啟
/etc/php-fpm.d/www.conf
。 -
編輯檔案以符合下列各行:
code language-conf user = nginx group = nginx listen = /run/php-fpm/php-fpm.sock listen.owner = nginx listen.group = nginx listen.mode = 0660
-
取消環境行的註解:
code language-conf env[HOSTNAME] = $HOSTNAME env[PATH] = /usr/local/bin:/usr/bin:/bin env[TMP] = /tmp env[TMPDIR] = /tmp env[TEMP] = /tmp
-
儲存並退出編輯器。
-
為PHP工作階段路徑建立目錄,並將擁有者變更為
apache
使用者和群組:code language-bash mkdir -p /var/lib/php/session/
code language-bash chown -R apache:apache /var/lib/php/
-
為PHP工作階段路徑建立目錄,並將擁有者變更為
apache
使用者和群組:code language-bash mkdir -p /run/php-fpm/
code language-bash chown -R apache:apache /run/php-fpm/
-
啟動
php-fpm
服務,並將它設定為在開機時啟動:code language-bash systemctl start php-fpm
code language-bash systemctl enable php-fpm
-
驗證
php-fpm
服務是否正在執行:code language-bash netstat -pl | grep php-fpm.sock
安裝及設定MySQL
如需詳細資訊,請參閱MySQL。
安裝與設定
有數種方式可下載Adobe Commerce,包括:
此範例顯示使用命令列的Composer型安裝。
-
以檔案系統擁有者的身分,登入您的應用程式伺服器。
-
變更至Web伺服器docroot目錄,或您設定為虛擬主機docroot的目錄。 在此範例中,我們使用Ubuntu預設值
/var/www/html
。code language-bash cd /var/www/html
-
全域安裝撰寫器。 安裝Adobe Commerce之前需要撰寫器更新相依性:
code language-bash curl -sS https://getcomposer.org/installer | sudo php -- --install-dir=/usr/bin --filename=composer
-
使用Adobe Commerce中繼資料建立撰寫器專案。
Magento Open Source
code language-bash composer create-project --repository=https://repo.magento.com/ magento/project-community-edition <install-directory-name>
Adobe Commerce
code language-bash composer create-project --repository=https://repo.magento.com/ magento/project-enterprise-edition <install-directory-name>
出現提示時,請輸入您的驗證金鑰。 您的 公開金鑰 是您的使用者名稱;私密金鑰 是您的密碼。
-
安裝應用程式之前,請先設定網頁伺服器群組的讀寫許可權。 這是必要的,以便命令列可以將檔案寫入檔案系統。
code language-bash cd /var/www/html/<magento install directory>
code language-bash find var generated vendor pub/static pub/media app/etc -type f -exec chmod g+w {} +
code language-bash find var generated vendor pub/static pub/media app/etc -type d -exec chmod g+ws {} +
code language-bash chown -R :www-data . # Ubuntu
code language-bash chmod u+x bin/magento
-
從命令列安裝。 此範例假設安裝目錄名為
magento2ee
,db-host
在相同電腦(localhost
)上,且db-name
、db-user
和db-password
皆為magento
:code language-bash bin/magento setup:install \ --base-url=http://localhost/magento2ee \ --db-host=localhost \ --db-name=magento \ --db-user=magento \ --db-password=magento \ --backend-frontname=admin \ --admin-firstname=admin \ --admin-lastname=admin \ --admin-email=admin@admin.com \ --admin-user=admin \ --admin-password=admin123 \ --language=en_US \ --currency=USD \ --timezone=America/Chicago \ --use-rewrites=1
-
切換到開發人員模式:
code language-bash cd /var/www/html/magento2/bin
code language-bash ./magento deploy:mode:set developer
設定nginx
我們建議使用安裝目錄和nginx虛擬主機中提供的nginx.conf.sample
設定檔來設定nginx。
這些指示假設您正在使用nginx虛擬主機的CentOS預設位置(例如/etc/nginx/conf.d
)和預設docroot (例如/usr/share/nginx/html
),但您可以變更這些位置以符合您的環境。
-
為您的網站建立新的虛擬主機:
code language-bash vim /etc/nginx/conf.d/magento.conf
-
新增下列設定:
code language-conf upstream fastcgi_backend { server unix:/run/php-fpm/php-fpm.sock; } server { listen 80; server_name www.magento-dev.com; set $MAGE_ROOT /usr/share/nginx/html/magento2; include /usr/share/nginx/html/magento2/nginx.conf.sample; }
note note NOTE include
指示詞必須指向安裝目錄中的範例nginx組態檔。 -
將
www.magento-dev.com
取代為您的網域名稱。 -
儲存並退出編輯器。
-
請確認語法正確:
code language-bash nginx -t
-
重新啟動nginx:
code language-bash systemctl restart nginx
設定SELinux和Firewald
CentOS 7預設啟用SELinux。 使用以下命令檢視它是否正在執行:
sestatus
若要設定SELinux與firewald:
-
安裝SELinux管理工具:
code language-bash yum -y install policycoreutils-python
-
執行以下命令來變更安裝目錄的安全性內容:
code language-bash semanage fcontext -a -t httpd_sys_rw_content_t '/usr/share/nginx/html/magento2/app/etc(/.*)?'
code language-bash semanage fcontext -a -t httpd_sys_rw_content_t '/usr/share/nginx/html/magento2/var(/.*)?'
code language-bash semanage fcontext -a -t httpd_sys_rw_content_t '/usr/share/nginx/html/magento2/pub/media(/.*)?'
code language-bash semanage fcontext -a -t httpd_sys_rw_content_t '/usr/share/nginx/html/magento2/pub/static(/.*)?'
code language-bash restorecon -Rv '/usr/share/nginx/html/magento2/'
-
安裝防火牆套件:
code language-bash yum -y install firewalld
-
啟動防火牆服務,並將它設定為在開機時啟動:
code language-bash systemctl start firewalld
code language-bash systemctl enable firewalld
-
執行以下命令來開啟HTTP和HTTPS的連線埠,以便您可以從網頁瀏覽器存取基本URL:
code language-bash firewall-cmd --permanent --add-service=http
code language-bash firewall-cmd --permanent --add-service=https
code language-bash firewall-cmd --reload