今天写的是单台lnmp 搭建wordpress 博客,后面有时间会写分布式的。
搭建环境: CentOS release 6.9 (Final) x86_64 (iptables关闭 selinux关闭 /tmp目录权限1777) base和epoll 源都是阿里云的。
因为Nginx 前面的文章已经试验好几天了,所以继续用web01只不过改了个主机名字变成lnmp名字 的虚拟机 直接搭建lnmp,不知道的小伙伴去我的主页上找前面的几篇文章安装好nginx 在继续这篇文章。
lnmp 我就不说是什么了,感觉很弱智。
软件包下载地址:https://pan.baidu.com/s/1os8v93pQAFPTt_EO_Vbcrw 密码:2jx9
本文中用到的软件包。
上传软件包到虚拟机
1.进入软件包存放目录解压
cd /server/tools
[root@lnmp /server/tools]# tar xf mysql-5.6.34-linux-glibc2.5-x86_64.tar.gz
2.移动解压完的目录到app目录下,并创建一个软连接
[root@lnmp /server/tools]# mv mysql-5.6.34-linux-glibc2.5-x86_64 /application/mysql-5.6.34
[root@lnmp /server/tools]# ln -s /application/mysql-5.6.34/ /application/mysql
3.授权数据存储目录,授权为mysql用户管理
[root@lnmp /server/tools]# useradd -s /sbin/nologin -M mysql
[root@lnmp /server/tools]# cd /application/mysql/
[root@lnmp mysql]# chown -R mysql.mysql /application/mysql/data/
至此,数据安装部署工作完成
接下来进行数据库初始化操作
作用:创建基本数据库信息,生成到/data目录中
#1. 确认软件安装在哪里
#2. 确认数据存放在哪里
#3. 确认MySQL使用的用户谁?
1—定义内容
[root@lnmp mysql]# /application/mysql/scripts/mysql_install_db --basedir=/application/mysql --datadir=/application/mysql/data --user=mysql
2—复制启动脚本
cp /application/mysql/support-files/mysql.server /etc/init.d/mysqld
3—修改启动脚本 和 mysql命令中的路径
[root@lnmp mysql]# sed -i 's#/usr/local/mysql#/application/mysql#g' /application/mysql/bin/mysqld_safe /etc/init.d/mysqld
4—复制默认的配置文件到/etc目录下
[root@lnmp mysql]# \cp /application/mysql/support-files/my-default.cnf /etc/my.cnf
5—启动mysql 服务
[root@lnmp mysql]# /etc/init.d/mysqld start
至此,mysql数据库安装与启动完成;可以检测进程和服务端口,确认mysql服务是否启动正确
接下来就是登录mysql 进去看看。
默认登录mysql数据库的方法是:/application/mysql/bin/mysql
6—为了省事,创建一个变量添加到profile 文件里,直接输入mysql 就可以登录了。
[root@lnmp mysql]# echo 'export PATH=/application/mysql/bin:$PATH' >>/etc/profile
[root@lnmp mysql]# source /etc/profile #使新添加的内容生效
注意退出mysql时尽量不要用ctrl+c退出,用ctrl+d 退出mysql,也可以直接输入exit或quit 退出
7—让mysql 开机自启动
[root@lnmp mysql]# chkconfig --add mysqld
[root@lnmp mysql]# chkconfig mysqld on
8—设置登录mysql数据库的用户名和密码,因为安装完mysql默认没有密码,直接就可以登录,为了安全,所以给个密码
[root@lnmp mysql]# mysqladmin -u root password 'macy123'
9—登录进入mysql瞅瞅 ,注意,-p后面没有空格
[root@lnmp mysql]# mysql -u root -pmacy123
上图: 我这里使用的是交互输入密码
OK,看样子mysql没啥问题。该进行PHP的编译安装了
先安装PHP环境的依赖包
yum install -y zlib-devel libxml2-devel libjpeg-devel libjpeg-turbo-devel libiconv-devel freetype-devel libpng-devel gd-devel libcurl-devel libxslt-devel
yum -y install libmcrypt-devel mhash mcrypt #说明,这三个数据加密相关的包需要epoll源才能安装
ymu安装完之后会发现少了一个包没有安装上,
就是这个 包 libiconv-1.14.tar.gz 文章开头已经说了提前上传到/server/tools 目录下,没上传也没关系
用wget 下载一个然后解压,编译安装。
cd /server/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
接下来就是进行PHP软件编译安装
cd /server/tools/
tar xf php-5.5.32.tar.gz #解压
cd php-5.5.32 #进入解压完的目录
./configure \
--prefix=/application/php-5.5.32 \ #指定安装目录位置
--with-mysql=/application/mysql/ \ #指定联动的mysql程序位置
--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-sysvsem \
--enable-inline-optimization \
--with-curl \
--enable-mbregex \
--enable-fpm \
--enable-mbstring \
--with-mcrypt \
--with-gd \
--enable-gd-native-ttf \
--with-openssl \
--with-mhash \
--enable-pcntl \
--enable-sockets \
--with-xmlrpc \
--enable-soap \
--enable-short-tags \
--enable-static \
--with-xsl \
--with-fpm-user=www \ #Nginx 的管理用户
--with-fpm-group=www \ #Nginx 的管理组
--enable-ftp \
--enable-opcache=no
好,参数已经设定好之后,先别着急编译安装,如果不执行下面这两步会报错找不到两个文件。
ln -s /application/mysql/lib/libmysqlclient.so.18 /usr/lib64/
touch ext/phar/phar.phar
开始编译,完事之后创建一个软连接。
make && make install
ln -s /application/php-5.5.32/ /application/php
完事之后接着配置PHP的解析文件/和php-fpm配置文件:
[root@lnmp /server/tools/php-5.5.32]# cd /server/tools/php-5.5.32/
[root@lnmp /server/tools/php-5.5.32]# ll php.ini*
-rw-r--r-- 1 mysql mysql 69236 Feb 2 2016 php.ini-development
-rw-r--r-- 1 mysql mysql 69266 Feb 2 2016 php.ini-production
[root@lnmp /server/tools/php-5.5.32]# cp php.ini-production /application/php/lib/php.ini --- 此文件参数可以用于优化,优化PHP程序
说明:
php.ini-development --- 会显示出更多程序运行中的错误信息 (一般开发用来调试的时候使用)
php.ini-production --- 不会显示出更多程序运行中的错误信息 (实际生产环境当中使用的配置文件)
可以用 diff ziff vimdiff 进行文件对比。
[root@lnmp]# cd /application/php/etc/
[root@lnmp]# cp php-fpm.conf.default php-fpm.conf
启动php程序,查看进程和占用端口号。
OK.到此,LNMP 环境已经搭建完事了,接下来就测试了,测试分为两步,先测试nginx和PHP的联动 后测试 PHP和mysql的联动
让nginx与PHP服务建立连接关系
[root@lnmp /]# vim /application/nginx/conf/extra/blog.conf
server {
listen 80;
server_name blog.yaonie.com;
location / {
root html/blog;
index index.php index.html index.htm;
}
location ~* .*\.(php|php5)?$ {
root html/blog;
fastcgi_pass 127.0.0.1:9000; #因为php安装在本地,所以写127.0.0.1地址就行
fastcgi_index index.php;
include fastcgi.conf;
}
}
#利用nginx的location模块实现动态请求和静态请求分开处理
说明:
新起一个location模块 ~* 不区分大小写, .*任何 以php或php5 结束的文件
fastcgi_pass 是nginx与php用来通信的接口。
fastcgi_index index.php 首页文件
include fastcgi.conf 调用fastcgi的配置文件内容
在blog.conf 配置文件用的第一个location 模块里增加一个inidex.php 文件并排在第一位。
完成后,平滑重启nginx服务
[root@lnmp /]# /application/nginx/sbin/nginx -s reload
因为bolg网站的html目录下没有任何php的文件,所以手动生产一个进行测试
echo '<?php phpinfo(); ?>' >/application/nginx/html/blog/test_info.php
OK,接下来用PC来测试一下 访问 blog.yaonie.com/test_info.php
出现以上图片代表nginx和PHP已经联动成功,这样接下里测试PHP和mysql的联动了
[root@lnmp /application/nginx/html/blog]# vim test_mysql.php
<?php
//$link_id=mysql_connect('主机名','用户','密码');
//mysql -u用户 -p密码 -h 主机
$link_id=mysql_connect('localhost','root','oldboy123') or mysql_error();
if($link_id){
echo "mysql successful by root !\n";
}else{
echo mysql_error();
}
?>
上面的文件是php写的一个小测试脚本,大致意思就是连接数据库,把用户和密码写上,你访问这个文件就会执行,如果成功显示 mysql successful by root ,如果不成功就报错呗。
保存文件之后测试。
看样子显示成功,那么php和mysql的联动也已经测试完成了,那么这个整个LNMP的环境就没有任何问题了,剩下就是安装wordpress 软件了。
[root@lnmp /application/nginx/html/blog]# cd /server/tools/
1.解压软件包
[root@lnmp /server/tools]# tar xf wordpress-4.7.3-zh_CN.tar.gz
2.将wordpress程序中代码文件复制到站点目录中
[root@lnmp /server/tools]# mv wordpress/* /application/nginx/html/blog/
3.对站点目录进行授权
[root@lnmp /server/tools]# chown -R www.www /application/nginx/html/blog/
4.进入数据库,配置wordpress数据库信息
[root@lnmp /server/tools]# mysql -uroot -p
Enter password:
Welcome to the MySQL monitor. Commands end with ; or \g.
Your MySQL connection id is 84
Server version: 5.6.34 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> create database wordpress; --- 创建数据库
mysql> grant all on wordpress.* to 'wordpress'@'192.168.100.%' identified by 'macy123'; --- 5.授权用户
mysql> select user,host from mysql.user; --- 查看授权用户是否成功
mysql> flush privileges; -- 刷新权限
mysql> exit
[root@lnmp /]# /application/nginx/sbin/nginx -s reload
PC直接访问blog.yaonie.com 网站出现用下面的图片就是成功了
接下来点击现在就开始,
出现你要填写的信息,这里面直接填写刚才在mysql里面执行的信息就行了。
库已经创建完了,填写用户名和密码wordpres macy123 数据库主机我这里填写192.168.100.109 这是我虚拟机的IP,表前缀就默认就行,反正就是弄一个博客测试玩,点击提交等待几秒就会出现下面的界面
到这就会已经全部完事了,博客里面的功能自己玩去吧。累死我了,写博客真的很不容易。