设为首页 收藏本站
查看: 3042|回复: 1

搭建 LNMP+WordPress 环境

[复制链接]
累计签到:1 天
连续签到:1 天
发表于 2016-12-13 08:55:58 | 显示全部楼层 |阅读模式
搭建 LAMP + WORDPRESS 环境  一、环境介绍
  二、必装依赖软件
  三、编译安装 Nginx-1.6.3
  四、二进制安装 MYSQL-5.5.33
  五、编译安装 PHP-5.3.27
  六、检测 nginx与mysql nginx与php 是否相连
  七、安装 wordpress (分别基于IP,域名访问)
  
  
  一、环境介绍
  搭建这个环境,所有服务都安装在一台虚拟机中,在此介绍一下我的虚拟机
  CentOS-6.7-x86_64    保证虚拟机可以正常上网
  IP:192.168.6.36
  hostname:yuci
  关闭  iptbales   selinux
   wKioL1hOp1Sy5qdzAACSSIk1uOg322.jpg
  
  
  二、必装依赖软件
  全部通过 yum 安装
  lrzsz      # 软件和此环境没有什么关系。安装后可以通过xshell直接拖拽软件包
  pcre
  pcre-devel
  openssl-devel
  yum -y install lrzsz pcre pcre-devel openssl-devel
  rpm -qa lrzsz pcre pcre-devel openssl-devel
   wKioL1hOp1TgkACJAAAcIytCOJI793.jpg
   wKioL1hOp1aCZ1uWAAA8nj_PWNg775.jpg
  
  
  三、编译安装 Nginx-1.6.3
  
  创建一个专门用于存放软件包的目录
  mkdir -p /home/yuci/tools
   wKioL1hOp1eiHPYNAAAVsq-h5V0571.jpg
  
  创建 nginx 用户,并检查
  useradd -s /sbin/nologin/ -M nginx
  id nginx
   wKioL1hOp1iAMnHnAAA7y2kNEg0389.jpg
  
  解压 nginx 压缩包(安装过 lrzsz ,所以可直接拖拽软件的该目录)
  tar zxf nginx-1.6.3.tar.gz
   wKioL1hOp1riPE7dAAAnjeleRcg492.jpg
  
  开始编译安装 nginx , 在 nginx 目录下输入一下命令
   wKioL1hOp1vR4rTSAAAbPykOOEA188.jpg
  ./configure --prefix=/application/nginx-1.6.3 --user=nginx \
  --group=nginx --with-http_ssl_module \
  --with-http_stub_status_module \
  && make && make install
  
  创建一个软连接,保留软件版本的同时方便操作
  ln -s /application/nginx-1.6.3/ /application/nginx
   wKiom1hOp12z0aqtAABUPTsFmSU723.jpg
  
  启动 nginx 服务
  /application/nginx/sbin/nginx
   wKioL1hOp17ySt6kAAAbuLvNU5o987.jpg
  
  浏览器输入IP地址,nginx 搭建成功
   wKiom1hOp2HgxAv6AAC0FRRDz80215.jpg
  
  
  
  四、二进制安装 MYSQL-5.5.33
  
  解压 mysql 安装包
  tar zxf mysql-5.5.33-linux2.6-x86_64.tar.gz
   wKioL1hOp2OxDMq9AABYE-lqksA243.jpg
  
  切到 /application 目录,lamp 环境中的所有服务都将安装到此目录中,方便管理
  将 mysql 移动到 /application 目录中,并保留 mysql 版本号
  mv /home/yuci/tools/mysql-5.5.33-linux2.6-x86_64 ./mysql-5.5.33
   wKiom1hOp2Ty4__WAAAsWVqfkyk963.jpg
  
  为 mysql 创建软连接,方便管理
  ln -s /application/mysql-5.5.33/ /application/mysql
   wKiom1hOp2WD0gpeAAB-1XDQ4uQ001.jpg
  
  创建 mysql 用户
  useradd -s /sbin/nologin/ -M mysql
  id mysql
   wKioL1hOp2bS-8hRAAAykO5A3ao303.jpg
  
  初始化 mysql
  /application/mysql/scripts/mysql_install_db --basedir=/application/mysql/ --datadir=/application/mysql/data/ --user=mysql
   wKiom1hOp2jBuNFQAACSUJtOf3E614.jpg
  
  授权 mysql ,将其属主属组改为 mysql 用户
  chown -R mysql:mysql /application/mysql
   wKioL1hOp2rzSdT7AAAuUkNf3lg198.jpg
  
  拷贝 mysql 配置文件,选取 small 就好
  cp support-files/my-small.cnf /etc/my.cnf
   wKioL1hOp2ySJV9NAAArRBn-Zmo883.jpg
  
  修改 mysql 的启动脚本 mysqld_safe,因为 mysql 的默认安装路径在 /usr/local/mysql,但现在 mysql 在 /application 目录中,所以通过 sed 命令更改
  sed -i 's#/usr/local/mysql#/application/mysql#g' /application/mysql/bin/mysqld_safe
   wKioL1hOp2zRGVvcAAAY1_HT3RA094.jpg
  
  启动 mysql ,通过启动脚本 mysql_safe,并放入后台执行
  /application/mysql/bin/mysqld_safe &
   wKioL1hOp27huLjqAABA2amE2-0957.jpg
  
  通过端口检查 mysql 是否启动
  lsof -i :3306
   wKiom1hOp2_R7oCZAAAyiQxaKis268.jpg
  
  每次通过 mysqld_safe 启动比较麻烦,所以配置变量,通过修改 /etc/profile 实现即可
  vim /etc/profile      
  PATH="/application/mysql/bin:$PATH"  
  source /etc/profile      # 刷新生效
   wKiom1hOp3HwGvU8AAAUJG1nQQQ288.jpg
   wKiom1hOp3GS9PgdAAAWMqYkzLA278.jpg
  
  拷贝 mysql 启动脚本,重命名为 mysqld 。
  替换 mysql 启动脚本中的路径,将/usr/local/mysql 替换为 /application/mysql。
  给 mysqld 这个脚本增加执行权限
  cp support-files/mysql.server /etc/init.d/mysqld
  sed -i 's#/usr/local/mysql#/application/mysql#g' /etc/init.d/mysqld
  chmod +x /etc/init.d/mysqld
   wKioL1hOp3PC-AqgAAA7Wm2xizE003.jpg
  
  使用 killall 命令杀死正在运行的 mysql 服务,重复杀,直到出现 mysqld: no process killed 的提示
  killall mysqld
   wKioL1hOp3fR3On_AABXmQx2pWg140.jpg
  
  启动 mysql,并检查
  /etc/init.d/mysqld start
   wKiom1hOp3jCeWsoAABJGzU-_jM137.jpg
  
  将 mysql 设为开机启动
  chkconfig mysqld on
   wKioL1hOp3mB9W7fAAA3RfiJTyg071.jpg
  
  设置 mysql 的 root 密码为 123456,并登陆 mysql
  mysqladmin -uroot password "123456"
  mysql -uroot -p123456
   wKiom1hOp3yQJOgwAACzFko0NGc433.jpg
  
  
  五、编译安装 PHP-5.3.27
  安装 PHP 太麻烦,先确定一下流程吧
  1)确认nginx ,mysql服务已经启动
  2)通过 yum 安装
         freetype-devel
         libjpeg-devel    # 因为版本升级的问题,yum 执行安装时是 libjpeg-devel ,但实际安装的是 libjpeg-turbo-devel
         libpng-devel
         gd
         gd-devel
         libcurl-devel
         libxslt-devel
  3)编译安装 libiconv-1.14 介个软件,因为它无法通过 yum 成功安装
  4)通过 wget 新下载一个 epel 源
  5)安装 libmcrypt   libmcrypt-devel 包
  6)安装 mhash 加密扩展库
  7)安装 mcrypt 加密扩展库
  8)编译安装 PHP-5.3.7
  
  
  1
  在安装 PHP 之前首先应该确认一下 nginx与mysql 服务都已经启动
  lsof -i :80
  lsof -i :3306
   wKiom1hOp36iS9CNAACQMSAdROY231.jpg
  
  2
  安装php需要的各种lib库文件,其中安装 gd-devel 时安装失败,同时安装 gd gd-devel 才安装上
  yum -y install freetype-devel libjpeg-devel libpng-devel gd gd-devel libcurl-devel libxslt-devel
  rpm -qa freetype-devel libjpeg-turbo-devel libpng-devel gd gd-devel libcurl-devel libxslt-devel
  (libjpeg-devel == libjpeg-turbo-devel)
   wKioL1hOp4CxDhISAABjXI_WnxI003.jpg
  
  3
  安装 libiconv,这个软件无法通过 yum 安装,只能编译安装了
  解压软件 -> 切到其目录中 -> 执行命令,编译安装
  tar zxf libiconv-1.14.tar.gz
  cd libiconv-1.14
  ./configure --prefix=/usr/local/libiconv && make && make install
   wKioL1hOp4LDYkCBAABdNoca7to012.jpg
  
  4
  安装 epel 源,因为后面还要安装的 libmcrypt 库。介个库离不开介个源
  wget -O /etc/yum.repos.d/epel.repo http://mirrors.aliyun.com/repo/epel-6.repo
   wKioL1hOp4PzEvcmAAAesrHu4-I282.jpg
  
  5
  安装 libmcrypt   libmcrypt-devel 包,并检查
  yum -y install libmcrypt-devel    # 可以同时安装 libmcrypt   libmcrypt-devel
  rpm -qa libmcrypt*
   wKioL1hOp4PgJBxSAAAb5Hqwb6E025.jpg
   wKiom1hOp4WRxW1AAAAuwLZWtrY344.jpg
  
  6)
  安装 mhash 加密扩展库,并检查
  yum -y install mhash mhash-devel
  rpm -qa mhash mhash-devel
   wKioL1hOp4bA6nmUAAAYISLYyWY785.jpg
   wKiom1hOp4iDt78EAAApXQ8jGMc178.jpg
  
  7
  安装 mcrypt 加密扩展库,并检查
  yum -y install mcrypt
  rpm -qa mcrypt
   wKioL1hOp4jAFqLnAAAUCl2nTOU457.jpg
   wKioL1hOp4rw-dYjAAAZnIxZDf8678.jpg
  
  8
  编译安装 PHP-5.3.7,将 php 的安装包放到规定的 /home/yuci/tools 目录中
  tar zxf php-5.3.27.tar.gz
  cd php-5.3.27
   wKioL1hOp4yDaujgAAB_JT6LpTU902.jpg
  
  创建文件,不创建 PHP 编译中会报错
  touch ext/phar/phar.phar
   wKiom1hOp42R872RAAAW0eQpVd8511.jpg
  
  创建一个软连接文件
  ln -s /application/mysql/lib/libmysqlclient.so.18 /usr/lib64/
   wKiom1hOp47z5MmhAAAbSasshJo879.jpg
  
  正式编译安装 PHP, 编译路径如下, PHP 目录下执行即可
  ./configure \
  --prefix=/application/php5.3.27 \
  --with-mysql=/application/mysql \
  --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-safe-mode \
  --enable-bcmath \
  --enable-shmop \
  --enable-sysvsem \
  --enable-inline-optimization \
  --with-curl \
  --with-curlwrappers \
  --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-zip \
  --enable-soap \
  --enable-short-tags \
  --enable-zend-multibyte \
  --enable-static \
  --with-xsl \
  --with-fpm-user=nginx \
  --with-fpm-group=nginx \
  --enable-ftp
  make && make install
  
  看到以下画面,说明安装成功,继续操作
   wKiom1hOp5KgRlbdAAGmZ-TML88775.jpg
  
  给 php 创建一个软连接
  ln -s /application/php5.3.27/ /application/php
   wKiom1hOp5TAw5qlAACkARYMQP4952.jpg
  
  配置 PHP 解析文件,php.ini
  ls -l php.ini*
   wKioL1hOp5XBud5JAAAZg5Ak1iY452.jpg
   wKioL1hOp5fgVshUAAAz9o7qPTM745.jpg
  
  将配置文件复制到 php 安装目录,并改名为 php.ini
  cp php.ini-production /application/php/lib/php.ini
   wKioL1hOp5igjoNNAAAdcTURotM536.jpg
  
  php进程管理文件生效(php-fpm.conf 进程管理)
   wKioL1hOp5mgFItZAAAVqfQhWko204.jpg
  cp php-fpm.conf.default php-fpm.conf
   wKiom1hOp5rTRmZZAAA0ojgluNU572.jpg
  
  启动 php-fpm,检查是否启动,查看 php-fpm 端口
  /application/php/sbin/php-fpm
  ps -ef | grep php-fpm
  ss -lntup | grep php-fpm
   wKiom1hOp53zSiWUAACDJFEYyog341.jpg
  
  
  
  六、编辑 nginx.conf 文件
  将文件过滤,看着也方便,编辑如下
  egrep -v "#|^$" nginx.conf.default > nginx.conf
   wKioL1hOp6DgKutVAACy2r28Scs612.jpg
  
  检测 nginx与mysql nginx与php 是否相连
  在此目录下分别创建 phpinifo.php,mysql.php 两个文件,文件内容如下
   wKiom1hOp6KSZbOqAAAXCZkhuFM274.jpg
  
  <?php
  phpinfo();
  ?>
   wKiom1hOp6Kx5cJ9AAANfAonFf4925.jpg
  
  <?php
         $link_id=mysql_connect('localhost','root','123456') or mysql_error();
         if($link_id){
                  echo "mysql successful by yuci.";
         }else{
                  echo mysql_error();
         }
  ?>            
   wKiom1hOp6ThAho6AAAv0raz4Kc202.jpg
  
  检查语法,平滑加载
  /application/nginx/sbin/nginx -t
  /application/nginx/sbin/nginx -s reload
   wKioL1hOp6WT5Se6AAA_qYpNbAo117.jpg
  
  浏览器中分别输入
  192.168.6.36/phpinfo.php
  192.168.6.36/mysql.php
  
   wKioL1hOp6iSUk9UAAEgQLDek8I993.jpg
   wKiom1hOp6ngcDbnAACOvdkKwAU201.jpg
  
  
  七、安装 wordpress
  
  wordpress 需要使用 mysql 的数据库,所以先来操作 mysql
  首先登陆 mysql
   wKioL1hOp6uh3GI1AACdDKnDegI997.jpg
  
  创建 wordpress 同名的数据库,并检查
  create database wordpress;
  show databases;
   wKioL1hOp67DWPjVAABX5CcKNUY603.jpg
  
  创建对 wordpress 用户和密码,并授予其权限,刷新生效
  grant all on wordpress.* to wordpress@'localhost' identified by '123456';
  flush privileges;
   wKioL1hOp6_SSPZUAAA5S5hYwrY625.jpg
  
  
  到此为止可以先在虚拟机中创建一个快照,方便后面的实验。
  跟别会有一个基于 IP 地址的测试和基于 域名 的测试
  
  
  七、安装 wordpress
  
  将 wordpress 安装包复制到 /home/yuci/tools,并解压
  tar zxf wordpress-4.2.2-zh_CN.tar.gz
   wKioL1hOp7Dhra4NAABEDq8bYqc139.jpg
  
  切到 html 目录中,将解压的 wordpress 文件中的内容剪切过去,并赋予 html 目录下的所有文件 777 权限
  cd /application/nginx/html
  mv /home/yuci/tools/wordpress/* ./
  chmod -R 777 ./
   wKioL1hOp7KQ7gT7AAB_ARld5zs137.jpg
  
  编辑 /application/nginx/conf/nginx.conf 文件,添加一个动态页面
  cd /application/nginx/conf/
  vim nginx.conf
   wKioL1hOp7OwtTz6AAAXHpvTI8A205.jpg
   wKioL1hOp7Ti688oAAARbT8JYCw425.jpg
   wKiom1hOp7aRMHDdAACUjTFFedg335.jpg
  
  /application/nginx/sbin/nginx -t
  /application/nginx/sbin/nginx -s reload
   wKioL1hOp7eiD4HjAABPPGVGuZQ658.jpg
  
  在浏览器中输入IP地址,开始配置
  根据提示,开始新建并配置 wp-config.php 文件
  
   wKioL1hOp7nzrPsQAAFnQMInV7k437.jpg
  
   wKiom1hOp7yS0ajIAAESA7Tq2lI303.jpg
  
   wKioL1hOp7-wFGBdAACD5MqNUD0417.jpg
  
   wKioL1hOp8GSEWalAAEE7ZCx34Y738.jpg
  
   wKiom1hOp8SA6Oc2AACjsGdo7nQ921.jpg
  
   wKioL1hOp8XRvLZaAADKIqbM8C4483.jpg
  
   wKioL1hOqJ6BsbJLAAFjB7hhI4M766.jpg
  
  最后访问 IP 地址,成功访问博客
  
   wKiom1hOqJ_Dn5j6AADkUX0g9pw479.jpg
  
  
  
  基于域名访问博客 blog.yuci.com
  
  以为之前配置的基于 IP 地址访问的,所以先做好备份。
  cd /application/nginx/conf/nginx.conf
  cp nginx.conf nginx.conf.bak
  
  编辑 /application/nginx/conf/nginx.conf 文件
  vim nginx.conf
  include    extra/blog.conf;
   wKioL1hOqKDjC1GdAABVPK_LlxY643.jpg
  
  在 conf 目录中创建一个 extra 目录
  mkdir extra
   wKiom1hOqKDA30sjAAASeXGoxNM359.jpg
  
  因为在 nginx.conf 文件中 include  指定了 extra/blog.conf 所以需要先创建 extra 目录,在创建 blog.conf 文件
  查看之前的 nginx.conf 的备份文件 nginx.conf.bak,使用 sed 命令搞定 blog.conf 文件
  sed -n '10,22p' nginx.conf.bak > extra/blog.conf
   wKiom1hOqKKAxziAAADHfO2-nVg893.jpg
  
  有基础需要改动,如下喽
   wKioL1hOqKLAUcxyAABmsQivW8c238.jpg
  
  解压 wordpress 安装包
  tar zxf wordpress-4.2.2-zh_CN.tar.gz
   wKioL1hOqKOCVkTVAABEPxig97k947.jpg
  
  blog.conf 中的选项 root  html ,所以先切到 html 目录中
  mv /home/yuci/tools/wordpress/* ./
   wKiom1hOqKSyogwsAAAaFC7b6PM741.jpg
  
  将 html 中的所有文件设置为 777,这样不安全应该是目录755文件644,但是实验就懒一下吧
   wKioL1hOqYnCpEpwAAAV_Tc_124956.jpg
  chmod -R 777 extra/
   wKiom1hOqYmhi5k0AAATOsFTUQ8956.jpg
  
  重新检测,平滑加载
  /application/nginx/sbin/nginx -t
  /application/nginx/sbin/nginx -s reload
   wKiom1hOqYuTqD42AABPxyr1QeE807.jpg
  
  还需要在手动修改本机的 hosts 文件
   wKioL1hOqY3SMFfEAADC5nj0bEs499.jpg
  
  输入 blog.yuci.com  OK了
   wKiom1hOqZCw9J-sAAD_afx9PzU019.jpg


运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-313539-1-1.html 上篇帖子: linux下的LNMP环境搭建 下篇帖子: Centos7下通过yum搭建apache+php+mysql服务器 WordPress
累计签到:26 天
连续签到:1 天
发表于 2017-1-14 09:21:57 | 显示全部楼层
终于找到你了,谢谢楼主

运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表