CentOS 7 LAMP搭建---RPM安裝
1、簡單安裝Apache,實現基於主機名虛擬主機功能
2、Apache+PHP+MariaDB,搭建LAMP
3、搭建phpmyadmin實現數據庫圖形化管理:
4、爲pma.stux.com提供https服務
5、搭建wordpress論壇
6、搭建discuz論壇
虛擬機相關信息--
[root@localhost ~]# uname –r //查看內核版本 3.10.0-229.el7.x86_64 [root@localhost ~]# cat /etc/redhat-release //查看系統發行版 CentOS Linux release 7.1.1503 (Core) [root@localhost ~]# ip add |awk -F '[ /]+''/inet\>/&&!/127.0.0.1/ {print $3}' //本機的IP地址 172.16.113.52 [root@localhost httpd]# systemctl stop firewalld.service //關閉系統防火牆 [root@localhost httpd]# setenforce 0 //關閉selinux [root@localhost httpd]# sed -i"s/SELINUX=enforcing/SELINUX=disabled/" /etc/selinux/config //永久關閉selinux
1、簡單安裝Apache,實現基於主機名虛擬主機功能
實現基於主機名的虛擬主機
pma.stux.com
wp.stux.com
dz.stux.com
需要的軟件包:
httpd.x86_64
安裝軟件包:
[root@localhost ~]# yum install -y httpd //需事先配置好yum源 [root@localhost ~]# rpm -q httpd //查詢軟件包是否安裝成功 httpd-2.4.6-31.el7.centos.1.x86_64
//hpptd安裝完成後,配置文件會安裝在/etc/httpd/conf/httpd.conf以及/etc/httpd/conf.d/*.conf結尾的文件都是其配置文件。網頁的主目錄默認爲/var/www/html,但此次實驗目的是實現基於主機名的虛擬主機配置,因此,將不會用到默認網站文件路徑。另外,httpd2.4將配置文件實行了“分片式管理”,將各個不同的功能分割成多個配置文件,放置在/etc/httpd/conf.modules.d/。
2) Apache配置文件的幾個重要參數說明:
ServerRoot "/etc/httpd" //Apache的默認工作路徑 Listen 80 //服務器監聽的端口,格式爲IP:PORT,IP省略時,表示監聽本機的所有地址 DocumentRoot "/var/www/html" //網頁文件的根目錄;比如說在服務器的/var/www/html下有個a.txt,若想是用URL訪問,則URL路徑爲:http://172.16.113.52/a.txt,cichu 此處的/a.txt就是服務器的/var/www/html <Directory> //相當於一個容器,限定某一範圍的指令,作用於指定的文件系統目錄及其所有子目錄,容器的結尾用</Directory>將內容封裝起來 <Location> //相當於一個容器,限定某一個網頁,只對某一網頁進行規則限定,容器結尾用</Location>封裝起來
3) 編輯配置文件,禁用中心主機:
[root@localhost ~]# vim /etc/httpd/conf/httpd.conf
#DocumentRoot "/var/www/html" //Apache的配置中,儘量不要使用中心主機與虛擬主機共存,避免產生衝突,故,此處註釋中心主機的網站根目錄
4) 創建虛擬主機的配置文件:
[root@localhost ~]# cd /etc/httpd/ [root@localhost httpd]# vim conf.d/vhosts.conf //配置文件要以.conf結尾 <VirtualHost 172.16.113.52:80> //固定格式 Servername pma.stux.com //定義虛擬主機主機名 DocumentRoot "/web/vhosts/pma" //此虛擬主機的網頁文件目錄 ErrorLog "logs/error_pma.log" //定義錯誤日誌路徑,此路徑相對於主配置文件中的“ServerRoot”項 CustomLog "logs/access_pma.log" combined //定義訪問日誌的路徑,combined爲主文件中LogFormat定義的日誌格式 </VirtualHost> <VirtualHost 172.16.113.52:80> Servername wp.stux.com DocumentRoot "/web/vhosts/wp" ErrorLog "logs/error_wp.log" CustomLog "logs/access_wp.log" combined </VirtualHost> <VirtualHost 172.16.113.52:80> Servername dz.stux.com DocumentRoot "/web/vhosts/dz" ErrorLog "logs/error_dz.log" CustomLog "logs/access_dz.log" combined </VirtualHost> <Directory "/web/vhosts"> AllowOverRide none require all granted </Directory>
需要特別注意一下:httpd2.4版本需要對每個網站文件目錄授權,若不做授權操作,客戶端是無法正常訪問網頁的。其之前版本不需要
5) 爲虛擬主機創建網頁文件目錄:
[root@localhost httpd]# mkdir -pv /web/vhosts/{pma,wp,dz} mkdir: created directory ‘/web’ mkdir: created directory ‘/web/vhosts’ mkdir: created directory ‘/web/vhosts/pma’ mkdir: created directory ‘/web/vhosts/wp’ mkdir: created directory ‘/web/vhosts/dz’
6) 爲三個主機分別提供網站默認主頁:index.html文件
[root@localhost httpd]# echo "Page atpma" >> /web/vhosts/pma/index.html [root@localhost httpd]# echo "Page atdz" >> /web/vhosts/dz/index.html [root@localhost httpd]# echo "Page atwp" >> /web/vhosts/wp/index.html
7) 檢驗配置文件是否有誤,若無誤則啓動httpd
[root@localhost httpd]# httpd -t //若出現set ServerName之類的錯誤,可忽略 Syntax OK [root@localhost httpd]# systemctl start httpd.service//CentOS7上服務管理命令 [root@localhost httpd]# ss -tan | grep 80 //查看服務是否已啓動,80端口已處於監聽狀態 LISTEN 0 128 :::80 :::*
8) 設置開機自動啓動httpd服務
[root@localhost httpd]# systemctl enable httpd //設置開機自啓動 [root@localhost httpd]# systemctl list-unit-files | grep httpd //查看設置是否生效 httpd.service enabled
9) 測試—修改測試機的hosts文件(Windows:C:\WINDOWS\system32\drivers\etc\hosts)添加如下內容,並保存
瀏覽器訪問測試:
虛擬主機已生效
2、Apache+PHP+MariaDB,搭建LAMP
此實驗環境以上述基於主機名的虛擬主機爲基礎搭建:
需要的軟件包:
php.x86_64
php-mysql.x86_64 ---php支持mariadb的驅動
mariadb-server.x86_64
1) 安裝軟件包:
[root@localhost httpd]# yum install -y mariadb-server php php-mysql
注:需使用httpd的prefork模型搭建lamp,修改httpd的MPM,編輯/etc/httpd/conf.modules.d/00-mpm.conf,將對應的模塊開啓,其他模塊註釋掉即可
2) 啓動mariadb,並設置開機自動啓動:並重啓httpd
[root@localhost httpd]# systemctl start mariadb [root@localhost httpd]# systemctl list-unit-files | grep mariadb mariadb.service enabled [root@localhost httpd]# systemctl restart httpd
3) 編寫php以及mariadb的測試網頁:
在網站文件目錄下,例如在pma網站目錄(/web/vhosts/pma)創建並編寫index.php文件,內容如下
<?php $link=mysql_connect('localhost','root',''); if ($link) echo "OK"; else echo "Faulse"; phpinfo(); ?>
4) 在測試機的瀏覽器上輸入url:http://pma.stux.com/index.php,若顯示如下信息,則說明httpd、php、mariadb三者結合成功。
3、搭建phpmyadmin實現數據庫圖形化管理:
此實驗環境以上述基於主機名的虛擬主機爲基礎搭建:
1) 下載phpMyadmin軟件包
[root@localhost src]# cd /usr/local/src/
[root@localhostsrc]#wget https://files.phpmyadmin.net/phpMyAdmin/4.4.14.1/phpMyAdmin-4.4.14.1-all-languages.zip
//此鏈接爲官網(http://www.phpmyadmin.net/)的程序包下載地址,wget爲linux上的下載命令,若無此命令需yuminstall –y wget 或者,在其他環境下下載到程序包,通過軟件傳遞至主機即可
2) 解壓文件,並拷貝到網站文件目錄下
[root@localhost src]# unzip phpMyAdmin-4.4.14.1-all-languages.zip
//此軟件包爲zip壓縮格式,所以用unzip解壓(若無unzip命令,自行yum安裝) [root@localhost src]# rm -rf /web/vhosts/pma/* //清空網站目錄下的文件 [root@localhost src]# cp -r phpMyAdmin-4.4.14.1-all-languages /web/vhosts/pma/dbadmin //程序包拷貝到網站文件目錄下,名爲dbadmin
3) phpMyadmin需要依賴於php-mbstring.x86_64,若不安裝則會出現以下提示:
[root@localhost conf.modules.d]# yum install -y php-mbstring //安裝
4) 配置phpMyadmin
a創建配置文件
[root@localhost~]# cd /web/vhosts/pma/dbadmin [root@localhostdbadmin]# cp config.sample.inc.php config.inc.php
b配置
phpMyadmin的配置無需作多更改,只需要在$cfg['blowfish_secret'] = ''處填寫一個隨機數當做隨機密碼即可:
[root@dns-master-113~]# tr -dc A-Za-z0-9_ < /dev/urandom | head -c 30 | xargs S2MHMTvCfwT44BCYIw2OS3xrDFKcAt //生成一段隨機數
5) 重啓httpd服務,並做測試:
[root@localhost dbadmin]# systemctl restart httpd.service
6) 測試:
測試成功;
7) 到mariadb數據庫爲root添加密碼測試遠程登錄:
[root@localhost dbadmin]# mysql MariaDB [(none)]> GRANT ALL ON *.* TO'root'@'localhost' IDENTIFIED BY 'root'; Query OK, 0 rows affected (0.00 sec) MariaDB [(none)]> GRANT ALL ON *.* TO'root'@'127.0.0.1' IDENTIFIED BY 'root'; Query OK, 0 rows affected (0.00 sec) MariaDB [(none)]> FLUSH PRIVILEGES; Query OK, 0 rows affected (0.00 sec)
8) 使用phpMyadmin測試連接:輸入用戶名密碼後:
測試成功
4、爲pma.stux.com提供https服務
此實驗環境以上述基於主機名的虛擬主機爲基礎搭建:
Openssl自建CA實現證書籤發,完成https服務實現。
需要安裝mod_ssl模塊。讓服務器支持https服務
1、自建立CA,CA的IP爲
[root@localhost ~]# ip add | awk -F'[ /]+' '/inet\>/&&!/127.0.0.1/{print $3}' 172.16.113.33
A、創建CA服務器端所需要的文件
[root@localhost CA]# touch index.txt [root@localhost CA]# echo 01 > serial
b、生成CA服務器(172.16.113.33)的私鑰:
[root@localhost CA]# (umask 077;openssl genrsa -out private/cakey.pem 2048) //此處注意。CA私鑰的路徑及名字都必須和此處所示一致,加上括號執行命令是爲了直接設置生成的私鑰權限爲600 Generating RSA private key, 2048 bit longmodulus ........................................................................+++ ................................................................................................+++ e is 65537 (0x10001)
c、 生成CA的自簽證書
[root@localhost CA]# openssl req -new -x509 -key private/cakey.pem -out cacert.pem -days 7300 //-x509參數只在CA自簽證書時用
2、WEB服務器(172.16.113.52)生成私鑰:
[root@localhost dz]# cd /etc/httpd/ //切換至httpd的工作目錄 [root@localhosthttpd]# mkdir ssl //創建一個專門放置證書的目錄 [root@localhost httpd]# (umask 077;openssl genrsa -out ssl/httpd-private.key 2048) //創建私鑰,加上括號是爲了直接設置生成的私鑰權限爲600 Generating RSA private key, 2048 bit longmodulus .......+++ ........................................+++ e is 65537 (0x10001)
3、WEB服務器(172.16.113.52)生成證書申請請求
4、將證書申請請求發送給CA服務器
[root@localhost httpd]# scp ssl/pam.stux.com.csr [email protected]:/tmp/ //此命令意爲將本地ssl目錄下的文件以root(對方服務器管理員)身份傳遞到172.16.113.33服務器 的tmp目錄下
5、CA服務器(172.16.113.33)爲WEB服務器簽發證書並將證書傳送至WEB服務器
[root@localhost CA]# openssl ca -in /tmp/pam.stux.com.csr -out certs/pma.stux.com.crt -days 365 ////省略部分信息 Certificate is to be certified until Sep 1806:56:41 2016 GMT (365 days) Sign the certificate? [y/n]:y //這裏選擇y 1 out of 1 certificate requests certified,commit? [y/n]y //這裏選擇y Write out database with 1 new entries Data Base Updated
[root@localhost CA]# scp certs/pma.stux.com.crt [email protected]:/etc/httpd/ssl //將簽發的證書傳輸到web服務器端
6、WEB服務器(172.16.113.52)安裝mod_ssl模塊,並作出相應的配置:
[root@localhost httpd]# yum install -ymod_ssl //安裝mod_ssl模塊 //安裝完成後,會生成配置文件/etc/httpd/conf.d/ssl.conf,編輯此配置文件 將#DocumentRoot "/var/www/html" --- >改爲 DocumentRoot"/web/vhosts/pma" 將#ServerName www.example.com:443 -- >改爲 pma.stux.com:443 將<VirtualHost _default_:443> --- > 改爲 <VirtualHostpma.stux.com:443> 將SSLCertificateFile /etc/pki/tls/certs/localhost.crt ---- > 改爲 SSLCertificateFile/etc/httpd/ssl/pma.stux.com.crt 將SSLCertificateKeyFile /etc/pki/tls/private/localhost.key --->改爲SSLCertificateKeyFile/etc/httpd/ssl/httpd-private.key 更改完成後,保存退出
[root@localhost httpd]# httpd –t //檢查配置文件是否存在問題,若無問題,重新啓動httpd [root@localhost httpd]# systemctl restar thttpd.service //重啓htpd
7、將CA服務器證書導出到測試主機,並添加瀏覽器信任,進行測試(使用sftp工具)
將其改名爲.crt爲後綴,其會自動變爲證書樣式(前提系統沒有隱藏文件的後綴名顯示),如下:
將證書導入瀏覽器(Firefox爲例),操作如下:
導入證書:
選擇信任使用此CA打鉤
使用https協議訪問網站:https://pma.stux.com/dbadmin
實驗成功
5、搭建wordpress論壇
此實驗環境以上述基於主機名的虛擬主機爲基礎搭建:
下載程序包:https://cn.wordpress.org/
1、使用sftp工具將軟件包傳送至服務器:
2、移動程序包到/usr/local/src目錄下,並解壓
[root@localhost ~]# mv wordpress-4.3.1-zh_CN.zip /usr/local/src/ [root@localhost src]# unzip wordpress-4.3.1-zh_CN.zip
3、將解壓出來的文件全部copy到wp.stux.com的網站文件目錄中去
[root@localhost src]# cp -r wordpress/*/web/vhosts/wp/
4) 創建配置文件,wp-config-sample.php—此文件爲配置文件模板,直接copy一份重命名爲wp-config.php
[root@localhost ~]# cd /web/vhosts/wp/ //切換至網站目錄下 [root@localhost wp]# cp wp-config-sample.php wp-config.php //創建配置文件
5) 因爲此程序需要連接數據庫,編輯配置文件,填寫數據庫信息
[root@localhost wp]# vim wp-config.php
保存退出
6、在測試主機上輸入URL---http://wp.stux.com進行配置安裝
點擊登錄,輸入賬號密碼後便可。
搭建成功
6、搭建discuz論壇
此實驗環境以上述基於主機名的虛擬主機爲基礎搭建:
Discuz官網:http://www.discuz.net/forum-64-1.html
1、解壓此壓縮包:
[root@localhost src]# unzip Discuz_X3.2_SC_UTF8.zip
生成此處三個目錄,幫助文檔在readme目錄下,有個read.text文件,可自行查看
2、移動upload目錄下所有文件及子目錄到dz.stux.com的網站文件目錄下:/web/vhosts/dz目錄下:
[root@localhost src]# mv -r upload/*/web/vhosts/dz/
3、在測試主機輸入URL:http://dz.stux.com進行安裝:
此處出現報錯,因爲文件及目錄的權限不夠所致
4、爲節省時間,更改網站文件目錄下的所有文件權限爲777,並刷新瀏覽器頁面:
[root@localhost dz]# chmod 777 -R ../dz/
填寫數據庫相關信息,點擊下一步:
網頁右下方出現安裝成功字樣:
搭建完成。