編譯安裝LAMP部署Wordpress搭建個人博客

編譯安裝LAMP部署WordPress搭建個人博客

 

 

這裏寫圖片描述

前言

 

  WordPress是一個基於PHP和MySQL的免費開放源代碼內容管理系統(CMS),WordPress必須安裝在Web服務器上,它可以是Internet託管服務的一部分,也可以作爲網絡主機。目前WordPress在訪問量前1000萬的網站裏的使用率超過了28%,是目前最流行的網站管理和博客使用的Web系統。

  WordPress 擁有世界上最強大的插件和模板,這也是WordPress非常流行的一個特性。當前WordPress插件數據庫中有超過18000個插件,包括SEO、控件等等。個人可以根據它的核心程序提供的規則自己開發模板和插件。這些插件可以快速地把你的博客改變成cms、forums、門戶等各種類型的站點。

  擁有一個屬於自己的博客,應該是每個人夢寐以求的吧。本文就是要使用WordPress在LAMP的環境中來搭建個人的博客平臺,關於LAMP之前的文章已經介紹過了,是現在最主流的網站解決方案。所以我們要在之前學習的基礎上來完成本次的實驗。

 
 

實驗環境

  本次實驗使用的是CentOS、Apache、Mariadb、PHP的LAMP構架。

  • CentOS 是一個基於Red Hat Linux 提供的可自由使用源代碼所編譯而成的。

  • Apache 是世界使用排名第一的Web服務器軟件。它可以運行在幾乎所有廣泛使用的計算機平臺上,由於其跨平臺和安全性被廣泛使用,是最流行的Web服務器端軟件之一。

  • MariaDB 數據庫管理系統是MySQL的一個重要分支,也是目前最流行的開源數據庫。

  • PHP 是一種被廣泛使用的開源的嵌入式腳本語言,可以高效的執行動態網頁。
     

系統和軟件包

名稱     版本 包名 下載地址
CentOS 7.3   CentOS-7-x86_64-DVD-1611.iso http://mirrors.aliyun.com/centos/7.3.1611/isos/x86_64/
Apache 2.4.28 httpd-2.4.28.tar.gz http://httpd.apache.org/download.cgi#apache24
APR 1.6.2 apr-1.6.2.tar.gz http://apr.apache.org/download.cgi
APR-util 1.6.0 apr-util-1.6.0.tar.gz http://apr.apache.org/download.cgi
PHP 7.1.10 php-7.1.10.tar.bz2 https://secure.php.net/downloads.php
Mariadb 10.2.8 mariadb-10.2.8-linux-x86_64.tar.gz https://downloads.mariadb.org/
WordPress 4.8.2 wordpress-4.8.2.tar.gz https://wordpress.org/download/

 

將準備好的包準備好統一放入一個目錄中

[root@CentOS7 tool]# ls
apr-1.6.2.tar.gz       httpd-2.4.28.tar.gz                 php-7.1.10.tar.xz
apr-util-1.6.0.tar.gz  mariadb-10.2.8-linux-x86_64.tar.gz  wordpress-4.8.2.tar.gz

 
 

編譯安裝httpd

 

安裝開發包組和必要軟件包

[root@CentOS7 ~]# yum groupinstall 'development tools' -y
[root@CentOS7 ~]# yum install openssl-devel pcre-devel expat-devel -y

注意:如果不安裝開發包組和必要包組,在編譯安裝中會出現錯誤,導致安裝失敗。
 

解壓httpd、 ARP、 ARP-util的軟件包

[root@CentOS7 tool]# tar xvf httpd-2.4.28.tar.gz
[root@CentOS7 tool]# tar xvf apr-1.6.2.tar.gz
[root@CentOS7 tool]# tar xvf apr-util-1.6.0.tar.gz

 

將APR和APR-util目錄移動到httpd的srclib目錄下

[root@CentOS7 tool]# mv  apr-1.6.2 httpd-2.4.28/srclib/apr  
[root@CentOS7 tool]# mv  apr-util-1.6.0 httpd-2.4.28/srclib/apr-util

注意:不管是移動還是複製到httpd的srclib目錄下,一定要對應的文件名改成apr和apr-util。
 

開始編譯安裝

[root@CentOS7 tool]cd httpd-2.4.28
[root@CentOS7 httpd-2.4.28]# ./configure --prefix=/app/httpd24 --sysconfdir=/etc/httpd24 --enable-so --enable-ssl --enable-cgi --enable-rewrite --with-zlib--with-pcre --with-included-apr --enable-modules=most --enable-mpms-shared=all --with-mpm=prefork

