原文連結: http://codeshold.me/2017/01/opencart_installation.html
前言
朋友在亞馬遜(美國)上開了一家網點且注冊了自己的品牌,amazon需要品牌商提供自己的網站,于是乎朋友找到了我,并給了我一個品牌商網站的參考(他的一位朋友在淘寶上買的電子商務網站–三四百塊),然後我點開了,接着我留意了網站底下的
Powered By OpenCart
,最後我發現這壓根可以不要錢啊啊啊啊(盡管自己不搞前端)!
自己仔細看了朋友的朋友買的電子商務網站,它用的就是一個開源的opencart(類似 wordpress),而且也沒有什麼定制化的内容,更沒有開通支付功能(開通支付功能貌似還要加一千塊),也就是一個純正的開源的東西!
于是自己花了一個小時免費幫朋友弄了下,好在他自己注冊且備案了一個域名,而我正好也有個vps,下文是自己部署OpenCart的記錄!
安裝OpenCart
1. 準備
- opencart是幹嗎的?
- vps用的是DigitalOcean(自己用來翻牆的)
- 域名是在阿裡雲上注冊和備案的
- 伺服器作業系統 CentOS 7
2. 部署
- 安裝并配置httpd
## 1. 安裝軟體包
[[email protected] ~]# yum install httpd php-y
## 2. 啟動httpd服務
## httpd啟動後,浏覽器輸入伺服器ip即可浏覽預設的apache web頁面
[[email protected] ~]# systemctl start httpd
## 3. 設定httpd和mariadb開機啟動
[[email protected] ~]# systemctl enable httpd
- 安裝并配置mariadb(mysql)
## 1. 安裝軟體包
[root@ss ~] yum install mariadb mariadb-server -y
## 2. 啟動自動安裝&配置
[root@ss html]# mysql_secure_installation
......
## 3. 登陸mysql
## 建立資料庫opencartdb
## 建立使用者opencart(密碼opencart)并賦予權限
[root@ss html]# mysql -u root -p
......
## 3.1 建立資料庫opencartdb
MariaDB [(none)]> create database opencartdb;
Query OK, row affected ( sec)
## 3.2 建立使用者opencart(密碼opencart)并賦予權限
MariaDB [(none)]> grant all privileges on opencartdb.* to opencart@localhost identified by 'opencart';
## 3. 設定mariadb開機啟動
[root@ss ~]# systemctl enable httpd mariadb
-
安裝php及相關擴充包
可跳過擴充包的安裝,根據後面opencart檢測的結果再安裝也行
## 1. 安裝php
[[email protected] ~]# yum install php -y
## 2. 安裝擴充包(可跳過此步驟,後面根據opencart檢測的結果再安裝)
[[email protected] ~]# yum install php-mysql php-mcrypt php-gd php-cli php-pdo -y
## 3. 查詢結果如下
[[email protected] opencart]# rpm -qa | grep php
php-common--el7.x86_64
php--el7.x86_64
php-mysql--el7.x86_64
php-mcrypt--el7.x86_64
php-gd--el7.x86_64
php-cli--el7.x86_64
php-pdo--el7.x86_64
-
安裝和配置opencart
安裝包可從官網或github上下載下傳最新版本
[[email protected] ~]# mkdir opencart && cd opencart
## 1. 從github上下載下傳最新版本的compiled包
[[email protected] opencart]# wget https://github.com/opencart/opencart/releases/download/2.3.0.2/2.3.0.2-compiled.zip
## 2. 解壓
[[email protected] opencart]# unzip -q 2.3.0.2-compiled.zip
## 3. 拷貝upload目錄下的檔案到/var/www/html/下
[[email protected] opencart]# cd /var/www/html/
[[email protected] html]# cp ~/opencart/upload/* . -rf
## 3. 根據目錄下的`install.txt`檔案即可完成配置和安裝)
## 3.1 修改config.php 檔案名
[[email protected] html]# mv config-dist.php config.php
[[email protected] html]# mv admin/config-dist.php admin/config.php
## 3.2 添加可寫權限
[[email protected] html]# chmod a+w config.php admin/config.php
[[email protected] html]# chmod a+w /var/www/html/image/ -R
[[email protected] html]# chmod a+w /var/www/html/system/ -R
- 進入安裝頁面
浏覽器輸入伺服器ip位址進入頁面安裝
可能會需要
systemctl restart httpd
重新開機httpd服務
-
進入pre-installation檢測頁面
請根據檢測的結果,安裝相應的軟體包、php擴充包或者設定檔案權限
如下圖顯示缺少了php擴充(修改請參考前面步驟,如
,修改後重新開機httpd服務yum install php-mcrypt -y
,再重新整理頁面)! 如下圖顯示缺少對應檔案或目錄的可寫權限(修改請參考前面步驟,如systemctl restart httpd
,修改後重新開機httpd服務chmod a+w config.php admin/config.php
,再重新整理頁面)! 修改後的systemctl restart httpd
-
進入配置頁面
填寫前面設定的資料庫名opencartdb,以及使用者名和密碼(opencart/opencart)
如果一開始已經配置好了域名解析,hostname一欄填寫域名即可!
-
完成安裝後
參考
install.txt
## 删除安裝目錄
[[email protected] html]# rm -rf install/
## 由于安裝的是github上的compiled包,是以要拷貝vendor
[[email protected] ~]# cp -rf ~/opencart/vendor/ /var/www/
[[email protected] www]# cd /var/www/ && ls
cgi-bin html vendor
- 輸入IP測試
其他配置(防火牆,ftp)
-
防火牆配置
自己取消了CentOS7的firewalls,使用的是iptables,如下
## 1. 取消firewalld服務
[root@ss ~]# systemctl stop firewalld && systemctl disable firewalld
## 2. 安裝iptables-services
[root@ss ~]# yum install iptables-services -y
## 3. 添加防火牆設定
[root@ss ~]# vim /etc/sysconfig/iptables
## 3.1 添加如下規則
-A INPUT -p tcp -m state --state NEW -m tcp --dport -j ACCEPT
## 3.2 啟動防火牆并設定開機啟動
[root@ss ~]# systemctl start iptables && systemctl enable iptables
-
ftp配置
安裝vsftp,
, 配置好後,浏覽器進入管理頁面(http://域名/admin/)進行設定,如下yum install vsftpd -y
域名設定
- 在阿裡雲雲解析DNS上添加記錄,如下(假設域名為codeshold.me)
記錄類型 | 主機記錄 | 記錄值 | 解析線路 | TTL(秒) | 說明 |
---|---|---|---|---|---|
A | @ | XX.XX.XX.XX | 預設 | 600 | @表示将codeshole.me解析為該IP, 600表示DNS緩存生存時間為10分鐘 |
A | www | XX.XX.XX.XX | 預設 | 600 | @表示将www.codeshole.me解析為該IP, 600表示DNS緩存生存時間為10分鐘 |
-
修改config檔案
在配置好自己的域名後,如果出現
這個問題(見問題1),如下,則需修改config檔案,如下在浏覽器輸入域名登入網站後,在點選頁面連結,域名顯示為了IP位址
[[email protected] ~]# systemctl restart httpd
[[email protected] ~]# vim /var/www/html/admin/config.php
......
[[email protected] ~]# vim /var/www/html/config.php
......
問題
1. 位址欄域名變成了IP
解決方法見上
2. 通路不了頁面
請確定防火牆的設定