准备阶段:
1、两台安装了centos6.9的机器,A和B;
A:192.168.1.100
B:192.168.1.102
2、准备软件包
apr-1.6.2.tar.gz apr-util-1.6.0.tar.gz #Apache可移植运行库,为上层应用程序提供一个可以跨越多操作系统平台的底层支持接口库 httpd-2.4.27.tar.bz2 #6.9上默认http是2.2版本,本次编译2.4版本 PHP-5.6.31.tar.bz2 |
实验目标:
搭建个人博客,并能够正常访问
步骤1、
在B机器上以二进制方式安装mariadb
cd /usr/local/src tar xvf mariadb-5.5.57-linux-x86_64.tar.gz -C /usr/local/ #二进制安装事前已经编译好规则,所以必须指定目录 cd /usr/local/ ln -vs mariadb-5.5.57-linux-x86_64/ MysqL |
useradd -r -m -d /app/MysqLdb -s /sbin/nologin MysqL cd MysqL/ scripts/MysqL_install_db --datadir=/app/MysqLdb --user=MysqL #datadir指定数据库存放数据的位置 mkdir /etc/MysqL cp support-files/my-large.cnf /etc/MysqL/my.cnf vim /etc/MysqL/my.cnf [MysqLd] datadir = /app/MysqLdb #在配置文件中指定数据存放的目录 innodb_file_per_table = ON |
cp support-files/MysqL.server /etc/init.d/MysqLd chkconfig --add MysqLd chkconfig --list #为了省事将之前安装的MysqL服务配置文件复制一份,并加入服务列表 service MysqLd start #此时开启我们二进制安装的MysqL会失败,原因是缺少文件,如下 touch /var/log/MysqLd.log chown MysqL /var/log/MysqLd.log #由于缺少日志文件导致服务启动失败 #还得修改日志文件所有者,保证MysqL用户有权限访问此文件 #此时启动数据库就会会成功 |
vim /etc/profile.d/MysqL.sh export PATH=/usr/local/MysqL/bin/:$PATH . /etc/profile.d/MysqL.sh #添加PATH环境变量,并使之生效 MysqL_secure_installation #初始化数据库,设置root密码等信息 #MysqL的root与linux的root没有任何关系 |
MysqL -uroot -pcentos #root的登陆信息 create datebase wpdb; #创建数据库wpdb,其作用是为以后搭建的博客提供数据库存储 grant all on wpdb.* to wpuser@'192.168.1.%' identified by '123456'; |
步骤2、
在A机器上编译安装http
cd /usr/local/src yum groupinstall "development tools" yum install openssl-devel pcre-devel expat-devel #为了编译安装顺利进行,提前把开发包安装好 tar xvf apr-1.6.2.tar.gz tar xvf apr-util-1.6.0.tar.gz tar xvf httpd-2.4.27.tar.bz2 cp -r apr-1.6.2 httpd-2.4.27/srclib/apr cp -r apr-util-1.6.0 httpd-2.4.27/srclib/apr-util #将apr整合到http中 |
cd /usr/local/src/httpd-2.4.27/
./configure --prefix=/app/httpd24 \ #http的安装目录
--enable-so \ #启动模块动态装卸载
--enable-ssl \ #启动ssl功能
--enable-rewrite \ #启动url重写功能
--with-zlib \ #支持数据包压缩
--with-pcre \ #支持正则表达式
--with-included-apr \
--enable-modules=most \ #启用的模块
--enable-mpms-shared=all \ #以共享方式编译的模块
--with-mpm=prefork #指定http的工作模式为prefork
#编译前制定一些配置规则
#以上选项可以使用./configure --help来获得更多帮助信息
make -j 4 && make install
#编译安装
vim /etc/profile.d/lamp.sh PATH=/app/httpd24/bin/:$PATH . /etc/profile.d/lamp.sh |
cp /etc/init.d/httpd /etc/init.d/httpd24 vim /etc/init.d/httpd24 apachectl=/app/httpd24/bin/apachectl #apachectl生效的目录,配置的时候就已经指定好了,下同 httpd=${HTTPD-/app/httpd24/bin/httpd} prog=httpd pidfile=${PIDFILE-/app/httpd24/logs/httpd.pid} #http的进程id存放目录 lockfile=${LOCKFILE-/var/lock/subsys/httpd24} #锁文件指定的目录 chkconfig --add httpd24 chkconfig --list httpd24 #将我们编译的httpd24添加到服务集中,以后就可以使用service开启或者关闭 service httpd24 start |
步骤3、
在A机器上编译安装PHP
yum install libxml2-devel bzip2-devel libmcrypt-devel tar xvf PHP-5.6.31.tar.xz |
cd /usr/local/PHP-5.6.31 ./configure --prefix=/app/PHP \ #PHP安装目录 --with-MysqL=/usr/local/MysqL \ #PHP安装目录,对MysqL的支持 --with-MysqLi=/usr/local/MysqL/bin/MysqL_config \ #MysqLi扩展技术不仅可以调用MysqL的存储过程、处理MysqL事务,而且还可以使访问数据库工作变得更加稳定 --with-openssl \ #支持ssl --enable-mbstring \ #支持多字节、字符串 --with-jpeg-dir \ #支持jpeg格式的图片 --with-freetype-dir \ #支持freetype字体库 --with-zlib \ #支持压缩 --with-libxml-dir=/usr \ #支持libxml --enable-xml \ #支持xml --with-apxs2=/app/httpd24/bin/apxs \ #整合 apache,apxs功能是使用mod_so中的LoadModule指令,加载指定模块到 apache,要求 apache 要打开SO模块 --with-mcrypt \ #mcrypt算法扩展 --with-config-file-path=/etc \ #配置文件路径,即PHP.ini路径 --with-config-file-scan-dir=/etc/PHP.d \ # --with-bz2 #支持压缩 #此过程与http编译安装类似,具体参数可以用 ./configure --help来获得帮助信息 |
vi /etc/profile.d/lamp.sh PATH=/app/PHP/bin:/app/httpd24/bin/:/usr/local/MysqL/bin/:$PATH . /etc/profile.d/lamp.sh |
cp PHP.ini-production /etc/PHP.ini vim /app/httpd24/conf/httpd.conf #在文件尾部加两行 AddType application/x-httpd-PHP .PHP AddType application/x-httpd-PHP-source .PHPs #修改下面行 <IfModule dir_module> DirectoryIndex index.PHP index.html </IfModule> service httpd24 restart |
步骤4、
测试数据库连接
vim /app/httpd24/htdocs/index.PHP <html><body><h1>It works!</h1></body></html> <?PHP $MysqLi=new MysqLi("192.168.1.102","wpuser","123456"); if(MysqLi_connect_errno()){ echo "连接数据库失败!"; $MysqLi=null; exit; } echo "连接数据库成功!"; $MysqLi->close(); PHPinfo(); ?> |
步骤5、
tar xvf /usr/local/src/wordpress-4.8.1-zh_CN.tar.gz -C /app/httpd24/htdocs #wordpress目录必须放在http的主目录下 cd /app/httpd24/htdocs mv wordpress/ blog/ |
cd /app/httpd24/htdocs/blog/ cp wp-config-sample.PHP wp-config.php vim wp-config.php #编辑wordpress的配置文件,主要修改与数据库连接信息 define('DB_NAME','wpdb'); define('DB_USER','wpuser'); define('DB_PASSWORD','123456'); #为wordpress账户设置的密码 /** MysqL主机 */ define('DB_HOST','192.168.1.102'); #数据库主机地址 |
步骤6、
测试
在浏览器输入 http://192.168.1.100/blog/
个人博客http://192.168.1.100/blog/
博客管理界面http://192.168.1.100/blog/wp-admin/