[root@CentOS7 httpd-2.4.28]# echo $?   #查看上一步命令是否成功,如果顯示0,則檢查當前環境滿足安裝要求,可以繼續安裝操作。如果顯示非0則排錯後,重新檢查
0

[root@CentOS7 httpd-2.4.28]# make && make install
[root@CentOS7 httpd-2.4.28]# echo $?    
0                                        #安裝成功
[root@CentOS7 app]# ls
httpd24  tool

 

創建用戶和新的環境變量

[root@CentOS7 app]# useradd -r -d /usr/share/httpd24 -s /sbin/nologin apache

[root@CentOS7 app]# vim /etc/profile.d/httpd24.sh
        export PATH=/app/httpd24/bin/:/usr/local/mysql/bin/:$PATH 

[root@CentOS7 app]# . /etc/profile.d/httpd24.sh

 

使用apachectl命令控制Apache服務

apachectl (參數)
參數 功能
start 啓動Apache httpd進程,如果已經啓動則會報錯
stop 關閉Apachehttpd進程
restart 重啓Apache http的後臺守護進程,如果進程尚未運行,則啓動它。在重新啓動守護進程之前,此命令會使用configtest自動檢查配置文件,以確保Apache不會死掉。
help 查看幫助信息
graceful 優雅地重新啓動Apache httpd後臺守護進程。如果守護進程尚未啓動,則啓動它。它和標準重新啓動的不同之處在於:不會中斷當前已經打開的連接,也不會立即關閉日誌。這意味着,如果在日誌滾動腳本使用它,則在處理日誌之前必須加入一個實實在在的延遲,以確保老的日誌文件在被處理前已經關閉。在重新啓動守護進程之前,此命令會使用configtest自動檢查配置文件,以確保Apache不會死掉
graceful 優雅地停止Apache httpd後臺守護進程。它和標準停止的不同之處在於:不會中斷當前已經打開的連接,也不會立即關閉日誌
fullstatus 顯示服務器的完整狀態信息
configest 檢查設置文件中的語法是否正確,等價於apachectl -t

 
 

安裝Mariadb

 

安裝必要的軟件包

[root@CentOS7 ~]# yum remove mariadb*             #CentOS7默認安裝mariadb,爲了防止衝突提前刪除
[root@CentOS7 ~]# yum -y install libaio-devel

注意:一定要刪除所有Mariadb的關聯包組,否則後面實驗服務會無法啓動。

 

解壓Mariadb到指定目錄

[root@CentOS7 ~]# cd /app/tool
[root@CentOS7 tool]# tar xvf mariadb-10.2.8-linux-x86_64.tar.gz /usr/local/mysql
[root@CentOS7 tool]# cd /usr/loacl
[root@CentOS7 local]# mv mariadb-10.2.8-linux-x86_64/ mysql  #將解壓的目錄改名成mysql

注意:一定要把解壓的Mariadb的目錄名改成mysql,或者創建名爲mysql的軟鏈接。

 

設置Mariadb配置文件

[root@CentOS7 local]# mkdir /etc/mysql
[root@CentOS7 mysql]# cp /usr/local/mysql/support-files/my-huge.cnf /etc/mysql/my.cnf
[root@CentOS7 mysql]# vim /etc/mysql/my.cnf    
    [mysqld]                                       #找到[mysql]的位置,在下面寫入以下三行
    datadir = /app/mysqldb    
    innodb_file_per_table = on
    skip_name_resolve = on   

 

創建mysql賬號

[root@CentOS7 mysql]#  useradd -r -m -d /app/mysqldb -s /sbin/nologin mysql

 

生成系統數據庫

[root@CentOS7 mysql]# cd /usr/local/mysql/                                  
[root@CentOS7 mysql]# scripts/mysql_install_db --datadir=/app/mysqldb --user=mysql

[root@CentOS7 mysql]# ls /app/mysqldb/   #查看系統數據庫是否生成
aria_log.00000001  ib_buffer_pool  ib_logfile0  mysql             mysql-bin.index  performance_schema
aria_log_control   ibdata1         ib_logfile1  mysql-bin.000001  mysql-bin.state  test

 

設置啓動和日誌文件

