编译安装LAMP部署Wordpress搭建个人博客
编译安装LAMP部署WordPress搭建个人博客
前言
WordPress是一个基于PHP和MySQL的免费开放源代码内容管理系统(CMS),WordPress必须安装在Web服务器上,它可以是Internet托管服务的一部分,也可以作为网络主机。目前WordPress在访问量前1000万的网站里的使用率超过了28%,是目前最流行的网站管理和博客使用的Web系统。
WordPress 拥有世界上最强大的插件和模板,这也是WordPress非常流行的一个特性。当前WordPress插件数据库中有超过18000个插件,包括SEO、控件等等。个人可以根据它的核心程序提供的规则自己开发模板和插件。这些插件可以快速地把你的博客改变成cms、forums、门户等各种类型的站点。
拥有一个属于自己的博客,应该是每个人梦寐以求的吧。本文就是要使用WordPress在LAMP的环境中来搭建个人的博客平台,关于LAMP之前的文章已经介绍过了,是现在最主流的网站解决方案。所以我们要在之前学习的基础上来完成本次的实验。
实验环境
本次实验使用的是CentOS、Apache、Mariadb、PHP的LAMP构架。
CentOS 是一个基于Red Hat Linux 提供的可*使用源代码所编译而成的。
Apache 是世界使用排名第一的Web服务器软件。它可以运行在几乎所有广泛使用的计算机平台上,由于其跨平台和安全性被广泛使用,是最流行的Web服务器端软件之一。
MariaDB 数据库管理系统是MySQL的一个重要分支,也是目前最流行的开源数据库。
PHP 是一种被广泛使用的开源的嵌入式脚本语言,可以高效的执行动态网页。
系统和软件包
名称 | 版本 | 包名 | 下载地址 |
---|---|---|---|
CentOS | 7.3 | CentOS-7-x86_64-DVD-1611.iso | http://mirrors.aliyun.com/centos/7.3.1611/isos/x86_64/ |
Apache | 2.4.28 | httpd-2.4.28.tar.gz | http://httpd.apache.org/download.cgi#apache24 |
APR | 1.6.2 | apr-1.6.2.tar.gz | http://apr.apache.org/download.cgi |
APR-util | 1.6.0 | apr-util-1.6.0.tar.gz | http://apr.apache.org/download.cgi |
PHP | 7.1.10 | php-7.1.10.tar.bz2 | https://secure.php.net/downloads.php |
Mariadb | 10.2.8 | mariadb-10.2.8-linux-x86_64.tar.gz | https://downloads.mariadb.org/ |
WordPress | 4.8.2 | wordpress-4.8.2.tar.gz | https://wordpress.org/download/ |
将准备好的包准备好统一放入一个目录中
[aaa@qq.com tool]# ls
apr-1.6.2.tar.gz httpd-2.4.28.tar.gz 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.2.tar.gz
编译安装httpd
安装开发包组和必要软件包
[root@CentOS7 ~]# yum groupinstall 'development tools' -y
[root@CentOS7 ~]# yum install openssl-devel pcre-devel expat-devel -y
注意:如果不安装开发包组和必要包组,在编译安装中会出现错误,导致安装失败。
解压httpd、 ARP、 ARP-util的软件包
[root@CentOS7 tool]# tar xvf httpd-2.4.28.tar.gz
[root@CentOS7 tool]# tar xvf apr-1.6.2.tar.gz
[root@CentOS7 tool]# tar xvf apr-util-1.6.0.tar.gz
将APR和APR-util目录移动到httpd的srclib目录下
[root@CentOS7 tool]# mv apr-1.6.2 httpd-2.4.28/srclib/apr
[root@CentOS7 tool]# mv apr-util-1.6.0 httpd-2.4.28/srclib/apr-util
注意:不管是移动还是复制到httpd的srclib目录下,一定要对应的文件名改成apr和apr-util。
开始编译安装
[aaa@qq.com tool]cd httpd-2.4.28
[aaa@qq.com httpd-2.4.28]# ./configure --prefix=/app/httpd24 --sysconfdir=/etc/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
[aaa@qq.com httpd-2.4.28]# echo $? #查看上一步命令是否成功,如果显示0,则检查当前环境满足安装要求,可以继续安装操作。如果显示非0则排错后,重新检查
0
[aaa@qq.com httpd-2.4.28]# make && make install
[aaa@qq.com httpd-2.4.28]# echo $?
0 #安装成功
[aaa@qq.com app]# ls
httpd24 tool
创建用户和新的环境变量
[root@CentOS7 app]# useradd -r -d /usr/share/httpd24 -s /sbin/nologin apache
[root@CentOS7 app]# vim /etc/profile.d/httpd24.sh
export PATH=/app/httpd24/bin/:/usr/local/mysql/bin/:$PATH
[root@CentOS7 app]# . /etc/profile.d/httpd24.sh
使用apachectl命令控制Apache服务
apachectl (参数)
参数 | 功能 |
---|---|
start | 启动Apache httpd进程,如果已经启动则会报错 |
stop | 关闭Apachehttpd进程 |
restart | 重启Apache http的后台守护进程,如果进程尚未运行,则启动它。在重新启动守护进程之前,此命令会使用configtest自动检查配置文件,以确保Apache不会死掉。 |
help | 查看帮助信息 |
graceful | 优雅地重新启动Apache httpd后台守护进程。如果守护进程尚未启动,则启动它。它和标准重新启动的不同之处在于:不会中断当前已经打开的连接,也不会立即关闭日志。这意味着,如果在日志滚动脚本使用它,则在处理日志之前必须加入一个实实在在的延迟,以确保老的日志文件在被处理前已经关闭。在重新启动守护进程之前,此命令会使用configtest自动检查配置文件,以确保Apache不会死掉 |
graceful | 优雅地停止Apache httpd后台守护进程。它和标准停止的不同之处在于:不会中断当前已经打开的连接,也不会立即关闭日志 |
fullstatus | 显示服务器的完整状态信息 |
configest | 检查设置文件中的语法是否正确,等价于apachectl -t |
安装Mariadb
安装必要的软件包
[root@CentOS7 ~]# yum remove mariadb* #CentOS7默认安装mariadb,为了防止冲突提前删除
[root@CentOS7 ~]# yum -y install libaio-devel
注意:一定要删除所有Mariadb的关联包组,否则后面实验服务会无法启动。
解压Mariadb到指定目录
[root@CentOS7 ~]# cd /app/tool
[root@CentOS7 tool]# tar xvf mariadb-10.2.8-linux-x86_64.tar.gz /usr/local/mysql
[root@CentOS7 tool]# cd /usr/loacl
[root@CentOS7 local]# mv mariadb-10.2.8-linux-x86_64/ mysql #将解压的目录改名成mysql
注意:一定要把解压的Mariadb的目录名改成mysql,或者创建名为mysql的软链接。
设置Mariadb配置文件
[root@CentOS7 local]# mkdir /etc/mysql
[root@CentOS7 mysql]# cp /usr/local/mysql/support-files/my-huge.cnf /etc/mysql/my.cnf
[root@CentOS7 mysql]# vim /etc/mysql/my.cnf
[mysqld] #找到[mysql]的位置,在下面写入以下三行
datadir = /app/mysqldb
innodb_file_per_table = on
skip_name_resolve = on
创建mysql账号
[root@CentOS7 mysql]# useradd -r -m -d /app/mysqldb -s /sbin/nologin mysql
生成系统数据库
[root@CentOS7 mysql]# cd /usr/local/mysql/
[root@CentOS7 mysql]# scripts/mysql_install_db --datadir=/app/mysqldb --user=mysql
[root@CentOS7 mysql]# ls /app/mysqldb/ #查看系统数据库是否生成
aria_log.00000001 ib_buffer_pool ib_logfile0 mysql mysql-bin.index performance_schema
aria_log_control ibdata1 ib_logfile1 mysql-bin.000001 mysql-bin.state test
设置启动和日志文件
[root@CentOS7 mysql]# cp -v /usr/local/mysql/support-files/mysql.server /etc/init.d/mysqld
[root@CentOS7 mysql]# chkconfig --add mysqld
[root@CentOS7 mysql]# chkconfig mysqld on
[root@CentOS7 mysql]# mkdir /var/log/mariadb/
[root@CentOS7 mysql]# touch /var/log/mariadb/mariadb.log #创建日志文件
[root@CentOS7 app]# systemctl status mysqld
[root@CentOS7 app]# ss -ntl #Mariadb的端口3306已经打开
State Recv-Q Send-Q Local Address:Port Peer Address:Port
LISTEN 0 80 :::3306 :::*
数据库安全初始化
[aaa@qq.com app]# mysql_secure_installation
NOTE: RUNNING ALL PARTS OF THIS SCRIPT IS RECOMMENDED FOR ALL MariaDB
SERVERS IN PRODUCTION USE! PLEASE READ EACH STEP CAREFULLY!
In order to log into MariaDB to secure it, we'll need the current
password for the root user. If you've just installed MariaDB, and
you haven't set the root password yet, the password will be blank,
so you should just press enter here.
Enter current password for root (enter for none): #此处回车继续
OK, successfully used password, moving on...
Setting the root password ensures that nobody can log into the MariaDB
root user without the proper authorisation.
Set root password? [Y/n] y #设置数据库密码
New password: #输入密码
Re-enter new password: #再次输入密码
Password updated successfully!
Reloading privilege tables..
... Success!
By default, a MariaDB installation has an anonymous user, allowing anyone
to log into MariaDB without having to have a user account created for
them. This is intended only for testing, and to make the installation
go a bit smoother. You should remove them before moving into a
production environment.
Remove anonymous users? [Y/n] y #是否删除匿名用户,出去安全考虑这里选择删除
... Success!
Normally, root should only be allowed to connect from 'localhost'. This
ensures that someone cannot guess at the root password from the network.
Disallow root login remotely? [Y/n] n #不允许root远程登录数据库,这里选择n,我们后续实验需要远程登录数据库
... skipping.
By default, MariaDB comes with a database named 'test' that anyone can
access. This is also intended only for testing, and should be removed
before moving into a production environment.
Remove test database and access to it? [Y/n] y #删除test数据库,如果不需要可以删除
- Dropping test database...
... Success!
- Removing privileges on test database...
... Success!
Reloading the privilege tables will ensure that all changes made so far
will take effect immediately.
Reload privilege tables now? [Y/n] y #之前的设置是否生效,这里选择y,设置成功
... Success!
Cleaning up...
All done! If you've completed all of the above steps, your MariaDB
installation should now be secure.
Thanks for using MariaDB!
创建blog数据库和授权用户
[root@CentOS7 app]# mysql -uroot -p
Enter password: #输入刚刚设置的数据库密码
MariaDB [(none)]> create database wpdb; #创建blog数据库
MariaDB [(none)]> grant all on wpdb.* to aaa@qq.com'192.168.%.%' identified by '123456';
#授权用户远程登录数据库,限制访问ip为192.168.%.%
MariaDB [(none)]> grant all on wpdb.* to aaa@qq.com'localhost' identified by '123456'
#授权用户本地登录数据库
MariaDB [(none)]> quit
编译安装PHP
安装相关软件包
[root@CentOS7 app]# yum install libxml2-devel bzip2-devel libmcrypt-devel -y
解压PHP并安装
[aaa@qq.com app]# cd /app/tool
[aaa@qq.com tool]# tar xvf php-7.1.10.tar.xz #解压PHP包
[rootaaa@qq.com tool]# cd php-7.1.10/
[aaa@qq.com tool]# ./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
[aaa@qq.com tool]# echo $?
0
[aaa@qq.com tool]# make && make install
[aaa@qq.com tool]# echo $?
0
配置文件设置
[root@CentOS7 php-7.1.10]# cp php.ini-production /etc/php.ini
[root@CentOS7 php-7.1.10]# vim /etc/httpd24/httpd.conf
<IfModule dir_module>
DirectoryIndex index.php index.html #在此处加入index.php
</IfModule>
#在文件最后写入下面两行代码
AddType application/x-httpd-php .php
AddType application/x-httpd-php-source .phps
[root@CentOS7 php-7.1.10]# apachectl restart
测试连接数据库
编辑测试文件
[aaa@qq.com htdocs]# cat index.php
<?php
$mysqli=new mysqli("192.168.15.130","wpuser","123456");
#注意:这行代码中的ip地址必须与数据库所在的ip地址一致,数据库的用户和密码一定要写正确
if(mysqli_connect_errno()){
echo "连接数据库失败!";
$mysqli=null;
exit;
}
echo "连接数据库成功!";
$mysqli->close();
?>
注意:如果测试页面出错,出现直接下载网页的情况,就需要在/etc/httpd24/httpd.conf进行修改
[root@CentOS7 php-7.1.10]# vim /etc/httpd24/httpd.conf
LoadModule php7_module modules/libphp7.so #在文件中加入代码加载模块libphp.so
[root@CentOS7 php-7.1.10]# apachectl restart
使用浏览器输入主机ip进行测试,成功就表示LAMP构建搭建成功。如果显示连接数据库失败,请检查是不是数据库IP地址或者用户名和密码有错误,导致测试失败。
设置WordPress
解压WordPress包
[root@CentOS7 php-7.1.10]# cd /app/tool
[root@CentOS7 tool]# tar xvf wordpress-4.8.2.tar.gz
[root@CentOS7 tool]# mv wordpress /app/httpd24/htdocs/blog
#将wordpress目录移动到httpd的htdosc目录中,并改名成blog,方便访问
创建WordPress配置文件
/** The name of the database for WordPress */
define('DB_NAME', 'wpdb'); #填写数据库名
/** MySQL database username */
define('DB_USER', 'wpuser'); #填写数据库的用户名
/** MySQL database password */
define('DB_PASSWORD', '123456'); #填写数据库的的用户名密码
/** MySQL hostname */
define('DB_HOST', '192.168.15.130'); #填写数据库的地址,默认是本地的,如果数据库在其他主机上,则填写对应的IP地址
/** Database Charset to use in creating database tables. */
define('DB_CHARSET', 'utf8'); #数据库的字符集格式
设置blog管理账户
填写网站名称,网站的管理账号和密码,还有自己的邮箱。
点击 log in 就可以登录了。
输入刚刚设置的后台管理账号和密码。
个人blog的后台管理页面。
在浏览器中输入 地址/blog 就可以访问到blog了。
设置首页
[root@CentOS7 htdocs]# ln -s blog/index.php index.php
[root@CentOS7 htdocs]# ln -s blog/wp-login.php login.php
[root@CentOS7 htdocs]# ls
blog index.html index.php login.php
可以在htdocs的目录下建立两个软链接:index.php和login.php,分别指向blog目录下的index.php和wp-login.php文件。这样直接通过首页访问到blog,方便用户使用。
如果想进入后台管理界面可以在地址后面加/login.php就可以进入后台管理页面。
总结
本文通过在LAMP的构架上使用WordPress搭建个人的blog平台的,帮助大家更好的理解LAMP的结构和具体配置,由于实验只是在一台主机上,所以操作上还比较简单。后面我们会通过多台主机搭建稍微复杂一点的平台结构。
WordPress拥有丰富的主题和插件,大家可以在后期根据自己的喜好,选择自己的喜欢的主题和插件来搭建属于自己风格的blog,但注意不能安装太多插件,否则会拖累网站速度和降低用户体验。