我們已經完成了 建置 Nginx、MariaDB、PHP 7 的 LEMP Server 實作之後,有些朋友在說:我是很想換成 LEMP 架構,可是暫時還沒辦法放下 Apache 跟 MySQL。
OK!真的不難,Let's try it ~~~
話說,在 Linux 界提到 Apache 這個字,通常指的是 Web Server,其實它還出現在這些地方。
- Apache Software Foundation
Apache 軟體基金會是 Open Source 界的超級大咖,貢獻了許多舉足輕重的軟體,除了 HTTP Server 之外,像是 Hadoop、HBase、Traffic Server、Tomcat ... 等,前陣子還接收了 Open Office 到旗下。 - Apache License
他們釋出了這麼多軟體,對授權條款也非常的大方,不管是複製、改寫、甚至是商業用途都沒有問題,幾乎沒有任何的要求,只有要求明確標示作者及所有貢獻者的聲明,詳細說明請參閱:- Open Foundry - Apache License 2.0 (Apache 2.0)
- Open Foundry - 利用 Apache-2.0 程式所應遵守的義務規定
- Open Foundry - 化簡為繁的 Apache-2.0 授權條款
事前準備
加入 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 Server 2.4.18
http://apache.stu.edu.tw//httpd/httpd-2.4.18.tar.gz - MySQL Community Server 5.7.10-1
http://dev.mysql.com/get/Downloads/MySQL-5.7/mysql-community-5.7.10-1.el7.src.rpm - PHP 7.0.2
http://tw1.php.net/get/php-7.0.2.tar.gz/from/this/mirror
開始設定
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 撰文。
0 意見 :
張貼留言