[CentOS 7] 整合 Apache、MySQL、PHP 7 組成 LAMP Server

by 1月 19, 2016 0 意見        

我們已經完成了 建置 Nginx、MariaDB、PHP 7 的 LEMP Server 實作之後,有些朋友在說:我是很想換成 LEMP 架構,可是暫時還沒辦法放下 Apache 跟 MySQL。

OK!真的不難,Let's try it ~~~

話說,在 Linux 界提到 Apache 這個字,通常指的是 Web Server,其實它還出現在這些地方。

事前準備


加入 MySQL 套件庫
sudo rpm -Uvh https://dev.mysql.com/get/mysql57-community-release-el7-7.noarch.rpm

EPEL 套件庫。
sudo rpm -Uvh https://dl.fedoraproject.org/pub/epel/epel-release-latest-7.noarch.rpm

還有 Webtatic 套件庫
(謎之音:攻城獅的爛個性又發作了,在 LEMP 沒搞定,到了實作 LAMP 還是硬要試試看。)
sudo rpm -Uvh https://mirror.webtatic.com/yum/el7/webtatic-release.rpm

更新套件庫的快取資料,這邊同時會把預設的 MariaDB 換下來。
yum -y update


安裝主要套件


老規矩,用 yum 指令安裝。
sudo yum -y install httpd mysql-server php70w php70w-mysql

安裝過程要花一些時間。

同樣為了偉大的真勇者們留下 Source Code 傳送門。

開始設定


Apache

允許防火牆讓 HTTP、HTTPS 封包通過。
sudo firewall-cmd --permanent --zone=public --add-service=http
sudo firewall-cmd --permanent --zone=public --add-service=https
sudo firewall-cmd --reload


啟動 httpd,並讓它在開機後自動啟動。
sudo systemctl start httpd
sudo systemctl enable httpd

MySQL

啟動 MySQL Server,並讓它在開機後自動啟動。
sudo systemctl start mysqld
sudo 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 服務。
sudo systemctl stop mysqld

加入自訂環境變數,暫時不檢查權限。
sudo systemctl set-environment MYSQLD_OPTS="--skip-grant-tables"

啟動 MySQL 服務。
sudo 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 服務。
sudo systemctl stop mysqld

取消自訂環境變數。
sudo systemctl unset-environment MYSQLD_OPTS

啟動 MySQL 服務。
sudo systemctl start mysqld

這樣子就可以正常登入了。
mysql -u root -p

這邊請直接依照 建置 Nginx、MariaDB、PHP 7 的 LEMP Server 的 MariaDB 設定說明,將這些安全性設定值依需求做調整。
mysql_secure_installation

PHP

為 Apache 加入 PHP 的支援,步驟實在超簡單,就是「什麼都不用做」,只要在裝好 PHP 之後,重新啟動 Apache 就可以了。
sudo systemctl restart httpd


實際測試


我們直接連上 Apache 來看一下,看到這個畫面就代表 OK 了。

接著,建立一個 PHP 測試檔。
sudo vi /var/www/html/info.php

呼叫內建函數。
<?php phpinfo(); ?>

就可以看到 PHP 模組啟動成功。

MySQL 的支援模組也啟動成功了。


碎碎念


難怪大家愛用 LAMP Server,因為就算什麼都不懂,也沒操作過,只要會安裝、會啟動服務,Web Service 就能動了 ......

另外,Webtatic 是怎麼了,真的對 Nginx 那麼沒有愛嗎?! .... XDDD

參考資料


圖片來源

  • 各套件官網

更新紀錄

  • 2016/01/19 撰文。

Heracles Jam,江湖人稱「海公公」

IT 技術家 - 創站部落客

一個常用 Windows、慣用 macOS、愛用 Linux 的 3C 阿宅
現職 MIS / 業界講師 / 資訊顧問 / 部落客

0 意見 :

張貼留言