centos7.3實現基於源碼編譯安裝LAMP的wordpress應用

WordPress應用

是一款基於PHP開發的博客發佈平臺。用戶可以在支持PHP和MySql的系統上,輕鬆地搭建WordPress博客系統,並在上面發佈自己的博客文章。

關於LAMP,之前的文章中已經有過很多的介紹,感興趣的朋友可以去查看我之前的文章。

今天我們直接介紹,如何直接源碼編譯安裝LAMP,並且在配置好環境的系統上部署WordPress應用。

使用腳本一鍵安裝LAMP

在實際生產中,手動操作,人肉運維往往費時費力, 這裏給大家推薦一個一鍵安裝LAMP的腳本,這是我的github,可以關注一下,腳本還有很多需要完善的地方,歡迎留言一起討論。

 一鍵安裝LAMP的Shell腳本

本着學習爲主的理念,今天,我們是要手動編譯安裝一下LAMP。這樣的話,查看腳本也就會非常簡單了。

環境準備

  • 軟件環境

首先我們需要準備安裝 LAMP所需要的一些軟件環境。可以到相關的網站上去下載源碼包。

[root@localhost src]#ls
apr-1.6.2.tar.gz       httpd-2.4.27.tar.bz2                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-zh_CN.tar.gz
  • 安裝開發包組

因爲我們這個實驗是需要通過大量的編譯來安裝相關的軟件,所以需要對實驗環境提前安裝開發包組。
執行 yum groupinstall "development tools"就可以安裝開發包組。

  • 硬件環境

實驗過程中,爲了儘可能地模仿實際生產環境,我們使用兩臺虛擬機來進行實驗。一臺虛擬機負責安裝 Apache+PHP+WordPress,另一臺虛擬機安裝MariaDB,用來提供數據庫服務。

源碼編譯安裝HTTP-2.4

在之前的文章中,我們曾經介紹過如何在CentOS 6 上編譯安裝HTTPD 2.4,所以這裏我們也是隻列出關鍵步驟,不做詳細解釋。

  • 解壓源碼文件

# 源碼文件的存放路徑

[root@localhost src]#pwd
/usr/local/src

[root@localhost src]#tar xvf apr-1.6.2.tar.gz 

[root@localhost src]#tar xvf apr-util-1.6.0.tar.gz 
[root@localhost src]#tar xvf httpd-2.4.27.tar.bz2
  • 將apr和apr-util複製到http目錄下

這樣做的目的是編譯httpd的時候直接指定apr和apr-util的路徑就可以。

[root@localhost src]#cp -r apr-1.6.2  httpd-2.4.27/srclib/apr

[root@localhost src]#cp -r apr-util-1.6.0  httpd-2.4.27/srclib/apr-util
  • 安裝所需要的額外的軟件包

[root@localhost src]#yum install openssl-devel expat-devel pcre-devel
  • 編譯HTTPD

# 進入到http 源碼目錄下
[root@localhost src]#cd httpd-2.4.27/ 

# 配置Httpd編譯選項
[root@localhost httpd-2.4.27]#./configure \
> --prefix=/app/httpd24 \
> --sysconfdir=/etc/httpd24 \
> --enable-so \
> --enable-ssl \
> --enable-rewrite \
> --with-zlib \
> --with-pcre \
> --with-included-apr \
> --enable-modules=most \
> --enable-mpms-shared=all \
> --with-mpm=prefork


# 進行安裝
[root@localhost httpd-2.4.27]#make -j 2 && make install
  • 將命令選項添加到環境變量

/etc/profile.d/目錄下,新建一個lamp.sh 的shell腳本文件,然後將安裝好的httpd路徑添加到環境變量中。

# 安裝好的程序添加到環境變量中
[root@localhost profile.d]#echo 'PATH=/app/httpd24/bin/:$PATH' > lamp.sh 

# 使環境變量生效  
[root@localhost profile.d]# .  lamp.sh

# 啓動httpd 服務
[root@localhost profile.d]#apachectl start

二進制安裝MariaDB

  • 解壓二進制文件