[root@CentOS7 mysql]# cp -v /usr/local/mysql/support-files/mysql.server /etc/init.d/mysqld
[root@CentOS7 mysql]# chkconfig --add mysqld
[root@CentOS7 mysql]# chkconfig mysqld on
[root@CentOS7 mysql]# mkdir /var/log/mariadb/
[root@CentOS7 mysql]# touch /var/log/mariadb/mariadb.log      #創建日誌文件
[root@CentOS7 app]# systemctl status  mysqld
[root@CentOS7 app]# ss -ntl                                   #Mariadb的端口3306已經打開
State      Recv-Q Send-Q     Local Address:Port                    Peer Address:Port                            
LISTEN     0      80                    :::3306                              :::*  

 

數據庫安全初始化

[root@CentOS7 app]# mysql_secure_installation 

NOTE: RUNNING ALL PARTS OF THIS SCRIPT IS RECOMMENDED FOR ALL MariaDB
      SERVERS IN PRODUCTION USE!  PLEASE READ EACH STEP CAREFULLY!

In order to log into MariaDB to secure it, we'll need the current
password for the root user.  If you've just installed MariaDB, and
you haven't set the root password yet, the password will be blank,
so you should just press enter here.

Enter current password for root (enter for none):    #此處回車繼續
OK, successfully used password, moving on...


Setting the root password ensures that nobody can log into the MariaDB
root user without the proper authorisation.

Set root password? [Y/n] y                           #設置數據庫密碼
New password:                                        #輸入密碼
Re-enter new password:                               #再次輸入密碼
Password updated successfully!
Reloading privilege tables..
 ... Success!

By default, a MariaDB installation has an anonymous user, allowing anyone
to log into MariaDB without having to have a user account created for
them.  This is intended only for testing, and to make the installation
go a bit smoother.  You should remove them before moving into a
production environment.

Remove anonymous users? [Y/n] y                       #是否刪除匿名用戶,出去安全考慮這裏選擇刪除
 ... Success!

Normally, root should only be allowed to connect from 'localhost'.  This
ensures that someone cannot guess at the root password from the network.

Disallow root login remotely? [Y/n] n                 #不允許root遠程登錄數據庫,這裏選擇n,我們後續實驗需要遠程登錄數據庫
 ... skipping.

By default, MariaDB comes with a database named 'test' that anyone can
access.  This is also intended only for testing, and should be removed
before moving into a production environment.

Remove test database and access to it? [Y/n] y        #刪除test數據庫,如果不需要可以刪除
 - Dropping test database...
 ... Success!
 - Removing privileges on test database...
 ... Success!

Reloading the privilege tables will ensure that all changes made so far
will take effect immediately.

Reload privilege tables now? [Y/n] y                  #之前的設置是否生效,這裏選擇y,設置成功
 ... Success!

Cleaning up...

All done!  If you've completed all of the above steps, your MariaDB
installation should now be secure.

Thanks for using MariaDB!

 

創建blog數據庫和授權用戶

[root@CentOS7 app]# mysql -uroot -p
Enter password:                                 #輸入剛剛設置的數據庫密碼
MariaDB [(none)]> create database wpdb;         #創建blog數據庫
MariaDB [(none)]> grant all on wpdb.* to wpuser@'192.168.%.%' identified by '123456';
#授權用戶遠程登錄數據庫,限制訪問ip爲192.168.%.%                                       
MariaDB [(none)]> grant all on wpdb.* to wpuser@'localhost' identified by '123456' 
#授權用戶本地登錄數據庫
MariaDB [(none)]> quit

 
 

編譯安裝PHP

 

安裝相關軟件包

[root@CentOS7 app]# yum install libxml2-devel bzip2-devel libmcrypt-devel -y

 

解壓PHP並安裝

[root@CentOS7 app]# cd /app/tool
[root@CentOS7 tool]# tar xvf php-7.1.10.tar.xz          #解壓PHP包
[root@CentOS7 tool]# cd php-7.1.10/
[root@CentOS7 tool]# ./configure --prefix=/app/php --enable-mysqlnd --with-mysqli=mysqlnd --with-openssl --with-pdo-mysql=mysqlnd --enable-mbstring --with-freetype-dir --with-jpeg-dir --with-png-dir --with-zlib --with-libxml-dir=/usr --enable-xml --enable-sockets --with-apxs2=/app/httpd24/bin/apxs --with-mcrypt --with-config-file-path=/etc --with-config-file-scan-dir=/etc/php.d --enable-maintainer-zts --disable-fileinfo

[root@CentOS7 tool]# echo $?
0
[root@CentOS7 tool]# make && make install

