隔一段時間,就得折騰一次,不然記的那些Linux命令就差不多忘光了。
1. 安裝 MySQL
CentOS 7 有點麻煩,需要先添加官方源,然後通過yum安裝。
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數據庫。
安裝完成之後,比較搞笑的一步竟然是找密碼,因為默認安裝直接給設置了一個密碼,需要找到它,然後修改初始密碼,接下來才能操作。
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
官網鏈接,選擇下圖右邊自定義模式下載源碼。
下載完後,解壓,應該是如下3個文件,這裡是1.7.4.1 版本。
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,顯示如下:
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結果如下圖所示。
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,自動開始安裝,如下界面為解壓縮。
第五步,隨即啟動安裝,如下圖
第六步,刪除服務器端安裝目錄,/var/www/html/install/
第七步,如果一切順利,那麼就能正常進入首頁,以及後臺頁面。
6. 各種 BUG 情況
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,服務器就處於崩潰的邊緣。
參考文章(點擊其他鏈接查看):
- CentOS7安裝MySQL - 一張對二 - 博客園
- centos7升級自帶的php5.4版本到php5.6 - 標配的小號 - 博客園
- centos7開啟交換內存
- CentOS 7 yum nginx MySQL PHP 簡易環境搭建 - Evai - 博客園
可能你非常不幸,到了最後一步,還是失敗了。不用擔心,到這一步失敗,其實沒什麼大礙了,它只是在安裝模塊。不用管它,退出後,刪除服務器端install/目錄,然後瀏覽器直接進入後臺http://your_ip/admin*****,後臺是可以手動安裝這些模塊的。
好了,先到這裡,謝謝觀看~
閱讀更多 個人學習 的文章