切換到第二臺主機上,將mariadb的二進制源碼文件下載下來。 回到 /usr/local/src/路徑下,解壓mariadb到 /usr/local/ 目錄下,並創建mysql 軟連接

# 解壓mysql 到指定路徑
[root@localhost local]#tar xvf mariadb-10.2.8-linux-x86_64.tar.gz  -C /usr/local/

# 創建軟連接 
[root@localhost local]#ln -s mariadb-10.2.8-linux-x86_64/ mysql
  • 創建用戶,並指定MySQL數據庫文件存儲路徑

# 創建 用戶,並創建用戶的家目錄  同時指定數據庫文件的存儲路徑
[root@localhost local]#useradd -r -m -d /app/mysqldb -s /sbin/nologin mysql
  • 創建數據庫文件

進入到剛剛創建的mysql 路徑,利用mysql自帶的腳本文件,創建數據庫

[root@localhost mysql]#scripts/mysql_install_db --datadir=/app/mysqldb --user=mysql
  • 創建mysql的配置文件,並修改文件內容

# 創建mysql 的配置文件路徑
[root@localhost mysql]#mkdir /etc/mysql

# 根據官方提供的mysql的配置文件模板來進行配置
[root@localhost mysql]#cp support-files/my-large.cnf  /etc/mysql/my.cnf

配置文件創建成功之後,需要配置文件內容進行修改 ,而且要注意,不能寫錯,一旦出錯,mysql就啓動不了了,如下圖所示。

mysql配置

  • 創建mysql的啓動腳本並添加到開機啓動

與配置文件一樣,可以直接根據安裝文件提供的腳本,複製過來。

# 直接參考 mysql.server 這個腳本
[root@localhost mysql]#cp support-files/mysql.server  /etc/init.d/mysqld

# 將mysql 服務添加到開機啓動 
[root@localhost mysql]#chkconfig --add mysqld

此時如果啓動mysqld 服務的話,會提示出錯,也是mysql的日誌文件還沒有創建。可以根據提示信息創建日誌文件。

  • 創建mysql的日誌文件

# 創建日誌文件路徑
[root@localhost mysql]#mkdir /var/log/mariadb

# 修改日誌文件路徑的權限,以便mysql數據庫能夠創建日誌文件
[root@localhost mysql]#chown mysql /var/log/mariadb/  

# 啓動mysql 服務
[root@localhost mysql]#service mysqld start
  • 添加mysql的環境變量

同樣的,也是在/etc/profile.d/路徑下創建一個lamp.sh文件,將mysql的變量添加進去。

# 因爲我們的mysql是安裝在另外一臺主機上的,所以這裏環境變量內容,沒有httpd的。
[root@localhost profile.d]#echo 'PATH=/usr/local/mysql/bin/:$PATH' > lamp.sh 

# 使環境變量生效  
[root@localhost profile.d]# .  lamp.sh
  • 進行mysql的安全初始化,刪除測試庫,刪除匿名用戶

這個過程在之前介紹如何安裝MariaDB的文章中已經有所介紹,所以這裏就不詳細介紹了,我們直接執行命令,然後進行安全初始化。

# 執行mysql 的安全初始化的腳本
[root@localhost mysql]#mysql_secure_installation
  • 創建WordPress的應用數據庫以及用戶,並給用戶賦權限

# 允許172網段的主機通過root用戶鏈接mysql 
grant all on *.* to root@'172.%' identified by 'centos';


# 創建wpdb用來給wordpress使用
create database wpdb;
grant all on wpdb.* to wpuser@'172.%' identified by 'centos';
grant all on wpdb.* to wpuser@'localhost' identified by 'centos';

源碼編譯安裝php

這裏有一些地方需要注意,編譯安裝PHP的時候,PHP-5.X 和PHP-7.X 版本不一樣,編譯選項也有一些不一致。

切換回之前安裝HTTPD 的主機,切換到源碼路徑下。

  • 安裝缺少的包,解壓PHP源文件

# 加壓PHP源碼包
[root@localhost src]# tar xvf php-7.1.10.tar.xz