[root@CentOS7 tool]# echo $?
0

 

配置文件設置

[root@CentOS7 php-7.1.10]# cp php.ini-production /etc/php.ini
[root@CentOS7 php-7.1.10]# vim /etc/httpd24/httpd.conf    
    <IfModule dir_module>         
        DirectoryIndex index.php index.html      #在此處加入index.php             
    </IfModule>

    #在文件最後寫入下面兩行代碼
    AddType application/x-httpd-php .php
    AddType application/x-httpd-php-source .phps

[root@CentOS7 php-7.1.10]# apachectl restart

 
 

測試連接數據庫

 

編輯測試文件

[root@CentOS7 htdocs]# cat index.php
<?php
    $mysqli=new mysqli("192.168.15.130","wpuser","123456");
    #注意:這行代碼中的ip地址必須與數據庫所在的ip地址一致,數據庫的用戶和密碼一定要寫正確

    if(mysqli_connect_errno()){
                echo "連接數據庫失敗!";
                $mysqli=null;
                exit;
                }
                echo "連接數據庫成功!";
                $mysqli->close();
?>

注意:如果測試頁面出錯,出現直接下載網頁的情況,就需要在/etc/httpd24/httpd.conf進行修改

[root@CentOS7 php-7.1.10]# vim  /etc/httpd24/httpd.conf
    LoadModule php7_module        modules/libphp7.so     #在文件中加入代碼加載模塊libphp.so

[root@CentOS7 php-7.1.10]# apachectl restart

這裏寫圖片描述

使用瀏覽器輸入主機ip進行測試,成功就表示LAMP構建搭建成功。如果顯示連接數據庫失敗,請檢查是不是數據庫IP地址或者用戶名和密碼有錯誤,導致測試失敗。

 
 

設置WordPress

 

解壓WordPress包

[root@CentOS7 php-7.1.10]# cd /app/tool
[root@CentOS7 tool]# tar xvf wordpress-4.8.2.tar.gz

[root@CentOS7 tool]# mv wordpress /app/httpd24/htdocs/blog     
#將wordpress目錄移動到httpd的htdosc目錄中,並改名成blog,方便訪問

 

創建WordPress配置文件

/** The name of the database for WordPress */
define('DB_NAME', 'wpdb');              #填寫數據庫名

/** MySQL database username */
define('DB_USER', 'wpuser');            #填寫數據庫的用戶名

/** MySQL database password */
define('DB_PASSWORD', '123456');        #填寫數據庫的的用戶名密碼           

/** MySQL hostname */         
define('DB_HOST', '192.168.15.130');    #填寫數據庫的地址,默認是本地的,如果數據庫在其他主機上,則填寫對應的IP地址

/** Database Charset to use in creating database tables. */
define('DB_CHARSET', 'utf8');           #數據庫的字符集格式

 

設置blog管理賬戶

這裏寫圖片描述

填寫網站名稱,網站的管理賬號和密碼,還有自己的郵箱。

這裏寫圖片描述

點擊 log in 就可以登錄了。

這裏寫圖片描述

輸入剛剛設置的後臺管理賬號和密碼。

這裏寫圖片描述

個人blog的後臺管理頁面。

這裏寫圖片描述

在瀏覽器中輸入 地址/blog 就可以訪問到blog了。

 

設置首頁

[root@CentOS7 htdocs]# ln -s  blog/index.php index.php
[root@CentOS7 htdocs]# ln -s  blog/wp-login.php login.php
[root@CentOS7 htdocs]# ls
blog  index.html  index.php  login.php

這裏寫圖片描述

可以在htdocs的目錄下建立兩個軟鏈接:index.php和login.php,分別指向blog目錄下的index.php和wp-login.php文件。這樣直接通過首頁訪問到blog,方便用戶使用。

這裏寫圖片描述

如果想進入後臺管理界面可以在地址後面加/login.php就可以進入後臺管理頁面。

總結

  本文通過在LAMP的構架上使用WordPress搭建個人的blog平臺的,幫助大家更好的理解LAMP的結構和具體配置,由於實驗只是在一臺主機上,所以操作上還比較簡單。後面我們會通過多臺主機搭建稍微複雜一點的平臺結構。

  WordPress擁有豐富的主題和插件,大家可以在後期根據自己的喜好,選擇自己的喜歡的主題和插件來搭建屬於自己風格的blog,但注意不能安裝太多插件,否則會拖累網站速度和降低用戶體驗。

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