LAMP模式搭建網站
阿新 • • 發佈:2018-10-23
生成 是個 detail ace require ast 好的 詳細 個人博客 LAMP模式解析
如圖所示,一次完整的訪問過程服務器主要經歷:Apache處理請求—>通過CGI接口訪問PHP的的應用程序—>PHP應用程序調用PHP解釋器執行PHP代碼—>PHP程序訪問調用數據庫—>最後給客戶端返回響應。
apache主要實現如下功能:
LAMP平臺的構成組件:
- L:Linux操作系統,Linux操作系統是整個LAMP架構的基礎部分,提供用於支撐Web站點的操作系統,為其他的組件提供了更好的穩定性、兼容性
- A:Apache網站服務器,作為LAMP架構的前端,功能強大、穩定性良好
- M:MySQL數據庫服務器,為LAMP架構的後端,是一款應用非常廣泛的數據庫系統。在企業網站、業務系統等應用中,各種賬戶信息、產品信息、客戶資料等都可以存儲到MySQL數據庫中
- P:PHP、Perl、Python網頁編程語言,如今最為常見的就是PHP語言。Python語言現如今多用於自動化運維。
本文講解Linux+apache+mariadb+PHP組合的架構,架構圖如下:
如圖所示,一次完整的訪問過程服務器主要經歷: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
- 安裝軟件包
[root@centos7 ~]# yum -y install httpd php mariadb-server php-mysql
- 關閉防火墻,關閉selinux
[root@centos7 ~]# systemctl stop firewalld; setenforce 0
- 配置虛擬主機
[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
- 配置數據庫
[root@centos7 ~]# vim /etc/my.cnf [mysqld] …… skip_name_resolve #禁止域名解析,解決遠程主機訪問慢 [root@centos7(nanyibo) ~]# systemctl restart mariadb.service
- 準備網站源碼
[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/ #設置期望值
- 給網站創建連接的數據庫的用戶
[root@centos7 ~]# mysql MariaDB [(none)]> create database wpdb; MariaDB [(none)]> grant all on wpdb.* to ‘wpuser‘@‘172.18.153.%‘ identified by ‘wppass‘;
-
在瀏覽器輸入IP地址測試
搭建到這裏你點擊安裝即可,不演示。
我們現在用的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.瀏覽器再次測試
這個時候說明我們自己的證書已經生效(紅色警告是因為自己做自己的CA中心,人家正宗的不承認。。。所以紅色警告)
12.現在把cacert.pem,放在window裏,該後綴名為cacert.crt,把httpd.crt也放到window上,雙擊安裝證書
再去瀏覽器設置裏把證書設置為信任證書
再去查看證書的詳細信息
12.瀏覽器輸入再次檢查https,不出現“不安全”字樣,則說明我們做的CA證書生效
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的認證
LAMP模式搭建網站