# 安裝編譯PHP源碼時所需要的包  
[root@localhost src]# yum install libxml2-devel bzip2-devel libmcrypt-devel
  • 配置PHP的編譯選項,並進行安裝

# 這裏有一點要注意在PHP 5.x 的版本中是不存在 --enable-mysqlnd  
# 這個選項的,相反,使用了mysql路徑來指定
[root@localhost php-7.1.10]#./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@localhost php-7.1.10]#make -j 2 && make install
  • 準備PHP的配置文件

在解壓的目錄下面,有一php配置文件的模板。 我們可以直接參考。

php配置參考

# 直接參考PHP的配置文件
[root@localhost php-7.1.10]#cp php.ini-production /etc/php.ini
  • 給Httpd配置文件添加支持PHP的MIME類型

在之前安裝的HTTPD的配置文件中,添加 MIME類型,同時修改主頁,支持PHP。
同時修改默認註解的支持類型,使其支持PHP文件。

PHP的MIME配置

測試PHP程序與數據庫的鏈接

PHP程序配置結束之後,重新啓動httpd服務。同時在httpd主頁所在的目錄下添加一個index.php文件。

# 因爲我們是手動安裝httpd的服務,所以主頁目錄位於我們指定的httpd安裝路徑下。
[root@localhost htdocs]#pwd
/app/httpd24/htdocs

# 下面這段代碼用來測試PHP是否能夠成功鏈接數據庫
[root@localhost htdocs]#cat index.php 
<?php
$mysqli=new mysqli("172.18.2.77","root","centos");
if(mysqli_connect_errno()){
echo "連接數據庫失敗!";
$mysqli=null;
exit;
}
echo "連接數據庫成功!";
$mysqli->close();
phpinfo();
?>

鏈接成功的界面如下圖所示。

php 鏈接數據庫

配置WordPress

  • 解壓WordPress源碼到HTTPD網站目錄下

將WordPress源碼解壓到HTTPD網站目錄/app/httpd24/htdocs/

[root@localhost src]#tar xvf wordpress-4.8-zh_CN.tar.gz  -C /app/httpd24/htdocs/
  • 修改wordpress的配置文件中mysql的相關設置

參考WordPress官方提供的配置文件,創建一個配置文件,並修其中對mysql數據庫的相關配置。

# 參考官方的配置文件,創建一個新的配置文件
[root@localhost wordpress]#cp wp-config-sample.php  wp-config.php

同時修改這個配置文件中,關於數據庫的配置。

wordpress -mysql

  • 初始化wordPress

通過瀏覽器訪問 http://webserv/wordpress/,其中webserv指的就是安裝httpd服務的那臺主機的ip,這樣就可以進行WordPress的初始化配置。

WordPress初始化配置

配置成功之後,可以看到之前創建的數據庫中會多出幾張表,這些表格就是wordpress所需要的表。

MariaDB [wpdb]> show tables;
+-----------------------+
| Tables_in_wpdb        |
+-----------------------+
| wp_commentmeta        |
| wp_comments           |
| wp_links              |
| wp_options            |
| wp_postmeta           |
| wp_posts              |
| wp_term_relationships |
| wp_term_taxonomy      |
| wp_termmeta           |
| wp_terms              |
| wp_usermeta           |
| wp_users              |
+-----------------------+
12 rows in set (0.00 sec)

初始化成功之後,再訪問http://webserv/wordpress/就可以查看主機的博客主頁了。

wordpress-index

經過上面的步驟我們成功地從無到有安裝了LAMP+WordPress,在實際生產中,WordPress也有可能是其他地PHP應用。也有可能是Linux+Nginx+MariaDB+Python的組合形式,所以實際生產中還是需要根據實際情況做出自己的選擇。

同時,在實際生產者中,每次都耗費這麼長的時間去安裝LAMP應用還是挺不可取的。所以最好將安裝過程寫成一個安裝腳本,那樣的話,獲取會事半功倍。




個人博客地址:http://www.pojun.tech/ 歡迎訪問

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