linux服务之nginx-随笔-10(单机经典的LNMP架构+wordpress博客 )

今天写的是单台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,表前缀就默认就行,反正就是弄一个博客测试玩,点击提交等待几秒就会出现下面的界面

 到这就会已经全部完事了,博客里面的功能自己玩去吧。累死我了,写博客真的很不容易。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值