身為一個隨意的部落客,對於發表文章也很懶惰,本身架網站喜歡拿現成的(本人美術很差)
拿現成的比如說:wordpress、blogger、ghost、wix.......
雖然網頁得美觀,自己可以來慢慢寫,本人是超級懶惰,要我從頭自己剋根本要我的命
所以,我個人網站習慣用google blogger直接套模板,若是有需求,blogger後台本身也有提供程式碼提供編輯,自己再去爬文找程式
最近在跟朋友討論架站事宜,雖然推薦使用wordpress,直接利用wordpress直接架,但是,有很多限制,所以,考慮開平台架站。
跟朋友討論的結果,直接使用 Google Cloud Platform 雲端主機免費版架設 WordPress (方便、快速)
使用 Google Cloud Platform 雲端主機免費版架設 WordPress 教學
基本上,一切在Google Cloud Platform上做設定,一切都沒問題,而且現在還提供一整年 12 個月的 $300 美元額度,更不用擔心使用超量而被收費。
雖然用Google Cloud Platform架超快,但是,因為最近在學linux,個人也打算自己開一個虛擬機器架架看,使用wordpress架站,目前架好的結果
我個人也爬了許多文章,參考許多資料,分享一下我在架站的心路歷程
一開始,我找到一個網站,以這網站的教學作為模板的範例
[CentOS 7] 自己的部落格自己架,讓 Wordpress 幫你架好架滿
這網站教的非常詳細,但是,在架的過程中,我遇到了一些問題
- 語法有更新過,優些不適用(主要問題)
- wordpress手動設定失敗許多次
其實還有很多,但是我忘記了~~~~~~~~~
再架站之前,麻煩請先設定好你的LAMP或是LEMP
[CentOS 7] 整合 Apache、MySQL、PHP 7 組成 LAMP Server
[CentOS 7] 整合 Nginx、MariaDB、PHP 7 組成 LEMP Server
LEMP的設定依照他的教學一步一步做應該是沒有問題(因為我是用LAMP~~~~~)
第一步,安裝套件
※在安裝之前可能遇到的問題~~~網路
設定網路時,網路的設定檔放在/etc/sysconfig/network-scripts/ ,而Centos會根據不同的網卡有不停名稱,如果你的是ens33請鍵入vi /etc/sysconfig/network-scripts/ifcfg-ens33
看一下檔案內容
此時,你會看到有很多的參數,其中有一個參數ONBOOT=no,請將no改成yes,這樣下次開機就會自動進入網路,請現在鍵入reboot重新開機
安裝wget(好像在CentOS6.7時宜除了~~)
yum install wget
>>>>>>>wget是用來取得網頁或檔案的指令
※備註:
若你是重新安裝CentOS 7的人,建議安裝
yum install net-tools
可以用習慣的ifconfig來查詢ip(若你習慣ip addr 其實就不太需要裝)
zip解壓縮指令
yum install zip unzip -y
EPEL安裝
yum install epel-release
安裝完時,記得更新
yum update
Apache 的安裝
yum install httpd httpd-tools
安裝php
yum install php –y
安裝MySQL
yum install mysql-community-server
Webtatic 套件庫
rpm -Uvh https://mirror.webtatic.com/yum/el7/webtatic-release.rpm
基本上,安裝到這裡是可以準備開始設定,但是,若你還是不放心,或是在設定過程中缺少何種套件,我將他列在下面
加入 MySQL 套件庫。
rpm -Uvh https://dev.mysql.com/get/mysql57-community-release-el7-7.noarch.rpm
EPEL 套件庫。
rpm -Uvh https://dl.fedoraproject.org/pub/epel/epel-release-latest-7.noarch.rpm
安裝Mysql 5.7
yum -y install httpd mysql-server php70w php70w-mysql
第二步:基礎設定
剛安裝完,先將所有功能啟用
systemctl start httpd.service
(開機一定會啟用)
systemctl enable httpd.service
Apache
允許防火牆讓 HTTP、HTTPS 封包通過。
firewall-cmd --permanent --zone=public --add-service=http
firewall-cmd --permanent --zone=public --add-service=https
firewall-cmd --reload
啟動 httpd,並讓它在開機後自動啟動。
systemctl start httpd
systemctl enable httpd
啟動 MySQL Server,並讓它在開機後自動啟動。
systemctl start mysqld
systemctl enable mysqld
※如果在登入 MySQL 的時候,出現下列的錯誤訊息。(若沒問題,請跳安全設定)<我是沒有問題啦~~~~這邊是直接節錄他人解決方案>
ERROR 1045 (28000): Access denied for user 'root'@'localhost' (using password: NO)
Error: Access denied for user 'root'@'localhost' (using password: NO)
請依照下列的步驟處理。
停止 MySQL 服務。
systemctl stop mysqld
加入自訂環境變數,暫時不檢查權限。
systemctl set-environment MYSQLD_OPTS="--skip-grant-tables"
啟動 MySQL 服務。
systemctl start mysqld
免密碼直接登入 MySQL。
mysql -u root
更新 root 的新密碼,這邊是用 P@ssw0rd,別忘了修改成自訂密碼。
UPDATE mysql.user SET authentication_string = PASSWORD('P@ssw0rd') WHERE User = 'root' AND Host = 'localhost';
重新載入權限。
flush privileges;
退出 MySQL。
quit
如果都沒問題,情直接做安全性設定
安全性設定值依需求做調整。
mysql_secure_installation
一開始先鍵入enter已進入設定
接著設定root的密碼
要不移除匿名帳號按Y
不允許root遠端登入按Y
是否移除test資料庫按Y
是否重新載入設定按Y
你可以看到裡面有些安全設定,以後你可以用這個指令來設定一些安全設定
完成之後,試著連線到Mysql Server,用 root 帳號的新密碼登入測試一下。
mysql -u root -p
基本上到這裡是都設定好了(可以省略,因為我沒裝)
※預防萬一為了讓 PHP 可以連接,額外安裝 PHP 的模組。
yum -y install php70-php-mysqlnd
PHP
為 Apache 加入 PHP 的支援,步驟實在超簡單,就是「什麼都不用做」,只要在裝好 PHP 之後,重新啟動 Apache 就可以了。
systemctl restart httpd
接著,建立一個 PHP 測試檔。
vi /var/www/html/info.php
<?php phpinfo(); ?>
就可以看到模組啟動成功!!
第三步,設定wordpress
Wordpress 的系統需求是:
PHP 5.2.4 以上
MySQL / MariaDB 5.0 以上
下載 Wordpress 主程式,它已經內建繁體中文語系,所以不必額外再安裝了。
wget https://tw.wordpress.org/latest-zh_TW.zip
將主程式解壓縮,若是使用 LAMP 架構的話,請把路徑改到 /var/www/html。
unzip latest-zh_TW.zip -d /usr/share/nginx/html
到 /var/www/html這樣就會在網站根目錄看到 Wordpress 主程式的目錄
將目錄權限不變,調整擁有者與擁有群組,修改成 Web Server 的使用者及群組。
chown apache:apache -R /usr/share/nginx/html/wordpress
(若是 Nginx,就應該下這樣的指令才對chown nginx:nginx -R /usr/share/nginx/html/wordpress)
建立資料庫
先連線到 MySQL / MariaDB,用預設帳號 root 登入,此 root 非彼 root,它是 DB 自管的帳號而不是 Linux 的本機帳號。
mysql -u root -p
建立一個專用的資料庫。
create database `資料庫名稱`;
建立 Wordpress 專用的使用者。
create user '使用者'@'localhost' IDENTIFIED BY '密碼';
讓專用帳號有完整存取 wordpress 資料庫的權限,並重新載入權限。
GRANT ALL ON wordpress.* TO '使用者'@'localhost' IDENTIFIED BY '密碼';
重新整理
flush privileges;
用新帳號登入資料庫。
mysql -u wpadmin -p
確認可以登入並擁有正確的資料庫存取權限了。
show databases;
第四步:開始安裝
打開瀏覽器連上 Web Server,別忘了我們是放在網站根目錄下的 wordpress 目錄,在輸入網址的時候別打錯了。
http://IP/wordpress
資料庫名稱 - 專屬的 Database 名稱
帳號 / 密碼 - Wordpress 的管理員
資料庫主機位址 - 若是 Web Server 跟 DB Server 不是同一台才要修改
資料表前綴 - 用來分辨不同 Wordpress 的資料表 (DB Tables)
如果出現「無法選擇資料庫」的錯誤訊息,可能的原因有:
- 資料庫還沒建
- 帳號密碼錯誤
- 權限不夠
- IP 位址錯誤
- 被防火牆擋住
如果出現「無法寫入 wp-config.php 檔案」的錯誤訊息,只要自己手動建立就可以了。
vi /var/www/html/wordpress/wp-config.php
還要調整一下權限。
chown apache:apache /var/www/html/wordpress/wp-config.php
恭禧~~~
安裝步驟已經到了最後一步,只要輸入部落格的基本資料就完成了。
網站標題
帳號 / 密碼
確認密碼
你的電子郵件
搜尋引擎可見度
須注意:
密碼請一定要自己手動設計過,不然,忘計時,請把資料庫砍掉重來,謝謝~~~~
(我已經砍了兩次~~~~~~~~~~~)
大功告成!
這時候就可以用剛剛建立的帳號密碼登入 Wordpress 的管理介面。
使用Wordpress程序架構的網站如果需要在網站後台升級、安裝主題或者插件的時候,總是會提示需要我們提供FTP信息的界面。有這樣的字樣提示"要執行請求的操作,WordPress需要訪問您網頁服務器的權限。請輸入您的FTP登陸憑據以繼續。如果您忘記了您的登陸憑據(如用戶名、密碼),請聯繫您的網站託管商"。這個是比較麻煩的,現在就嘗試解決一下!
第二,如果是其他的可以使用在wp-config.php文件中添加腳本方式。
vi /var/www/html/wordpress/wp-config.php
define("FS_METHOD","direct");
define("FS_CHMOD_DIR", 0777);
define("FS_CHMOD_FILE", 0777);
若是你可以順利更新恭喜你,正式架好了,若是你運氣還是跟我依樣背,下載完一直說安裝失敗,請按照下面設定:
wordpress安裝到html目錄(即/ var / www / html)的根目錄並在該目錄上運行這兩個命令
find /var/www/html -type f -exec chmod 664 {} \;
find /var/www/html -type d -exec chmod 775 {} \;
確認wordpress的權限是否正確配置。
若是還不行,請把SELinux看作一個因素,發現文件上的SELinux上下文是不同的:
chcon -R --type httpd_sys_rw_content_t /var/www/html/
若無法使用該--type選項,用這個命令來使它工作
chcon --reference=/var/www/html/wp-content -R /var/www/html/
原則上,到這裡是可以成功更新的(我成功了~~~)
版主您好:
回覆刪除謝謝您的整理與分享,
我找過國內外許多的資料,
卻沒有看到像您這麼詳細的操作步驟,
剛剛按照您的方式操作後,終於更新成功,
我的部分是在最後一部設定SELinux的權限後,才更新成功的!
Bryant
很開心能幫上你的忙
刪除