用LAMP+Wordpress搭建博客
----高手一出手就是规范!!!
前言
因为之前用LNMP+wordpress搭建博客已经进行了很多次了,感觉原理已经掌握的还算可以了,就萌生了用LAMP+wordpress搭建一个博客。这个想法是在2018-5-4号出现的。5.5-5.6号正好是个星期六,星期天,于是我集两天时间,将这个想法完成。
这篇博文应该是写的还算详细,主要原因是我想给学弟看以下运维中最基本的一个服务是什么样子的,激发一下他们的学习兴趣。
太多的运维初级人员,眼高手低,总是看不起最基础的命令部分,还有一些人坐不住冷板凳,心比天高,总觉得看一下就会,没必要反复敲,重复敲。我觉得抱着这种心态的人员可以趁早的选择放弃运维,我觉得这种心态必将一事无成!
这篇博客讲的是最基础的一些内容,仅仅是用LAMP+Wordpress搭建出了一个博客而已,没有进行服务优化,比如数据库的分离,NFS的挂载,数据的备份,邮件的发送等等等。
未来还有多远,时间还有多少,前景又是怎样,不免心生焦炉,付出会成正比,一步一步走来,扬起漫天的尘埃!!!
环境准备
部署服务之前或接手一台linux主机之前必看内容
[root@web02 ~]# uname -m #《==查看主机的硬件架构名称 x86_64 [root@web02 ~]# uname -r #《查看内核发行号 2.6.32-573.el6.x86_64 [root@web02 ~]# cat /etc/system-release #《==操作系统版本 CentOS release 6.7 (Final) [root@web02 ~]# ip a | grep eth0 #《==查看IP 2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP qlen 1000 inet 10.0.0.7/24 brd 10.0.0.255 scope global eth0 [root@web02 ~]# hostname #《==查看主机名 web02
服务系统版本号
Apache 2.4.29+Php5.3.27+Mysql5.5.54+Wordpress-4.9.4 #《==本次博客所需的lamp+wordpress版本
Apache服务
部署apache服务前的环境准备
[root@web02 ~]# wget -O /etc/yum.repos.d/epel.repo http://mirrors.aliyun.com/repo/epel-6.repo #安装epel源,为后续的yum仓增加软件包数量。 [root@web02 ~]# yum repolist #显示已配置的仓库 root@web02 ~]# yum install zlib zlib-devel -y #向系统中安装软件包 [root@web02 ~]# mkdir /home/oldboy/tools #创建外来软件包存放目录 [root@web02 ~]# cd /home/oldboy/tools #切换目录
部署apache服务
[root@web02 tools]# wget https://mirrors.tuna.tsinghua.edu.cn/apache/httpd/httpd-2.4.29.tar.gz #wget:非交互式的网络文件下载工具 [root@web02 tools]# tar -xf httpd-2.4.29.tar.gz #解压 [root@web02 tools]# cd httpd-2.4.29 [root@web02 httpd-2.4.32]# less INSTALL [root@web02 httpd-2.4.32]# less README [root@web02 httpd-2.4.29]# ./configure --prefix=/application/apache2.4.29 \--enable-deflate \--enable-expires \--enable-headers \--enable-modules=most \--enable-so \--with-mpm=worker \--enable-rewrite #这一步一般用来生成 Makefile,为下一步的编译做准备,你可以通过在 configure 后加上参数来对安装进行控制,比如代码:./configure –prefix=/usr 意思是将该软件安装在 /usr 下面,执行文件就会安装在 /usr/bin (而不是默认的 /usr/local/bin),资源文件就会安装在 /usr/share(而不是默认的/usr/local/share)。同时一些软件的配置文件你可以通过指定 –sys-config= 参数进行设定。有一些软件还可以加上 –with、–enable、–without、–disable 等等参数对编译加以控制,你可以通过允许 ./configure –help 察看详细的说明帮助。 ...... checking for APR... no configure: error: APR not found. Please read the documentation. # 安装新版本的httpd软件会报以上错误,由于下载的软件版本过高,需要支持的apr系列软件版本也高,这里最好是编译安装apr软件,yum安装的时候版本一般是apr1.3.9,而此apache版本需要至少apr1.4.0及以上。下载以下三种软件包,然后编译安装,最后编译安装httpd就可以了 [root@web02 httpd-2.4.29]# cd .. [root@web02 tools]# wget http://archive.apache.org/dist/apr/apr-1.4.5.tar.gz [root@web02 tools]# wget http://archive.apache.org/dist/apr/apr-util-1.5.1.tar.gz [root@web02 tools]# wget http://jaist.dl.sourceforge.net/project/pcre/pcre/8.30/pcre-8.30.tar.gz [root@web02 tools]# tar -xf apr-1.4.5.tar.gz #压缩或解压缩 [root@web02 tools]# cd apr-1.4.5 [root@web02 apr-1.4.5]# ./configure --prefix=/usr/local/apr [root@web02 apr-1.4.5]# make && make install #make 编译 make install 安装 [root@web02 apr-1.4.5]# cd .. [root@web02 tools]# tar -xf apr-util-1.5.1.tar.gz [root@web02 tools]# cd apr-util-1.5.1 [root@web02 apr-util-1.5.1]# ./configure --prefix=/usr/local/apr-util --with-apr=/usr/local/apr/bin/apr-1-config [root@web02 apr-util-1.5.1]# make && make install [root@web02 apr-util-1.5.1]# cd .. [root@web02 tools]# tar xf pcre-8.30.tar.gz [root@web02 tools]# cd pcre-8.30 [root@web02 pcre-8.30]# ./configure --prefix=/usr/local/pcre [root@web02 pcre-8.30]# make && make install [root@web02 pcre-8.30]# cd .. # 继续编译安装httpd软件 [root@web02 tools]# cd httpd-2.4.29 [root@web02 httpd-2.4.29]# ./configure --prefix=/application/apache2.4.29 --enable-deflate --enable-expires --enable-headers --enable-modules=most --enable-so --with-mpm=worker --enable-rewrite --with-apr=/usr/local/apr --with-apr-util=/usr/local/apr-util --with-pcre=/usr/local/pcre [root@web02 httpd-2.4.29]# make && make install [root@web02 httpd-2.4.29]# ln -s /application/apache2.4.29/ /application/apache #设置符号(软)连接,以后的服务升级更容易 经验所得!!! [root@web02 httpd-2.4.29]# ll /application/apache lrwxrwxrwx 1 root root 26 Mar 26 13:30 /application/apache -> /application/apache2.4.29/ [root@web02 tools]# ls /application/apache bin build cgi-bin conf error htdocs icons include logs man manual modules [root@web02 httpd-2.4.29]# ll /application/apache/htdocs/ 总用量 4 -rw-r--r-- 1 root root 45 6月 12 2007 index.html [root@web02 httpd-2.4.29]# cd /application/apache/htdocs/ [root@web02 htdocs]# mkdir bbs www blog #创建 bbs www blog 这三个目录 对应域名 存放.html文件 可以检验后面的实验 [root@web02 htdocs]# cd ../conf/ [root@web02 conf]# ll 总用量 104 drwxr-xr-x 2 root root 4096 5月 5 15:03 extra -rw-r--r-- 1 root root 18358 5月 5 15:03 httpd.conf -rw-r--r-- 1 root root 13077 5月 5 15:03 magic -rw-r--r-- 1 root root 60847 5月 5 15:03 mime.types drwxr-xr-x 3 root root 4096 5月 5 15:03 original [root@web02 conf]# ls extra/ #根据Apache里的extra可以延伸到Nginx httpd-autoindex.conf httpd-mpm.conf httpd-dav.conf httpd-multilang-errordoc.conf httpd-default.conf httpd-ssl.conf httpd-info.conf httpd-userdir.conf httpd-languages.conf httpd-vhosts.conf httpd-manual.conf proxy-html.conf [root@web02 conf]# cp /application/apache/conf/extra/httpd-vhosts.conf{,.bak} #拷贝 懂? 经验 动配置文件之前先拷贝!!! [root@web02 conf]# vim httpd.conf #主配置文件 进行修改 193 ServerName 127.0.0.1:80 476 Include conf/extra/httpd-vhosts.conf
基于域名的虚拟主机
[root@web02 conf]# vim /application/apache/conf/extra/httpd-vhosts.conf # /application/apache/conf/extra/httpd-vhosts.conf ==》 虚拟主机配置文件 #将源文件里的内容全删修改为以下内容 <VirtualHost *:80> ServerAdmin [email protected] DocumentRoot "/application/apache2.4.29/htdocs/www" #www.etiantian.org ServerName www.etiantian.org ServerAlias etiantian.org ErrorLog "logs/www-error_log" CustomLog "logs/bbs-access_log" common </VirtualHost> # <VirtualHost *:80> ServerAdmin [email protected] DocumentRoot "/application/apache2.4.29/htdocs/bbs" #bbs.etiantian.org ServerName bbs.etiantian.org ErrorLog "logs/bbs-error_log" CustomLog "logs/bbs-access_log" common </VirtualHost> # <VirtualHost *:80> ServerAdmin [email protected] DocumentRoot "/application/apache2.4.29/htdocs/blog" #blog.etiantian.org ServerName blog.etiantian.org ErrorLog "logs/blog-error_log" CustomLog "logs/blog-access_log" common </VirtualHost> [root@web02 conf]# ../bin/apachectl -t Syntax OK [root@web02 conf]# ../bin/apachectl start #启动Apache [root@web02 conf]# ../bin/apachectl graceful # 优雅重启 相当于nginx服务中的reload #配置hosts [root@web02 conf]# vim /etc/hosts 172.16.1.7 web02 www.etiantian.org etiantian.org blog.etiant ian.org bbs.etiantian.org [root@web02 conf]# cd ../htdocs/bbs/ [root@web02 bbs]# ll 总用量 0 没有文件 会列出目录 #测试 1 linux 上测试 [root@web02 bbs]# curl www.etiantian.org <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2 Final//EN"> <html> <head> <title>Index of /</title> </head> <body> <h1>Index of /</h1> <ul></ul> </body></html> [root@web02 bbs]# vim /application/apache/conf/httpd.conf 231 # Options Indexes FollowSymLinks #注释掉 不让列出目录 [root@web02 bbs]# /application/apache/bin/apachectl graceful [root@web02 bbs]# curl www.etiantian.org <!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML 2.0//EN"> <html><head> <title>403 Forbidden</title> 没有首页 (其中之一) </head><body> <h1>Forbidden</h1> <p>You don't have permission to access / on this server.<br /> </p> </body></html> [root@web02 bbs]# cd ../ [root@web02 htdocs]# tree . ├── bbs ├── blog ├── index.html └── www 3 directories, 1 file [root@web02 htdocs]# echo 'apache www' >www/index.html #注意 这里用到了回显命令和输出 [root@web02 htdocs]# echo 'apache bbs' >bbs/index.html [root@web02 htdocs]# echo 'apache blog' >blog/index.html [root@web02 htdocs]# tree #以树状形式 显示出当前目录下的文件 . ├── bbs │ └── index.html ├── blog │ └── index.html ├── index.html └── www └── index.html 3 directories, 4 files [root@web02 htdocs]# curl www.etiantian.org apache www [root@web02 htdocs]# curl blog.etiantian.org apache blog [root@web02 htdocs]# curl bbs.etiantian.org apache bbs [root@web02 htdocs]# grep www.etiantian.org /etc/hosts 172.16.1.7 web02 www.etiantian.org etiantian.org blog.etiantian.org bbs.etiantian.org 测试 2 windows上测试 先做IP 域名解析 Win键+r -> drivers -> etc -> hosts(第一个)->10.0.0.7 www.etiantian.org etiantian.org blog.etiantian.org bbs.etiantian.org(写入hosts文件) 保存退出 ->在浏览器上 输入域名->看结果
Php服务
部署php服务之前的环境准备
yum install -y zlib-devel libxm12-devel libjpeg-devel libiconv-devel freetype-devel libpng-devel gd-devel curl-devel libxslt-devel libmcrypt-devel mhash mhash-devel mcrypt libxslt-devel cd /home/oldboy/tools wget http://ftp.gnu.org/pub/gnu/libiconv/libiconv-1.14.tar.gz tar -zxf libiconv-1.14.tar.gz cd libiconv-1.14 ./configure --prefix=/usr/local/libiconv make && make install echo $?
部署php服务
[root@web02 ~]# cd /home/oldboy/tools/ [root@web02 tools]# wget http://mirrors.sohu.com/php/php-5.3.27.tar.gz [root@web02 tools]# tar xf php-5.3.27.tar.gz [root@web02 tools]# cd php-5.3.27 [root@web02 php-5.3.27]# ./configure --prefix=/application/php5.3.27 --with-apxs2=/application/apache/bin/apxs --with-mysql=mysqlnd --with-pdo-mysql=mysqlnd --with-iconv-dir=/usr/local/libiconv --with-freetype-dir --with-jpeg-dir --with-png-dir --with-zlib --with-libxml-dir=/usr --enable-xml --disable-rpath --enable-bcmath --enable-shmop --enable-sysvsen --enable-inline-optimization --with-curl --enable-mbregex --enable-mbstring --with-mcrypt --with-gd --enable-gd-native-ttf --with-mhash --enable-pcntl --enable-sockets --with-xmlrpc --enable-soap --enable-short-tags --enable-static --with-xsl --enable-ftp [root@web02 php-5.3.27]# echo $? 0 [root@web02 php-5.3.27]# make && make install [root@web02 php-5.3.27]# echo $? 0 [root@web02 php-5.3.27]# cp php.ini-production /application/php/lib/php.ini [root@web02 php-5.3.27]# cd .. [root@web02 tools]# ln -s /application/php5.3.27/ /application/php [root@web02 tools]# ls /application/php bin etc include lib man
Apache与php实现整合
[root@web02 tools]# ls /application/apache/modules/ httpd.exp libphp5.so [root@web02 tools]# grep libphp5.so /application/apache/conf/httpd.conf LoadModule php5_module modules/libphp5.so [root@web02 php-5.3.27]# cd /application/apache/conf/ [root@web02 conf]# vim httpd.conf 390 AddType application/x-httpd-php.php.phtml 391 AddType application/x-httpd-php-source.phps 251 <IfModule dir_module> 252 DirectoryIndex index.php index.html 253 </IfModule> [root@web02 conf]# ../bin/apachectl -t AH00526: Syntax error on line 391 of /application/apache2.4.29/conf/httpd.conf: AddType requires at least two arguments, a mime type followed by one or more file extensions [root@web02 conf]#!vim 390 AddType application/x-httpd-php .php .phtml 391 AddType application/x-httpd-php-source .phps [root@web02 conf]# ../bin/apachectl -t Syntax OK [root@web02 conf]# ../bin/apachectl graceful [root@web02 conf]# vim /application/apache/conf/httpd.conf 165 User www 166 Group www [root@web02 conf]# useradd -u 513 -s /sbin/nologin www [root@web02 conf]# id www uid=513(www) gid=513(www) 组=513(www) [root@web02 conf]# /application/apache/bin/apachectl -t Syntax OK [root@web02 conf]# /application/apache/bin/apachectl graceful [root@web02 conf]# cd ../htdocs/bbs/ [root@web02 bbs]# ll 总用量 4 -rw-r--r-- 1 root root 11 5月 5 21:06 index.html [root@web02 bbs]# echo "<?php phpinfo(); ?>" >test_info.php
Mysql服务
部署mysql服务
[root@web02 tools]# wget http://mirrors.sohu.com/mysql/MySQL-5.5/mysql-5.5.54-linux2.6-x86_64.tar.gz # 获取mysql-5.5.54的二进制包 [root@web02 tools]# wget http://mirrors.sohu.com/mysql/MySQL-5.5/mysql-5.5.54-linux2.6-x86_64.tar.gz.md5 # 下载mysql-5.5.54的md5文件,校验是否有误 [root@web02 tools]# cat mysql-5.5.54-linux2.6-x86_64.tar.gz.md5 cfdc6bbd88e58c6207ffa290bad531b1 mysql-5.5.54-linux2.6-x86_64.tar.gz [root@web02 tools]# md5sum -c mysql-5.5.54-linux2.6-x86_64.tar.gz.md5 mysql-5.5.54-linux2.6-x86_64.tar.gz: 确定 [root@web02 tools]# useradd mysql -s /sbin/nologin -M # 创建mysql用户 [root@web02 tools]# id mysql uid=514(mysql) gid=514(mysql) 组=514(mysql) [root@web02 tools]# tar -xf mysql-5.5.54-linux2.6-x86_64.tar.gz # 解压mysql二进制包,需要稍等一会,文件略大 [root@web02 tools]# mv mysql-5.5.54-linux2.6-x86_64 /application/mysql-5.5.54 [root@web02 tools]# ln -s /application/mysql-5.5.54/ /application/mysql [root@web02 tools]# ls /application/mysql bin docs lib README sql-bench COPYING include man scripts support-files data INSTALL-BINARY mysql-test share # 初始化数据库 [root@web02 tools]# cd /application/mysql/ [root@web02 mysql]# chown -R mysql.mysql /application/mysql/ [root@web02 mysql]# ./scripts/mysql_install_db --basedir=/application/mysql --datadir=/application/mysql/data/ --user=mysql Installing MySQL system tables... 180506 16:18:38 [Note] Ignoring --secure-file-priv value as server is running with --bootstrap. 180506 16:18:38 [Note] /application/mysql/bin/mysqld (mysqld 5.5.54) starting as process 115108 ... OK Filling help tables... 180506 16:18:39 [Note] Ignoring --secure-file-priv value as server is running with --bootstrap. 180506 16:18:39 [Note] /application/mysql/bin/mysqld (mysqld 5.5.54) starting as process 115115 ... OK ...... # 出现以上这两个ok即代表已经安装成功 # 注意/tmp目录权限必须为1777,hosts文件也要做解析,否则在初始化安装的时候会报错 [root@web02 mysql]# ll -d /tmp/ drwxrwxrwt. 4 root root 4096 5月 6 16:18 /tmp/ [root@web02 mysql]# cat /etc/hosts 127.0.0.1 localhost localhost.localdomain localhost4 localhost4.localdomain4 ::1 localhost localhost.localdomain localhost6 localhost6.localdomain6 172.16.1.5 lb01 172.16.1.6 lb02 172.16.1.7 web02 www.etiantian.org etiantian.org blog.etiantian.org bbs.etiantian.org 172.16.1.8 web01 172.16.1.51 db01 db01.etiantian.org 172.16.1.31 nfs01 172.16.1.41 backup 172.16.1.61 m01 # 由于我们安装的目录是/application/,而系统默认的安装目录是/usr/bin/,故需修改启动文件中的 [root@web02 mysql]# cd bin/ [root@web02 bin]# sed 's#/usr/local/#/application/#g' mysqld_safe |grep application if echo '/application/mysql/share' | grep '^/application/mysql' > /dev/null relpkgdata=`echo '/application/mysql/share' | sed -e 's,^/application/mysql,,' -e 's,^/,,' -e 's,^,./,'` relpkgdata='/application/mysql/share' MY_PWD='/application/mysql' MY_BASEDIR_VERSION='/application/mysql' ledir='/application/mysql/bin' DATADIR=/application/mysql/data elif test -x /application/mysql/bin/my_print_defaults print_defaults="/application/mysql/bin/my_print_defaults" elif test -x /application/mysql/bin/mysql_print_defaults print_defaults="/application/mysql/bin/mysql_print_defaults" plugin_dir='/application/mysql/lib/plugin' [root@web02 bin]# sed -i 's#/usr/local/#/application/#g' mysqld_safe [root@web02 bin]# cd .. [root@web02 mysql]# cp support-files/my-small.cnf /etc/my.cnf cp:是否覆盖"/etc/my.cnf"? y # 启动 [root@web02 mysql]# /application/mysql/bin/mysqld_safe --user=mysql & [1] 115133 [root@web02 mysql]# Logging to '/application/mysql/data/web02.err'. 180506 16:22:14 mysqld_safe Starting mysqld daemon with databases from /application/mysql/data ^C # 可能会报以下错误,只需创建/var/lib/mysql目录即可 [root@web02 mysql]# mkdir /var/lib/mysql [root@web02 mysql]# /application/mysql/bin/mysqld_safe --user=mysql & [2] 115374 [root@web02 mysql]# 180506 16:22:40 mysqld_safe Logging to '/application/mysql/data/web02.err'. 180506 16:22:41 mysqld_safe A mysqld process already exists [2]+ Exit 1 /application/mysql/bin/mysqld_safe --user=mysql [root@web02 mysql]# lsof -i :3306 COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME mysqld 115356 mysql 10u IPv4 213713 0t0 TCP *:mysql (LISTEN) # 发现3306端口已经被监听,服务已启动 # 登录mysql测试 [root@web02 mysql]# /application/mysql/bin/mysql Welcome to the MySQL monitor. Commands end with ; or \g. Your MySQL connection id is 2 Server version: 5.5.54 MySQL Community Server (GPL) Copyright (c) 2000, 2016, 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> exit # 到此已经安装成功 Bye # 增加/application/mysql/bin:到环境变量中,并永久生效 [root@web02 mysql]# echo "PATH="/application/mysql/bin:$PATH"" >>/etc/profile [root@web02 mysql]# tail -1 /etc/profile PATH=/application/mysql/bin:/application/mysql/bin:/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin:/root/bin [root@web02 mysql]# echo $PATH /application/mysql/bin:/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin:/root/bin # 这里需要注意,全局路径配置一定要放在前面,否则会出现错误。 # 由于全局路径配置不当导致的问题案例http://blog.51cto.com/oldboy/1122867 #或者是直接把/application/mysql/bin/目录给拷贝到/usr/local/sbin/目录下 cp -a /application/mysql/bin/* /usr/local/sbin/ # 启动mysql的时候需要/application/mysql/bin/mysqld_safe,修改一下配置文件,直接/etc/init.d/mysqld start 即可 [root@web02 mysql]# sed 's#/usr/local/#/application/#g' support-files/mysql.server |grep application # If you install MySQL on some other places than /application/mysql, then you basedir=/application/mysql bindir=/application/mysql/bin datadir=/application/mysql/data sbindir=/application/mysql/bin libexecdir=/application/mysql/bin [root@web02 mysql]# sed -i 's#/usr/local/#/application/#g' support-files/mysql.server [root@web02 mysql]# cp support-files/mysql.server /etc/init.d/mysqld [root@web02 mysql]# chmod +x /etc/init.d/mysqld [root@web02 mysql]# /etc/init.d/mysqld stop Shutting down MySQL.180506 16:28:30 mysqld_safe mysqld from pid file /application/mysql/data/web02.pid ended SUCCESS! [1]+ Done /application/mysql/bin/mysqld_safe --user=mysql [root@web02 mysql]# lsof -i :3306 # 查看3306端口是否已经停用 [root@web02 mysql]# /etc/init.d/mysqld start Starting MySQL.. SUCCESS! [root@web02 mysql]# lsof -i :3306 COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME mysqld 115858 mysql 10u IPv4 214782 0t0 TCP *:mysql (LISTEN) # 添加至开机自启动 [root@web02 mysql]# chkconfig --add mysqld [root@web02 mysql]# chkconfig mysqld on [root@web02 mysql]# chkconfig --list mysqld mysqld 0:关闭 1:关闭 2:启用 3:启用 4:启用 5:启用6:关闭 [root@web02 mysql]# tail -10 /application/mysql/data/web02.err 180506 16:28:51 InnoDB: Completed initialization of buffer pool 180506 16:28:51 InnoDB: highest supported file format is Barracuda. 180506 16:28:51 InnoDB: Waiting for the background threads to start 180506 16:28:52 InnoDB: 5.5.54 started; log sequence number 1595675 180506 16:28:52 [Note] Server hostname (bind-address): '0.0.0.0'; port: 3306 180506 16:28:52 [Note] - '0.0.0.0' resolves to '0.0.0.0'; 180506 16:28:52 [Note] Server socket created on IP: '0.0.0.0'. 180506 16:28:52 [Note] Event Scheduler: Loaded 0 events 180506 16:28:52 [Note] /application/mysql/bin/mysqld: ready for connections. Version: '5.5.54' socket: '/tmp/mysql.sock' port: 3306 MySQL Community Server (GPL) [root@web02 mysql]# mysqladmin -u root password 'oldboy123' #当root密码为空时设置 [root@web02 mysql]# mysqladmin -u root -h web01 password 'oldboy123' #当root密码不为空时设置root密码需要加-h选项来指定主机名。 [root@web02 mysql]# mysqladmin -u root -p oldboy123 password '123456' #也可在已知root密码情况下更改root密码 #登陆方法 [root@web02 mysql]# mysql -uroot -p Enter password: [root@web02 mysql]# mysql -uroot -poldboy123
测试mysql服务与apache服务的连接性
[root@web02 bbs]# vim test_mysql.php <?php $link_id=mysql_connect('localhost','root','oldboy123') or mysql_error(); if($link_id){ echo "Mysql successful by lk !"; }else{ echo mysql_error(); } ?>
博客搭建
创建wordpress数据库
# 先登录mysql,创建WordPress所需要的数据库 [root@web02 bbs]# mysql -uroot -poldboy123 mysql> show databases; +--------------------+ | Database | +--------------------+ | information_schema | | mysql | | performance_schema | | test | +--------------------+ 4 rows in set (0.11 sec) mysql> show databases; +--------------------+ | Database | +--------------------+ | information_schema | | mysql | | performance_schema | | test | +--------------------+ 4 rows in set (0.00 sec) mysql> create database wordpress; Query OK, 1 row affected (0.00 sec) mysql> show databases; #显示数据库 +--------------------+ | Database | +--------------------+ | information_schema | | mysql | | performance_schema | | test | | wordpress | +--------------------+ 5 rows in set (0.00 sec) mysql> drop database test; # 删除多余的test数据库 Query OK, 0 rows affected (0.04 sec) mysql> select user(); +----------------+ | user() | +----------------+ | root@localhost | +----------------+ 1 row in set (0.00 sec) mysql> select user,host from mysql.user; +------+-----------+ | user | host | +------+-----------+ | root | 127.0.0.1 | | root | ::1 | | | localhost | | root | localhost | | | web02 | | root | web02 | +------+-----------+ 6 rows in set (0.00 sec) mysql> drop user "root"@"::1"; Query OK, 0 rows affected (0.00 sec) mysql> drop user ""@"localhost"; Query OK, 0 rows affected (0.00 sec) mysql> drop user ""@"web02"; Query OK, 0 rows affected (0.00 sec) mysql> select user,host from mysql.user; +------+-----------+ | user | host | +------+-----------+ | root | 127.0.0.1 | | root | localhost | | root | web02 | +------+-----------+ 3 rows in set (0.00 sec) # 为wordpress数据库创建专门管理的wordpress用户并授予所有权限 mysql> grant all on wordpress.* to wordpress@'localhost' identified by '123456'; Query OK, 0 rows affected (0.00 sec) mysql> select user,host from mysql.user; +-----------+-----------+ | user | host | +-----------+-----------+ | root | 127.0.0.1 | | root | localhost | | wordpress | localhost | | root | web02 | +-----------+-----------+ 4 rows in set (0.00 sec) mysql> show grants for wordpress@'localhost'; # 查看指定用户所具有的权限 mysql> flush privileges; # 刷新一下,使用户权限生效
安装Wordpress
[root@web02 bbs]# cd /home/oldboy/tools/ [root@web02 tools]# wget https://cn.wordpress.org/wordpress-4.9.4-zh_CN.tar.gz [root@web02 tools]# tar -xf wordpress-4.9.4-zh_CN.tar.gz [root@web02 tools]# cp -a wordpress/* /application/apache/htdocs/bbs/ [root@web02 tools]# ls /application/apache/htdocs/bbs/ index.html wp-admin wp-includes wp-signup.php index.php wp-blog-header.php wp-links-opml.php wp-trackback.php license.txt wp-comments-post.php wp-load.php xmlrpc.php readme.html wp-config-sample.php wp-login.php test_info.php wp-content wp-mail.php wp-activate.php wp-cron.php wp-settings.php [root@web02 tools]# chown -R www.www /application/apache/htdocs/bbs/
创建自己的博客
接下来请开发你自己的博客吧!
显示请求头信息
[root@web02 ~]# curl -I bbs.etiantian.org HTTP/1.1 200 OK Date: Sun, 06 May 2018 08:54:22 GMT Server: Apache/2.4.29 (Unix) PHP/5.3.27 X-Powered-By: PHP/5.3.27 Link: <http://bbs.etiantian.org/index.php/wp-json/>; rel="https://api.w.org/" Content-Type: text/html; charset=UTF-8
总结
本次搭建博客是非常愉快的,通过本次搭建学到了很多,最主要的收获是对部署Apache服务有了一个全新的认识,在部署时出现了APR错误,这个错误在以往中是没有见过的,通过这个错误,我对编译安装又有了一个全新的认识,嘿嘿嘿,肯定想不到吧,怎么Apache服务与编译安装扯上了关系吧。在部署一个服务时会牵扯到许多知识,所以很容易就会遇到自己觉得自己会了的知识,实际上还存在欠缺,这是可贵的。本次博客搭建并不算完美,存在一些瑕疵,虽不影响博客搭建,但是一个合格运维人员所不愿出现的,就是缺少优化,前言中说的有关优化在下一篇博客将会解决。