接着上一篇的國外最火的電商網站magento2:系列(二)nginx、php環境的適配 說:
重中之重,這個步驟坑了樓主好久好久。
六:安裝和配置magento2
有幾種方法可以下載Magento軟件,包括:
-
獲取Composer元數據包
-
下載源碼包
-
用git安裝
對於此示例,我這里為了圖方便,直接去官網下載的源碼包:
切換到Web服務器docroot目錄或已配置為虛擬主機docroot的目錄。對於此示例,我們使用的是centos7默認值/usr/share/nginx/html。
這些說明假設您正在使用CentOS默認位置用於nginx虛擬主機(例如/etc/nginx/conf.d
)和默認docroot(例如/usr/share/nginx/html
),但是,您可以更改這些位置以適合您的環境。
1.為Magento站點創建一個新的虛擬主機:
vim /etc/nginx/conf.d/magento.conf
2.添加以下配置:
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; }
替換www.magento-dev.com
為您的域名或者ip。
注意:該include指令必須是只指向magento安裝目錄中的nginx.conf.sample。
3.驗證語法是否正確:
nginx -t
4.重啟nginx:
systemctl restart nginx
5.在安裝Magento軟件之前,請為Web服務器組設置讀寫權限。這是必要的,以便安裝向導和命令行可以將文件寫入Magento文件系統。
find var generated vendor pub/static pub/media app/etc -type f -exec chmod g+w {} +
find var generated vendor pub/static pub/media app/etc -type d -exec chmod g+ws {} +
chmod u+x bin/magento
6.步驟一部一部來,不出錯的情況下,訪問地址,你將會看到正確的安裝界面了
七:調試錯誤
加入上面的這些步驟都對,你還是不能訪問界面的話,請進行一下操作:
請注意這些很重要很重要!!!
1.檢查你的CentOS 7查看防火牆狀態: firewall-cmd --state
2.CentOS 7查看SELinux狀態並關閉 : /usr/sbin/sestatus -v
3.檢查你的防火牆是否允許80端口的訪問、、
4.最好關閉的的SELinux,這會影響到magento2的訪問
5.打開php會話session的權限
6.打開文件的權限:sudo chmod -R 777 var pub
7.打開php緩存代碼的權限:sudo chmod -R 777 generated
8.打開app權限:sudo chmod -R 777 app
然后繼續訪問:可以去查看nginx的錯誤日志:(/var/log/nginx/error.log)
假如出現下面錯誤:下載Magento 2並嘗試設置但獲取空白頁面。
當我檢查nginx
日志文件時,我在日志下面找到了。
這是默認Magento nginx.conf.sample文件需要替換啦。
這是原來的:
location ~* ^/setup($|/) { root $MAGE_ROOT; location ~ ^/setup/index.php { fastcgi_pass fastcgi_backend; fastcgi_param PHP_FLAG "session.auto_start=off \n suhosin.session.cryptua=off"; fastcgi_param PHP_VALUE "memory_limit=768M \n max_execution_time=600"; fastcgi_read_timeout 600s; fastcgi_connect_timeout 600s; fastcgi_index index.php; fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; include fastcgi_params; } location ~ ^/setup/(?!pub/). { deny all; } location ~ ^/setup/pub/ { add_header X-Frame-Options "SAMEORIGIN"; } }
你需要把上面的替換成下面的:
location /setup {
root $MAGE_ROOT;
location ~ ^/setup/index.php {
### This fixes the problem:
fastcgi_split_path_info ^(.+?\.php)(/.*)$;
################################
fastcgi_pass fastcgi_backend;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
include fastcgi_params;
}
location ~ ^/setup/(?!pub/). {
deny all;
}
location ~ ^/setup/pub/ {
add_header X-Frame-Options "SAMEORIGIN";
}
}
接下來,你再次訪問的時候,就是見證奇跡的時候啦!!
給大家一波裝好的圖片:
從這以后,基本的magento2就算配置完成啦。希望大家能從我這里學到一點東西。接來下的話,
我會把一些magento2需要用到的命令,和一些常見的錯誤陸陸續的續展現出來。。