這篇要跟大家分享如何在CentOS7當中架設網站伺服器(Apache + PHP7 + MariaDB )[LAMP],為了方便測試我們用VirtualBox來模擬。

若還不知道如何使用VirualBox或者是安裝CentOS7的讀者,可以先閱讀以下兩篇:

安裝Apache 

升級更新yum

更新 yum 套件,輸入以下指令:

sudo yum update

會出現如下圖,問您是否要更新。輸入 Y 並按下[ Enter ]

virualbox.jpg

然後系統會先去抓升級檔,完成後有可能會出現以下訊息,問您是否要升級。一樣輸入 Y 並按下[ Enter ]

virualbox.jpg

等一小段時間後,會出現 Complete! 字樣。表示已升級完畢!!

安裝Apache

輸入以下指令,開始安裝apache

sudo yum install httpd

相同地它也會問您是否要安裝。一樣輸入 Y 並按下[ Enter ]

virualbox.jpg

等一小段時間後,會出現 Complete! 字樣。表示已升級完畢!!

啟動Apache

sudo systemctl start httpd.service

設定Apache,隨CentOS開機自動啟動

sudo systemctl enable httpd.service

到這邊Apache就安裝完成了。我們可以用以下指令查看Apache的狀態

systemctl status httpd.service  

會出現下圖,Active: active(running) 表示 Apache 運作中

virualbox.jpg

安裝MariaDB

這部份我們要來安裝mariadb。其實,mariadb跟MySQL算是一樣的東西。都是MySQL的開發者開發的,只是他將原本的MySQL賣給甲骨文後,又建立一個免費的mariadb(完全相容於MySQL)。至於為何要改用mariadb呢??原因是MySQL賣給甲骨文後有可能未來會變成商業軟體,且mariadb據說速度也比MySQL快一些。扯遠了,回歸正題讓我們在CentOS上安裝MariaDB吧!!

sudo yum install mariadb-server mariadb

還是跟上面一樣,依然會詢問您是否要安裝。一樣輸入 Y 並按下[ Enter ]

virualbox.jpg

等一段時間後,會出現 Complete! 字樣。

啟動MariaDB

sudo systemctl start mariadb

設定初始化MariaDB

sudo mysql_secure_installation

輸入後,它會開始問您一系列的問題!! 首先,它會要求您輸入root的密碼

但我們根本沒有設定過,所以直接按下[enter]就好

virualbox.jpg

設定root密碼

接下來,它會問您是否要設定root密碼。(建議:選擇 Y ,設定root密碼)

virualbox.jpg

設定root密碼。請務必記住!! (要輸入兩次)

virualbox.jpg

註:輸入密碼並不會顯示 * 或其他訊息。所以不要以為是自己鍵盤壞了 !! 

刪除匿名使用者

此部分它問您是否要移除匿名使用者(anonymous users)。MariaDB預設是允許任何人都可以登入MariaDB且不需密碼的,移除匿名使用者後就變成需要有帳號和密碼才可以訪問MariaDB。

一般情況下,我們不太可能會希望任何人都可以訪問我們的資料庫,所以此部分選擇 Y ,刪除匿名使用者。

virualbox.jpg

禁止遠端root登入

root帳號擁有至高的權限,因此基於安全性考量,通常不允許遠端登入使用root登入。也就是說將root限制成只能在localhost本地端才可登入。

virualbox.jpg

刪除Test測試資料庫

MariaDB預設會建立一個Test的資料庫。此部分問您是否要將它刪除。(刪掉吧~~留著也沒用....)

virualbox.jpg

重新載入權限表

virualbox.jpg

到這邊我們就完成MariaDB的初始化設定了!!

自動啟動MariaDB

如果我們要讓MariaDB,隨著CentOS啟動時自動啟動的話,輸入以下指令:

sudo systemctl enable mariadb.service

安裝php7

這個部分我們將要安裝PHP7,若要裝PHP5版的話,就請自行Google一番吧(網路上應該有很多)

安裝epel-release

這算是一個附加軟體包


yum install epel-release

virualbox.jpg

一樣輸入 Y 並按下[ Enter ] 。(這就不用我再多說了吧 哈哈)

接著執行此段,這樣我們才有辦法安裝PHP7

rpm -Uvh https://mirror.webtatic.com/yum/el7/webtatic-release.rpm

安裝PHP7

輸入以下指令,開始安裝PHP7

sudo yum install php70w

嗯...它又來問是否要繼續安裝(下載)了

virualbox.jpg

再次確認問您是否要安裝

virualbox.jpg

再等一小段時間後,便會看到 Complete! 字樣 。 YA 總算安裝完成了,但還沒完還有後續呢...

測試PHP

可以透過這個指令來測試我們安裝的PHP:

php -v

virualbox.jpg

安裝PHP擴充模組

下面將會安裝一些PHP常會用到的擴充模組,若沒有需求此部分可跳過

yum install php70w-xml php70w-soap php70w-xmlrpc

yum install php70w-mbstring php70w-json php70w-gd php70w-mcrypt

