不做生意,也可以搭建個商城系統玩玩:Linux 實戰

隔一段時間,就得折騰一次,不然記的那些Linux命令就差不多忘光了。

1. 安裝 MySQL

CentOS 7 有點麻煩,需要先添加官方源,然後通過yum安裝。

不做生意,也可以搭建個商城系統玩玩:Linux 實戰

不做生意,也可以搭建個商城系統玩玩:Linux 實戰

wget -i -c https://dev.mysql.com/get/mysql80-community-release-el7-1.noarch.rpm
yum -y install mysql80-community-release-el7-1.noarch.rpm
yum -y install mysql-community-server

通過上述命令安裝mysql,會自動覆蓋掉CentOS 7 自帶的mariadb數據庫。

不做生意,也可以搭建個商城系統玩玩:Linux 實戰

安裝完成之後,比較搞笑的一步竟然是找密碼,因為默認安裝直接給設置了一個密碼,需要找到它,然後修改初始密碼,接下來才能操作。

grep "password" /var/log/mysqld.log
2018-07-18T04:38:24.043225Z 5 [Note] [MY-010454] [Server] A temporary password is generated for root@localhost: Gua<tuib6ty>

修改密碼的命令

ALTER USER 'root'@'localhost' IDENTIFIED BY 'NewPassWord!';

注意:因為在服務器端,密碼強度要高,大小寫字母,還要有特殊字符,不然會報錯。

2. 下載 prestashop

官網鏈接,選擇下圖右邊自定義模式下載源碼。

不做生意,也可以搭建個商城系統玩玩:Linux 實戰

下載完後,解壓,應該是如下3個文件,這裡是1.7.4.1 版本。

不做生意,也可以搭建個商城系統玩玩:Linux 實戰

3. 配置Web服務器

Web服務器選擇nginx,由於prestashop是php的開源平臺,所以要安裝php。安裝命令如下

sudo yum install nginx php php-fpm // 安裝nginx,php,php-fpm(配合nginx)

啟動php-fpm,打開nginx配置文件,添加如下配置

location ~ \.php$ {
root /var/www/html;
fastcgi_pass 127.0.0.1:9000;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
include fastcgi_params;
}

在目錄/var/www/html目錄中添加測試文件index.php,編輯如下信息:

// index.php
phpinfo()
?>

啟動nginx,nginx,或重啟nginx服務,nginx -s reload,在瀏覽器端訪問:http://your_ip/index.php,顯示如下:

不做生意,也可以搭建個商城系統玩玩:Linux 實戰

4. 升級php版本

這裡學了幾個關於yum的命令。

yum list installed // 列出安裝的軟件
yum list installed | grep php // 找出PHP相關的軟件包
yum provides php // 查找源中php軟件包
yum remove php-common // 卸載php-common軟件包,這裡注意要卸載乾淨
yum install php70w-common // 安裝php7.0版本

升級就是卸載舊版本,安裝新版本即可。這裡建議直接安裝7.0版本,list結果如下圖所示。

不做生意,也可以搭建個商城系統玩玩:Linux 實戰

5. 安裝prestashop

第一步,把該啟動的服務全部啟動,這裡以CentOS 7 為例。如下命令:

systemctl start mysqld.serivce // 啟動mysql服務
systemctl start php-fpm.service // 啟動php-fpm服務
nginx // 啟動nginx服務
systemctl restart mysqld.serivce // 重啟mysql服務
systemctl restart php-fpm.service // 重啟php-fpm服務
nginx -s reload // 重啟nginx服務

第二步,創建prestashop數據庫

第三步,拷貝prestashop項目,將index.php和prestashop.zip拷貝到web目錄中/var/www/html/

第四步,瀏覽器端輸入http://your_ip/index.php,自動開始安裝,如下界面為解壓縮。

不做生意,也可以搭建個商城系統玩玩:Linux 實戰

第五步,隨即啟動安裝,如下圖

不做生意,也可以搭建個商城系統玩玩:Linux 實戰

不做生意,也可以搭建個商城系統玩玩:Linux 實戰

不做生意,也可以搭建個商城系統玩玩:Linux 實戰

不做生意,也可以搭建個商城系統玩玩:Linux 實戰

第六步,刪除服務器端安裝目錄,/var/www/html/install/

第七步,如果一切順利,那麼就能正常進入首頁,以及後臺頁面。

不做生意,也可以搭建個商城系統玩玩:Linux 實戰

不做生意,也可以搭建個商城系統玩玩:Linux 實戰

6. 各種 BUG 情況

Linux的世界裡,從來沒有一帆風順,期間需要根據報錯信息,不斷的更正,才能一步一步走下去。這裡記錄一個讓我耗時最長的問題。

不做生意,也可以搭建個商城系統玩玩:Linux 實戰

如上圖,店鋪安裝到12%的時候,就過不去了,創建數據表失敗,檢查數據庫的操作沒有問題,而且奇怪的是,查看數據庫,所有的表都已經建好了。那為什麼會顯示504 Gateway Time-out呢?於是,把問題定位在Web服務器的配置上,修改相關配置,延長響應時間,加大緩存等等。但每次重新來過都是這樣。(清空/var/www/html裡的文件,重新把安裝包拷貝進去就可以重來)

後來,檢查服務器的時候,發現,每次到這一步,mysql就極其卡頓,偶爾還會down掉,於是隱約的感覺到,會不會是服務器資源不夠了。於是,再來一遍的時候,我就通過free命令,觀察內存使用情況,發現果然是內存不足。(我使用的是騰訊雲的最基礎版的雲服務器,1G+1Mbps)

內存不夠,創建交換分區,暫時把硬盤充當內存使用,避免安裝過程mysql直接down掉。

dd if=/dev/zero of=/swapfile bs=4096 count=1024K // 創建文件
mkswap /swapfile // 設置交換文件
swapon /swapfile // 啟用

這樣就可以了,free看一下,就會發現swap分區的使用情況。可憐的1G,如果沒有swap,服務器就處於崩潰的邊緣。

不做生意,也可以搭建個商城系統玩玩:Linux 實戰

參考文章(點擊其他鏈接查看):

  • CentOS7安裝MySQL - 一張對二 - 博客園
  • centos7升級自帶的php5.4版本到php5.6 - 標配的小號 - 博客園
  • centos7開啟交換內存
  • CentOS 7 yum nginx MySQL PHP 簡易環境搭建 - Evai - 博客園
不做生意,也可以搭建個商城系統玩玩:Linux 實戰

可能你非常不幸,到了最後一步,還是失敗了。不用擔心,到這一步失敗,其實沒什麼大礙了,它只是在安裝模塊。不用管它,退出後,刪除服務器端install/目錄,然後瀏覽器直接進入後臺http://your_ip/admin*****,後臺是可以手動安裝這些模塊的。

不做生意,也可以搭建個商城系統玩玩:Linux 實戰

好了,先到這裡,謝謝觀看~


分享到:


相關文章: