LAMP搭建個人wordpress博客

LAMP模式解析

LAMP平臺的構成組件

  • L:Linux操作系統,Linux操作系統是整個LAMP架構的基礎部分,提供用於支撐Web站點的操作系統,爲其他的組件提供了更好的穩定性、兼容性
  • A:Apache網站服務器,作爲LAMP架構的前端,功能強大、穩定性良好
  • M:MySQL數據庫服務器,爲LAMP架構的後端,是一款應用非常廣泛的數據庫系統。在企業網站、業務系統等應用中,各種賬戶信息、產品信息、客戶資料等都可以存儲到MySQL數據庫中
  • P:PHP、Perl、Python網頁編程語言,如今最爲常見的就是PHP語言。Python語言現如今多用於自動化運維。

 本文講解Linux+apache+mariadb+PHP組合的架構,架構圖如下:
LAMP搭建個人wordpress博客
 如圖所示,一次完整的訪問過程服務器主要經歷:Apache處理請求—>通過CGI接口訪問PHP的的應用程序—>PHP應用程序調用PHP解釋器執行PHP代碼—>PHP程序訪問調用數據庫—>最後給客戶端返回響應。
apache主要實現如下功能:

  • 處理http的請求、構建響應報文等自身服務;
  • 配置讓Apache支持PHP程序的響應
  • 配置Apache具體處理php程序的方法,如通過反向代理將php程序交給fcgi處理

mariadb主要實現如下功能:

  • 提供PHP程序對數據的存儲;
  • 提供PHP程序對數據的讀取(通常情況下從性能的角度考慮,儘量實現數據庫的讀寫分離)。

php主要實現如下功能:

  • 提供apache的訪問接口,即CGI或Fast CGI(FPM);
  • 提供PHP程序的解釋器;
  • 提供mairadb數據庫的連接函數的基本環境。

LAMP服務器部署個人博客

環境準備:

  • centos7
  • php-5.4
  • httpd-2.4
  • mariadb-server-5.5
  • php-mysql-5.4
  • wordpress
  1. 安裝軟件包
    [root@centos7 ~]# yum -y install httpd php mariadb-server php-mysql
  2. 關閉防火牆,關閉selinux
    [root@centos7 ~]# systemctl stop firewalld; setenforce 0
  3. 配置虛擬主機
    [root@centos7 ~]# vim /etc/httpd/conf.d/vhost.conf
                <VirtualHost *:80>
                    DocumentRoot "/app/blog/htdocs"  #訪問的根目錄
                    CustomLog "logs/blog.com_access_log" combined  #開啓日誌
                    <Directory "/app/blog/htdocs"> 
                    Require all granted #所有人可以訪問
                    </Directory>    
                </VirtualHost>
    [root@centos7 ~]# systemctl restart httpd
  4. 配置數據庫
    [root@centos7 ~]# vim /etc/my.cnf
                [mysqld]
                ……
                skip_name_resolve  #禁止域名解析,解決遠程主機訪問慢
    [root@centos7(nanyibo) ~]# systemctl restart mariadb.service
  5. 準備網站源碼
    [root@centos7 blog]# mkdir -pv /app/blog
    [root@centos7 blog]# tar xvf wordpress-4.9.4-zh_CN.tar.gz -C /app/blog/
    [root@centos7 blog]# mv wordpress wordpress-4.9.4
    [root@centos7 blog]# ln -sv wordpress-4.9.4 htdocs #創建鏈接方便以後項目變更
    [root@centos7 ~]# cd /app/blog/
    [root@centos7 blog]# setfacl -m u:apache:rwx htdocs/ #設置期望值
  6. 給網站創建連接的數據庫的用戶
    [root@centos7 ~]# mysql
    MariaDB [(none)]> create database wpdb;
    MariaDB [(none)]> grant all on wpdb.* to 'wpuser'@'172.18.153.%' identified by 'wppass';
  7. 在瀏覽器輸入IP地址測試
    LAMP搭建個人wordpress博客

    搭建到這裏你點擊安裝即可,不演示。

我們現在用的http協議,網頁顯示不安全,那麼我們自己模擬做CA中心,自己給自己籤網頁證書
8.本機模擬搭建CA中心

