本來打算買臺服務器,搭建個人博客的,可這馬上就到雙十一了,也不知道阿里雲會不會有優惠,所以就簡單的模擬搭建一下練練手,等買到服務器再自己搭建一個*-*
一:實驗準備;
1、這次試驗都用源碼編譯安裝,所以需要二進制安裝包,而且在Centos 6上安裝最新版的http2.4,所以,也需要將apr更新一下;故需要的安裝包幾版本有:apr-1.6.2.tar.gz apr-util-1.6.0.tar.gz ;httpd-2.4.28.tar.bz2 ;mariadb-5.5.57-linux-x86_64.tar.gz ;php-5.6.31.tar.xz;wordpress-4.8.1-zh_CN.tar.gz;xcache-3.2.0.tar.gz(加速器)
2、另外需要開發包組“development tools”和六個devel包:openssl-devel ;expat-devel ;pcre-devel ;bzip2-devel ;libxml2-devel ;libmcrypt-devel;其中前三個是編譯安裝http-2.4.28時所依賴的基於base源的包,後三個是編譯安裝php-fpm時所依賴的基於epel源的包;不事先安裝的話,在編譯http和php時會報錯,也可以在報錯提示時在安裝,但是就是稍微有點麻煩,所以我這裏事先準備好
3、本次實驗在一臺機器上進行,也可以選擇多臺,因爲我們用的是php獨立服務方式的php-fpm,所以,他們都可以單獨分開放;
4、WordPress是一種使用PHP語言開發的博客平臺,用戶可以在支持PHP和MySQL數據庫的服務器上架設屬於自己的網站。也可把WordPress當作一個內容管理系統(CMS)來使用 ;是一個完整的程序,我們直接拿來用就可以了;
二:實驗步驟;
1、編譯安裝http2.4;
先將apr、apr-util和http分別解壓縮,然後按照規定,將apr和apr-util放到http的srclib下並改名爲apr和apr-util
[root@Centos6 ~]# tar xvf apr-1.6.2.tar.gz
[root@Centos6 ~]# tar xvf apr-util-1.6.0.tar.gz
[root@Centos6 ~]# tar xvf httpd-2.4.28.tar.bz2
[root@Centos6 ~]# mv httpd-2.4.28/apr-1.6.2/ httpd-2.4.28/srclib/apr
[root@Centos6 ~]# mv apr-util-1.6.0 httpd-2.4.28/srclib/apr-util
[root@Centos6 ~]# ls httpd-2.4.28/srclib/
apr apr-util Makefile.in
[root@Centos6 ~]#
[root@Centos6 ~]# cd httpd-2.4.28 #進到http目錄下,一起編譯(http、apr、apr-util)
[root@Centos6 ~/httpd-2.4.28]# ./configure --prefix=/app/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@Centos6 ~/httpd-2.4.28]# make -j 4 && make install #編譯安裝 ;-j 4:用兩顆CPU併發執行編譯
然後我們將httpd24加到服務裏;
[root@Centos6 ~/httpd-2.4.28]# cp /etc/init.d/httpd /etc/init.d/httpd24 #複製httpd放服務腳本成httpd24
[root@Centos6 ~/httpd-2.4.28]# vim /etc/init.d/httpd24 #然後改以下四行,將httpd相關的改爲httpd24相關的
apachectl=/app/httpd24/bin/apachectl
httpd=${HTTPD-/app/httpd24/bin/httpd}
pidfile=${PIDFILE-/app/httpd24/logs/httpd.pid}
lockfile=${LOCKFILE-/var/lock/subsys/httpd24}
[root@Centos6 ~/httpd-2.4.28]# chkconfig --add httpd24 #將httpd24加到服務裏,並設置開機自啓動
[root@Centos6 ~/httpd-2.4.28]# chkconfig httpd24 on
2、二進制安裝mariadb-5.5.57;(可以參考;也可以)
這裏我只寫步驟,詳細的請參考http://blog.csdn.net/oh_on/article/details/78368597中用邏輯卷做數據庫;http://blog.csdn.net/oh_on/article/details/78326030專門編譯安裝數據庫博客;
[root@Centos6 ~]# tar xvf mariadb-5.5.57-linux-x86_64.tar.gz -C /usr/local/
[root@Centos6 ~]# cd /usr/local/
[root@Centos6 /usr/local]# mv mariadb-5.5.57-linux-x86_64 mysql
[root@Centos6 /usr/local]# cd mysql/
[root@Centos6 /usr/local/mysql]# ls
bin data include lib mysql-test scripts sql-bench
COPYING EXCEPTIONS-CLIENT INSTALL-BINARY man README share support-files
[root@Centos6 /usr/local/mysql]# ./scripts/mysql_install_db --datadir=/app/mysqldb/ --user=mysql #生成數據庫
[root@Centos6 /usr/local/mysql]# mkdir /etc/mysql/
[root@Centos6 /usr/local/mysql]# cp support-files/my-huge.cnf /etc/mysql/my.cnf #定義配置文件
[root@Centos6 /usr/local/mysql]# vim /etc/mysql/my.cnf #加入如下三行
[mysqld]
datadir = /data/mysqldb #數據庫路徑
innodb_file_per_table = on #每個表單獨一個文件,innodb是數據庫引擎
skip_name_resolve = on #不用名字解析
[root@Centos6 /usr/local/mysql]# cp support-files/mysql.server /etc/init.d/mysqld #服務腳本
[root@Centos6 /usr/local/mysql]# chkconfig --list mysqld #查一下是否有mysqld服務,若有下面的步驟不用做,若沒有執行添加進去
[root@Centos6 /usr/local/mysql]# chkconfig --add mysqld
[root@Centos6 /usr/local/mysql]# service mysqld start #啓動mysqld服務,但是有報錯
Starting MySQL.171104 13:53:39 mysqld_safe Logging to '/var/log/mysqld.log'.
171104 13:53:39 mysqld_safe Starting mysqld daemon with databases from /data/mysql
[FAILED]
[root@Centos6 /usr/local/mysql]# 我這裏報錯是因爲我馬虎,將/etc/mysql/my.cnf裏的datadir = /data/mysql寫錯了,與生成數據庫時--datadir=/app/mysqldb/指定不一致
[root@Centos6 /usr/local/mysql]# touch /var/log/mysqld.log #若是在啓動服務時報錯,沒有日誌文件時,就創建,我的之前有,所有沒有報錯
[root@Centos6 /usr/local/mysql]# chown mysql /var/log/mysqld.log #給mysql對日誌文件有讀寫的操作權限
[root@Centos6 /usr/local/mysql]# ll /var/log/mysqld.log
-rw-r--r--. 1 mysql root 9772 Nov 4 13:56 /var/log/mysqld.log
[root@Centos6 /usr/local/mysql]#
[root@Centos6 /usr/local/mysql]# mysql_secure_installation #跑安全腳本,設口令密碼
[root@Centos6 /usr/local/mysql]# mysql -uroot -pcentos #登錄數據庫,創建數據庫並授權
Welcome to the MySQL monitor. Commands end with ; or \g.
Your MySQL connection id is 17
Server version: 5.5.57-MariaDB MariaDB Server
Copyright (c) 2000, 2013, Oracle and/or its affiliates. All rights reserved.
Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners.
Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.
mysql> show databases;
+--------------------+
| Database |
+--------------------+
| information_schema |
| mysql |
| performance_schema |
+--------------------+
3 rows in set (0.00 sec)
mysql> create database blogdb; #創建數據庫
Query OK, 1 row affected (0.00 sec)
mysql> show databases;
+--------------------+
| Database |
+--------------------+
| information_schema |
| blogdb |
| mysql |
| performance_schema |
+--------------------+
4 rows in set (0.01 sec)
mysql> grant all on blogdb.* to 'wpadm'@'localhost' identified by 'centos'; #授權給本機(localhost),使其用wpadm的身份及centos口令操作數據庫blogdb
Query OK, 0 rows affected (0.00 sec)
mysql> flush privileges; #刷新數據庫
Query OK, 0 rows affected (0.00 sec)
mysql> quit
Bye
[root@Centos6 /usr/local/mysql]#
3、編譯安裝php-5.6.31 ;
[root@Centos6 /usr/local/mysql]# cd
[root@Centos6 ~]# tar xvf php-5.6.31.tar.xz
[root@Centos6 ~]# cd php-5.6.31
[root@Centos6 ~/php-5.6.31]# ./configure --prefix=/app/php --with-mysql=/usr/local/mysql --with-openssl --with-mysqli=/usr/local/mysql/bin/mysql_config --enable-mbstring --with-freetype-dir --with-jpeg-dir --with-png-dir --with-zlib --with-libxml-dir=/usr --enable-xml --enable-sockets --enable-fpm --with-mcrypt --with-config-file-path=/etc/php/ --with-config-file-scan-dir=/etc/php.d --with-bz2
[root@Centos6 ~/php-5.6.31]# make && make install
[root@Centos6 ~/php-5.6.31]# mkdir /etc/php
[root@Centos6 ~/php-5.6.31]# cp php.ini-production /etc/php/php.ini #定義配置文件
[root@Centos6 ~/php-5.6.31]# cp sapi/fpm/init.d.php-fpm /etc/init.d/php-fpm #拷貝服務腳本
[root@Centos6 ~/php-5.6.31]# chmod +x /etc/init.d/php-fpm
[root@Centos6 ~/php-5.6.31]# chkconfig --add php-fpm #將php-fpm增加到服務中
[root@Centos6 ~/php-5.6.31]# cp /app/php/etc/php-fpm.conf.default /app/php/etc/php-fpm.conf #default裏的內容比較詳細,可以採用
[root@Centos6 ~/php-5.6.31]# service php-fpm start #啓動服務
4、配置httpd配置文件使其支持php
[root@Centos6 ~/php-5.6.31]# vim /app/httpd24/conf/httpd.conf
去掉下面兩行註釋
LoadModule proxy_module modules/mod_proxy.so
LoadModule proxy_fcgi_module modules/mod_proxy_fcgi.so
修改下面行,加上index.php
<IfModule dir_module>
DirectoryIndex index.php index.html
</IfModule>
加下面兩行
ProxyRequests Off
ProxyPassMatch ^/(.*\.php)$ fcgi://127.0.0.1:9000/app/httpd24/htdocs/$1
5、佈署wordpress;
[root@Centos6 ~/php-5.6.31]# cd
[root@Centos6 ~]# tar xvf wordpress-4.8.1-zh_CN.tar.gz
[root@Centos6 ~]# cp -r wordpress /app/httpd24/htdocs/wps #將解壓後的wordpress內容複製到編譯的httpd24下的htdocs主站點目錄下
[root@Centos6 ~]# cd /app/httpd24/htdocs/wps
[root@Centos6 /app/httpd24/htdocs/wps]# ls #裏面基本上都是些php程序腳本
index.php wp-admin wp-content wp-load.php wp-signup.php
license.txt wp-blog-header.php wp-cron.php wp-login.php wp-trackback.php
readme.html wp-comments-post.php wp-includes wp-mail.php xmlrpc.php
wp-activate.php wp-config-sample.php wp-links-opml.php wp-settings.php
[root@Centos6 /app/httpd24/htdocs/wps]# mv wp-config-sample.php wp-config.php #將例子的數據庫文件,改爲正式的,不然後來操作中會報錯:讀取數據庫路徑出錯,找不到wp-config.php這個文件
[root@Centos6 /app/httpd24/htdocs/wps]# vim wp-config.php #修改下面三行,創建的數據庫名、用戶名、密碼相對應的填上
/** WordPress數據庫的名稱 */
define('DB_NAME', 'blogdb');
/** MySQL數據庫用戶名 */
define('DB_USER', 'wpadm');
/** MySQL數據庫密碼 */
define('DB_PASSWORD', 'centos');
三:實驗測試;
在瀏覽器上輸入:172.17.253.35/wps (配置的虛擬機的ip) 然後出現如下界面;
然後填寫相應內容;
然後使用剛設定的用戶名和密碼登陸上去就可以了;
OK,博客就這樣搭建好了,是不是很簡單呀!*-*