本来打算买台服务器,搭建个人博客的,可这马上就到双十一了,也不知道阿里云会不会有优惠,所以就简单的模拟搭建一下练练手,等买到服务器再自己搭建一个*-*
一:实验准备;
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,博客就这样搭建好了,是不是很简单呀!*-*