[root@centos7 ~]# yum -y install mod_ssl  #安裝依賴包
[root@centos7 ~]# cd /etc/pki/CA
[root@centos7 ~]# (umask 066;openssl genrsa -out private/cakey.pem 4096) #生成CA的公鑰
[root@centos7 ~]# openssl req -new -x509 -key private/cakey.pem -out cacert.pem -days 3650 #生成CA的私鑰
Country Name (2 letter code) [XX]:CN
State or Province Name (full name) []:HeNan
Locality Name (eg, city) [Default City]:ZhengZhou
Organization Name (eg, company) [Default Company Ltd]:cyn.com
Organizational Unit Name (eg, section) []:opt
Common Name (eg, your name or your server's hostname) []:ca.cyn.com #這一項不一樣即可,其他隨意寫
Email Address []:
[root@centos7 ~]# touch index.txt  
[root@centos7 ~]# echo 00 > serial

9.自己給自己頒發證書

[root@centos7 ~]# mkdir /etc/httpd/conf.d/ssl
[root@centos7 ~]# cd /etc/httpd/conf.d/ssl
[root@centos7 ~]# (umask 066;openssl genrsa -out httpd.key 1024)  
[root@centos7 ~]# openssl req -new -key httpd.key -out httpd.csr
Country Name (2 letter code) [XX]:CN
State or Province Name (full name) []:HeNan
Locality Name (eg, city) [Default City]:ZhengZhou
Organization Name (eg, company) [Default Company Ltd]:cyn.com
Organizational Unit Name (eg, section) []:opt
Common Name (eg, your name or your server's hostname) []:bbs.cyn.com#這一項與CA不一樣
Email Address []:
Please enter the following 'extra' attributes
to be sent with your certificate request
A challenge password []:
An optional company name []:
[root@centos7 ~]# openssl ca -in httpd.csr -out httpd.crt -days 365  
Certificate Details:  #證書信息
        ...
        Subject:
            countryName               = CN
            stateOrProvinceName       = HeNan
            organizationName          = cyn.com
            organizationalUnitName    = opt
            commonName                = bbs.cyn.com
        ...
Certificate is to be certified until Jun 30 12:47:06 2032 GMT (5000 days)
Sign the certificate? [y/n]:y
1 out of 1 certificate requests certified, commit? [y/n]y
Write out database with 1 new entries
Data Base Updated
[root@centos7 ~]# cp /etc/pki/CA/cacert.pem .

10.配置https

[root@centos7 ~]# vim /etc/httpd/conf.d/ssl.conf 
            SSLCertificateFile /etc/httpd/conf.d/ssl/httpd.crt
            SSLCertificateKeyFile /etc/httpd/conf.d/ssl/httpd.key
            SSLCACertificateFile /etc/pki/CA/cacert.pem

11.瀏覽器再次測試
LAMP搭建個人wordpress博客
這個時候說明我們自己的證書已經生效(紅色警告是因爲自己做自己的CA中心,人家正宗的不承認。。。所以紅色警告)
12.現在把cacert.pem,放在window裏,該後綴名爲cacert.crt,把httpd.crt也放到window上,雙擊安裝證書
LAMP搭建個人wordpress博客
再去瀏覽器設置裏把證書設置爲信任證書
LAMP搭建個人wordpress博客
再去查看證書的詳細信息
LAMP搭建個人wordpress博客
12.瀏覽器輸入再次檢查https,不出現“不安全”字樣,則說明我們做的CA證書生效
LAMP搭建個人wordpress博客
13.既然是個人博客,我們也可以給這個網頁加密碼

[root@centos7 ~]# vim /etc/httpd/conf.d/vhost.conf
<VirtualHost *:80>
DocumentRoot "/app/blog/htdocs" 
CustomLog "logs/blog.com_access_log" combined  
AllowOverride none
AuthType Basic
AuthName "Please login"
AuthUserfile "/etc/httpd/conf/.htpasswd"
Require user xiaofan  #登陸用戶
<Directory "/app/blog/htdocs"> 
Require all granted #所有人可以訪問
</Directory>    
</VirtualHost>
[root@centos7 ~]# htpasswd -b -c -m /etc/httpd/conf/.htpasswd xiaofan centos #給yong'hu'she'zhi'm
Adding password for user xiaofan

你再次登陸就會提示你輸入用戶賬號和密碼
至此完成了lamp模式的個人博客搭建,完成https的認證

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章