安裝完以後,可以透過以下指令查看目前可用的擴充模組


yum search php70

測試網站   

在前面我們已經順利將 Apache 、 PHP 、 MariaDB 安裝完成。現在我們可以開始測試網站伺服器是否有架設成功。

查詢ip   

要訪問我們的測試網站,首先我們需要先知道自己的ip,我們可以透過以下指令得知

sudo ip addr show

在正式環境下我們應該會看到 eth0 的裝置,但虛擬機下應該只會看到 enp0s3 裝置。

且此裝置的ip是一個很奇怪的ip ( 10.0.2.15 ) ,我們在實體主機的瀏覽器下輸入這個ip,會發現是沒有用處的!!

virualbox.jpg

這時我們要修改我們的虛擬機網路設定

點選虛擬機->設定值->網路->點選附加到橋接介面卡>確定

virualbox.jpg

重新啟動系統

修改完設定後,我們需要重新啟動CentOS,才會有變化。輸入以下指令,重新啟動:

reboot

重新查詢虛擬機ip

接下來,我們再次查詢虛擬機的ip,會發現到enp0s3這個的ip已經變成正常的區域網路ip了

virualbox.jpg

訪問測試網站

現在我們可以用實體主機開啟瀏覽器,輸入上圖ip造訪測試網站。這時你有可能會有兩個結果~~

一個是出現下圖畫面,恭喜你成功了!! 但請檢察一下,是否是因為沒有裝防火牆

安裝防火牆

yum install firewalld

啟動防火牆

systemctl enable firewalld

systemctl start firewalld

查看防火牆狀態

systemctl status firewalld

virualbox.jpg

但您有可能會有很大的機率是看到錯誤畫面。一般來說都是因為被防火牆給擋住了,所以我們必須設定防火牆。

設定防火牆,開啟80port端口   

輸入以下指令,開啟80端口 :

firewall-cmd --zone=public --add-port=80/tcp --permanent

重新啟動防火牆

firewall-cmd --reload

再次造訪測試網站,應該就可以正常訪問了。

 安裝phpMyAdmin   

phpMyAdmin算是最常見的MySQL管理工具了。

sudo yum install phpMyAdmin

它還是會問您要不要安裝(下載),選擇 Y 就對了!!

然後它還會再問您一次要不要安裝,依然選擇 Y

接著我們用實體電腦輸入 測試網站的ip + phpMyAdmin 會發現進不去

http://192.168.11.105/phpMyAdmin

原因是因為,phpMyAdmin預設只允許透過本地登入(localhost),所以我們需要修改一下設定

sudo vi /etc/httpd/conf.d/phpMyAdmin.conf

我們會透過vi文字編輯器進入到phpMyAdmin.conf文件內 (如下圖)

virualbox.jpg

但剛開始進入,只能瀏覽文件,無法修改。我們需要按一下鍵盤的 「i」 鍵,會出現 -- INSERT --

virualbox.jpg

這時我們就可以編輯此文件了!! ( 自己也研究了好久... 不會用vi 阿~~)

移動光標,到下圖位置。將require ip 127.0.0.1require ip :: 1 前面加上 「#」,並在下面加上

require all granted

virualbox.jpg

接著,按下鍵盤「ESC」,在輸入「:wq 」後,在按下 enter 就可以存檔並退出了

瀏覽器前往phpMyAdmin   

當我們再次前往 http:// ip位置 /phpMyAdmin 便可以成功進入了

但一般正式環境還是希望能將它限制在只允許本地端ip登入。

其它配置

Apache配置

進入到apache配置文件

sudo vi /etc/httpd/conf/httpd.conf

允許.htaccess 

找到 <directory "/var/www/html" > ,附近有 AllowOverride None 改成 AllowOverride All

virualbox.jpg

修改完以後,一樣 按下鍵盤「ESC」,在輸入「:wq 」後,在按下 enter 就可以存檔並退出了

註: Linux 可以使用 「Shift + Pg Up 」和 「Shift + Pg Dn 」 向上瀏覽或向下瀏覽

PHP配置

進入到php配置文件

sudo vi /etc/php.ini

允許短標籤

short_open_tag 改成 On

virualbox.jpg

其它詳細配置改天再說吧~~

修改完配置並存檔後,接著要重新啟動 AppacheMariaDB

重新啟動 Appache

systemctl restart httpd.service

重新啟動 MariaDB

systemctl restart mariadb.service

測試PHP

讓我們在網站伺服器內建立一個新的文件,測試PHP腳本運作

切換到網站目錄

cd /var/www/html

建立新文件 test.php

sudo vi test.php

輸入 hello world phpinfo() 或其它內容,當作測試。

virualbox.jpg

修改完以後,一樣 按下鍵盤「ESC」,在輸入「:wq 」後,在按下 enter 就可以存檔並退出

瀏覽器訪問測試網站

http:// ip位置 /test.php

virualbox.jpg

測試成功 !! 





文章轉載或引用,請保留原文出處!!3Q