WordPress應用
是一款基於PHP開發的博客發佈平臺。用戶可以在支持PHP和MySql的系統上,輕鬆地搭建WordPress博客系統,並在上面發佈自己的博客文章。
關於LAMP,之前的文章中已經有過很多的介紹,感興趣的朋友可以去查看我之前的文章。
今天我們直接介紹,如何直接源碼編譯安裝LAMP,並且在配置好環境的系統上部署WordPress應用。
使用腳本一鍵安裝LAMP
在實際生產中,手動操作,人肉運維往往費時費力, 這裏給大家推薦一個一鍵安裝LAMP的腳本,這是我的github,可以關注一下,腳本還有很多需要完善的地方,歡迎留言一起討論。
本着學習爲主的理念,今天,我們是要手動編譯安裝一下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.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的配置文件 [root@localhost php-7.1.10]#cp php.ini-production /etc/php.ini
給Httpd配置文件添加支持PHP的MIME類型
在之前安裝的HTTPD的配置文件中,添加 MIME類型,同時修改主頁,支持PHP。
同時修改默認註解的支持類型,使其支持PHP文件。
測試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(); ?>
鏈接成功的界面如下圖所示。
配置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
通過瀏覽器訪問
http://webserv/wordpress/
,其中webserv指的就是安裝httpd服務的那臺主機的ip,這樣就可以進行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/
就可以查看主機的博客主頁了。
經過上面的步驟我們成功地從無到有安裝了LAMP+WordPress,在實際生產中,WordPress也有可能是其他地PHP應用。也有可能是Linux+Nginx+MariaDB+Python的組合形式,所以實際生產中還是需要根據實際情況做出自己的選擇。
同時,在實際生產者中,每次都耗費這麼長的時間去安裝LAMP應用還是挺不可取的。所以最好將安裝過程寫成一個安裝腳本,那樣的話,獲取會事半功倍。
個人博客地址:http://www.pojun.tech/ 歡迎訪問