CentOS 7 安裝 Apache, MySQL, PHP 指南

導(dǎo)語

一個 LAMP 軟件棧通常由多個開源軟件組合而成,它們合力驅(qū)動一個服務(wù)器去運行 web 站點和應(yīng)用。LAMP 這個術(shù)語實際上是一個由 Linux 操作系統(tǒng),Apache web 服務(wù)器,MySQL 數(shù)據(jù)庫服務(wù)器,以及 PHP 編程環(huán)境組合縮略而成的。

在這篇指南中,我們將為一個搭載 CentOS 7 操作系統(tǒng)的服務(wù)器安裝 LAMP 軟件棧。CentOS 已經(jīng)滿足了 LAMP 軟件棧的第一個需求:一個 Linux 操作系統(tǒng)。


預(yù)備條件

在繼續(xù)閱讀這篇指南之前,請確認你使用具有 root 權(quán)限的用戶登錄了 CentOS。如果對于當前用戶如何取得 root 權(quán)限存在疑問,請咨詢服務(wù)器的管理人員。


第一步 —— 安裝 Apache

Apache 是目前世界上最廣泛使用的 web 服務(wù)器,這使得它成為運行網(wǎng)站的絕佳選擇。

利用 CentOS 的軟件安裝包管理系統(tǒng) yum,我們可以輕易地安裝 Apache。它為我們提供了無痛式地從 CentOS 維護的倉庫獲取并安裝絕大多數(shù)軟件的方式。你可以前往這里 (https://www.digitalocean.com/community/tutorials/how-to-set-up-and-use-yum-repositories-on-a-centos-6-vps) 獲取更多如何使用 yum 安裝包管理系統(tǒng)的指導(dǎo)。

對于我們的目的而言,安裝 Apache 只需要在 CentOS 命令終端敲入這條命令就行了:

$ sudo yum install httpd

由于使用了 sudo 命令,這些操作將以 root 權(quán)限執(zhí)行。如果當前用戶的身份不是 root,CentOS 將會要求你輸入當前用戶的密碼,以驗證你的意圖。

不用一會兒,你的 web 服務(wù)器就安裝好了。

一旦安裝成功,你就可以設(shè)置服務(wù)器啟動時就開啟 Apache 服務(wù):

$ sudo systemctl enable httpd.service

你可以通過重新啟動服務(wù)器,然后在命令行終端中敲入這條命令來驗證 Apache 服務(wù)是否在服務(wù)器啟動時自動開啟了:

$ sudo systemctl is-enabled httpd.service

如果你看到了這樣的響應(yīng):

enabled

則說明 Apache 服務(wù)已經(jīng)配置為在服務(wù)器啟動時自動開啟了。

在服務(wù)器上啟動 Apache 服務(wù)的命令為:

$sudo systemctl start httpd.service

重新啟動 Apache:

$sudo systemctl restart httpd.service

停止 Apache:

$sudo systemctl stop httpd.service

以及

如果你的服務(wù)器正在運行防火墻,請運行下列命令以允許它進行 HTTP 和 HTTPS 通信:

$sudo firewall-cmd --permanent --zone=public --add-service=http

$sudo firewall-cmd --permanent --zone=public --add-service=https

$sudo firewall-cmd --reload

在 Apache 啟動的情況下,你可以在瀏覽器里訪問服務(wù)器的公網(wǎng) IP 地址以驗證一切如計劃那樣順利地進行(如果你現(xiàn)在還不知道如何獲取服務(wù)器的公網(wǎng) IP 地址,請參考下一標題中的內(nèi)容):

http://<服務(wù)器的公網(wǎng) IP 地址>/

你將會看到一個出于通知和測試目的而存在的默認 CentOS 7 Apache 網(wǎng)頁。它應(yīng)該長這樣子:

如果你看到了這個頁面,那么你的 web 服務(wù)器現(xiàn)在已經(jīng)正確地安裝了。

如何找到服務(wù)器的公網(wǎng) IP 地址

如果你不知道服務(wù)器的公網(wǎng) IP 地址是什么,你可以使用多種方式找到它。通常情況下,它就是你通過 SSH 用以連接服務(wù)器的地址。

在命令行終端中,你有多種方式找到它。首先,你可以通過下面這條命令,讓 iproute2 工具幫你找出服務(wù)器的 IP 地址:

$ ip addr show eth1 | grep inet | awk '{ print $2; }' | sed 's/\/.*$//'

這將會返回一到兩行結(jié)果。它們都是正確的 IP 地址,但是你的計算機可能只能使用其中的一條,所以隨意試試其中的每一條。

另一種方法是讓一個外部組織告訴你它是怎樣找到你的服務(wù)器的,你可以通過詢問特定的服務(wù)器來獲知自己的 IP 地址:

$ curl http://icanhazip.com


第二步 —— 安裝 MySQL

MySQL 是一個 web 服務(wù)器上流行的數(shù)據(jù)庫管理系統(tǒng)。然而,從 CentOS 7 的軟件倉庫不再提供 MySQL 的安裝包,轉(zhuǎn)而提供 MariaDB 作為默認的數(shù)據(jù)庫管理系統(tǒng)。MariaDB 作為 MySQL 的簡易替代品,足以勝任通常意義上你對的數(shù)據(jù)庫系統(tǒng)的需求 (https://mariadb.com/kb/en/mariadb/mariadb-vs-mysql-compatibility/)。你可以前往這里 (https://www.linode.com/docs/databases/mariadb/how-to-install-mariadb-on-centos-7) 獲取在 CentOS 7 上安裝 MariaDB 的指導(dǎo)。

如果你不論如何都更需要 MySQL 作為 web 服務(wù)器上的數(shù)據(jù)管理系統(tǒng),那么請繼續(xù)閱讀下面這部分指南,它將指引你如何在運行 CentOS 7 的服務(wù)器上安裝并配置 MySQL 數(shù)據(jù)庫。

開始安裝 MySQL 之前,請更新系統(tǒng)上的軟件到最新版:

$ sudo yum update

由于 CentOS 7 的軟件倉庫不再提供 MySQL 的安裝包,我們必須從 MySQL 社區(qū)倉庫 (https://dev.mysql.com/downloads/repo/yum/) 獲取 MySQL 安裝包。

首先,獲取 MySQL 社區(qū)倉庫:

$ wget http://repo.mysql.com/mysql57-community-release-el7-8.noarch.rpm

載入 MySQL 社區(qū)倉庫:

$ sudo yum install mysql57-community-release-el7-8.noarch.rpm

更新系統(tǒng)上的軟件到最新版:

$ sudo yum update

在更新過程中,你會被詢問是否想接受這個 .rpm 文件 GPG 校驗得出的結(jié)果,如果沒有錯誤或者不匹配出現(xiàn),請輸入 y 以完成更新。

接著,我們就能一如往常一樣安裝 MySQL 了:

$ sudo yum install mysql-server

接下來,請按照這里的指南,重置 MySQL root 賬戶的密碼為你能夠記住的密碼:

http://stackoverflow.com/questions/33510184/change-mysql-root-password-on-centos7

然后,啟動 MySQL 服務(wù):

$ sudo systemctl start mysqld

現(xiàn)在 MySQL 數(shù)據(jù)庫已經(jīng)開始運行了。我們希望運行一個安全防御腳本,將一些危險的默認配置移除掉,并為我們的數(shù)據(jù)庫系統(tǒng)加上一點安全機制。請在命令行終端里運行下面這一條命令:

$ sudo mysql_secure_installation

命令行終端將會提示你輸入 MySQL 內(nèi) root 用戶的密碼。鍵入上面重置 MySQL root 密碼后的新密碼。然后,命令行終端將會要求你更新 root 用戶的密碼。

Enter current password for root:

The existing password for the user account root has expired. Please set a new password.

New password:

Re-enter new password:

The 'validate_password' plugin is installed on the server.

The subsequent steps will run with the existing configurationof the plugin.

Using existing password for root.

對于命令行終端接下來給出的選擇,你應(yīng)該敲擊 ENTER 鍵選擇忽略修改 root 密碼,接著鍵入 y 同意移除掉出于示例目的而存在的用戶,而后鍵入 y 同意禁用遠程登錄 root 用戶,再次鍵入 y 同意移除測試數(shù)據(jù)庫,最后鍵入 y 載入這些新的規(guī)則使得 MySQL 立即響應(yīng)我們做的變更。

最后,如果希望 MySQL 服務(wù)在服務(wù)器啟動時自動開啟,那么你應(yīng)該使用這一條的命令:

$ sudo systemctl enable mysqld.service

你可以通過重新啟動服務(wù)器,然后在命令行終端中敲入這條命令來驗證MySQL 服務(wù)是否在服務(wù)器啟動時自動開啟了:

$ sudo systemctl is-enabled mysqld.service

如果你看到了這樣的響應(yīng):

enabled

則說明 MySQL 服務(wù)已經(jīng)配置為在服務(wù)器啟動時自動開啟了。

現(xiàn)在,你的數(shù)據(jù)庫系統(tǒng)已經(jīng)安裝妥當,我們可以繼續(xù)后面的內(nèi)容了。


第三步 —— 安裝 PHP

在我們的 web 軟件棧中,PHP 是一個能夠處理業(yè)務(wù)邏輯和數(shù)據(jù),并動態(tài)生成內(nèi)容展現(xiàn)給用戶的軟件。它可以運行腳本,連接到 MySQL 數(shù)據(jù)庫以存取數(shù)據(jù),以及將處理過的內(nèi)容遞交給 web 服務(wù)器來顯示。

我們可以再次利用 yum 安裝包管理系統(tǒng)來安裝我們的組件?,F(xiàn)在,我們打算將 php-mysql 也加入到我們將要安裝的軟件序列中:

$ sudo yum install php php-mysql

這里安裝 PHP 應(yīng)該不會有任何問題。我們需要重新啟動 Apache web 服務(wù)器以便它能夠與 PHP 協(xié)作。你可以通過這條命令達到目的:

$ sudo systemctl restart httpd.service

安裝 PHP 模塊

為了增強 PHP 的功能,我們可以選擇性地安裝一些額外的模塊。

在命令行終端敲入這條命令,你就可以找到所有可以獲取到的 PHP 模塊選項和庫:

$ yum search php

響應(yīng)的結(jié)果就是所有你能夠選擇安裝的組件。其中包含了每個可選組件的描述:

php-bcmath.x86_64 : A module for PHP applications for using the bcmath library

php-cli.x86_64 : Command-line interface for PHP

php-common.x86_64 : Commonfiles for PHP

php-dba.x86_64 : Adatabase abstraction layer module for PHP applications

php-devel.x86_64 : Filesneeded for building PHP extensions

php-embedded.x86_64 : PHPlibrary for embedding in applications

php-enchant.x86_64 : Enchantspelling extension for PHP applications

php-fpm.x86_64 : PHPFastCGI Process Manager

php-gd.x86_64 : Amodule for PHP applications for using the gd graphics library

. . .

如果需要獲取每個模塊更多的信息,你可以通過互聯(lián)網(wǎng)搜索,或者直接在命令行終端中敲入這條命令查看:

$ yum info package_name

響應(yīng)中將會包含許多的信息,其中一個名為 Description 的域包含了這個模塊提供的功能更為詳盡的描述。

舉個例子,如果要獲知 php-fpm 模塊的功能,我們只要在命令行終端中敲入下列指令就可以了:

$ yum info php-fpm

順著眾多其他信息往下看,你將會找到形如這樣的信息:

. . .

Summary ? ?: PHPFastCGI Process Manager

URL ? ? ? ? ? ?: http://www.php.net/

License ? ? ? : PHPand Zend and BSD

Description : PHP-FPM (FastCGI Process Manager) is an alternative PHP FastCGI

? ? ? ? ? ? ? ? ? ?: implementation with some additional features useful for sites of

? ? ? ? ? ? ? ? ? ?: any size, especially busier sites.

在考究之后,如果你決定要安裝一個模塊包,你可以像我們之前安裝其他軟件時的做法一樣,使用 yum install 命令達到目的。

如果我們決定了 php-fpm 就是我們需要的,那么我們可以在命令行終端鍵入:

$ sudo yum install php-fpm

如果你想安裝多于 1 個的模塊包,你可以在命令行終端中鍵入 yum install 后,列出你想安裝的每個模塊包,并使用空格區(qū)分,就像下面這樣子:

$ sudo yum install package1 package2…

現(xiàn)在,你的 LAMP 軟件棧已經(jīng)安裝并配置妥當了。但我們?nèi)孕枰獪y試一下 PHP。


第四步 —— 測試你 Web 服務(wù)器上的 PHP 處理程序

為了測試系統(tǒng)已經(jīng)配置得適合 PHP 運行,我們可以創(chuàng)建一個非常簡易的 PHP 腳本。

我們將這個腳本命名為 info.php。為了讓 Apache 能夠正確地找到并為之服務(wù),它必須保存在一個稱為『web 目錄』特殊的目錄中。

在 CentOS 7 中,這個目錄位于 /var/www/html/。我們可以通過下面這條命令在此創(chuàng)建一個文件:

$ sudo vi /var/www/html/info.php

這將會打開一個空白文件,敲擊小寫字母 I 即可進行編輯。我們想在文件中輸入下列 PHP 代碼組成的文本:

<?php phpinfo(); ?>

然后,敲擊 ESC 鍵并鍵入 :wq! 即可保存并關(guān)閉這個文件。

現(xiàn)在我們可以測試 web 服務(wù)器是否能夠正確地顯示由 PHP 腳本生成的內(nèi)容了。我們可以嘗試通過 web 瀏覽器訪問這個頁面。你需要再次獲取服務(wù)器的公網(wǎng) IP 地址。

你希望訪問的地址就是:

http://<服務(wù)器的公網(wǎng) IP 地址>/info.php

你看到的頁面應(yīng)該像下面這樣子:

如果你的瀏覽器成功地顯示了這個頁面,那么你的 PHP 就像預(yù)期中的那樣正常工作了。

你很可能想要在測試之后移除掉這個文件,因為它事實上可以將服務(wù)器的信息展現(xiàn)給未授權(quán)的用戶。為此,我們需要在命令行終端中鍵入下面這條命令:

$ sudo rm /var/www/html/info.php

以后若需要,你總能重新創(chuàng)建這個頁面來獲取這些信息。


結(jié)論

現(xiàn)在我們已經(jīng)安裝了 LAMP 軟件棧,對于下一步需要做什么,你有許多的選擇。大體上,你已經(jīng)安裝了一個允許你在服務(wù)器上部署各種各樣網(wǎng)站和 web 軟件的平臺。


參考鏈接

https://www.digitalocean.com/community/tutorials/how-to-install-linux-apache-mysql-php-lamp-stack-on-centos-7

https://www.linode.com/docs/databases/mysql/how-to-install-mysql-on-centos-7

http://dev.mysql.com/doc/refman/5.7/en/linux-installation-yum-repo.html

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • php+mysql+apache+centos 編譯安裝 領(lǐng)導(dǎo)要求先保證php環(huán)境穩(wěn)定,然后再去考慮其他,例如性能...
    dnaEMx閱讀 2,470評論 1 16
  • 【MySQL】Linux下MySQL 5.5、5.6和5.7的RPM、二進制和源碼安裝 1.1BLOG文檔結(jié)構(gòu)圖 ...
    小麥苗DB寶閱讀 10,861評論 0 31
  • 大河網(wǎng)上有這樣一條新聞令人感慨頗多,有6名游客深山向一位貧困老人討水喝 此后的6年,每逢臘月二十三,都堅持給他送米...
    容瑤閱讀 447評論 0 1
  • 所謂的自由是什么,橫在人們周圍的枷鎖各種各樣,我們生活在這個多事的社會中,剛跨過一個坎,又來了另一個坎,這看似多變...
    lightorange閱讀 270評論 0 1
  • 女兒在練歌,忽然茫然. 被我拖來拖去學(xué)習乖巧的她,心底偶爾來點點的小抵抗都會被我的嚎叫給壓制...被冠上母愛的東西...
    冰詩盈閱讀 174評論 0 0

友情鏈接更多精彩內(nèi)容