网络最流行架构LNMP全程编译安装部署wordpress博客程序,今天我们在一台机器上完成所有角色的安装,不同的环境依赖的组件和编译方法有所不同。

    环境描述:

    Centos 6.5、 nginx-1.6.3.tar.gz 、mysql-5.6.35、cmake-2.8.8  、php-5.5.32


第一部分:nginx的编译安装

    yum install openssl openssl-devel pcre pcre-devel-y    ###安装nginx依赖包

    mkdir /tools     #创建此目录存放软件包,命名为tools,所有的软件包都放在此目录,后面不再说。

    cd /tools

    wget -q http://nginx.org/download/nginx-1.6.3.tar.gz

    tar xf nginx-1.6.3.tar.gz

    cd nginx-1.6.3

    useradd www -s /sbin/nologin -M    

./configure --user=www --group=www --with-http_ssl_module --    with-http_stub_status_module --prefix=/usr/local/nginx-1.6.3

    make && make install

    ln -s /usr/local/nginx-1.6.3/ /usr/local/nginx

    /usr/local/nginx/sbin/nginx 

    /usr/local/nginx/sbin/nginx -t

    /usr/local/nginx/sbin/nginx -s reload

    至此nginx已经安装成功,为节省篇幅就略过截图,若有问题请指出。


    当然yum安装更简便,不防yum安装也贴出来(yum安装如下:)

    wget -q http://mirrors.ustc.edu.cn/fedora/epel/6/x86_64/epel-release-6-8.noarch.rpm

    rpm -ivh epel-release-6-8.noarch.rpm

    yum install nginx


第二部分:mysql的编译安装

1、安装mysql依赖的组件、编译安装cmake-2.8.8

    yum install ncurses-devel libaio-devel -y  

    mysql5.5以后的版本需要cmake编译,下载地址 http://pan.baidu.com/s/1mhIxDH2

    tar xf cmake-2.8.8.tar.gz

    cd cmake-2.8.8

    ./configure

    gmake

    gmake install

2、获取mysql源码包,编译安装

    wget http://mirrors.sohu.com/mysql/MySQL-5.6/mysql-5.6.35.zip

    tar xf mysql-5.6.35.tar.gz

    cd mysql-5.6.35

    cmake  \

    -DCMAKE_INSTALL_PREFIX=/usr/local/mysql    \

    -DMYSQL_DATADIR=/usr/local/mysql/data    \

    -DSYSCONFDIR=/etc   \

    -DWITH_MYISAM_STORAGE_ENGINE=1 \

    -DWITH_INNOBASE_STORAGE_ENGINE=1 \

    -DWITH_MEMORY_STORAGE_ENGINE=1 \

    -DWITH_READLINE=1 \

    -DMYSQL_UNIX_ADDR=/var/lib/mysql/mysql.sock \

    -DMYSQL_TCP_PORT=3306 \

    -DENABLED_LOCAL_INFILE=1 \

    -DWITH_PARTITION_STORAGE_ENGINE=1 \

    -DEXTRA_CHARSETS=all \

    -DDEFAULT_CHARSET=utf8 \

    -DDEFAULT_COLLATION=utf8_general_ci

    make && make install

    哇,没有报错,mysql5.6.35 编译安装就成功了!

3、配置和部署mysql安装的文件

    创建mysql用户和组

    # groupadd  mysql   

    # useradd  -M  -s  /sbin/nologin  -g  mysql  mysql

    设置mysql安装目录的属主和属组

    # chown  -R  mysql:mysql  /usr/local/mysql/   

    给数据库目录可读可写的权限

    # chmod  777  -R  /usr/local/mysql/data/    

    复制配置文件和服务控制脚本到相应位置

    # cp /usr/local/mysql/support-files/my-default.cnf   /etc/my.cnf

    # cp /usr/local/mysql/support-files/mysql.server  /etc/init.d/mysqld

    编辑配置文件 /etc/my.cnf,添加:

    basedir = /usr/local/mysql      

    datadir = /usr/local/mysql/data

    指定安装目录和数据库目录就可以了,其他参数先不用管。

4、初始化数据库并启动

    初始化数据库

    # cd  /usr/local/mysql

    # scripts/mysql_install_db --user=mysql

    可以用 echo $?测试,如返回0 就表示成功了。

    # service  mysqld  start

    然后出现大写的 " SUCCESS "就代表启动成功了,然后用netstat看看它监听的端口吧!

    # netstat  -anpt  |  grep  mysqld

    # /usr/local/mysql/bin/mysql  -u root  -h  localhost  -p    测试连接

    为避免输入绝对路径的麻烦,我们创建软件连接

    #ln -s /usr/local/mysql/bin/mysql /usr/bin

    也或者配置环境变量,避免绝对路径的麻烦

    #vi /etc/profile   加入 PATH="/usr/local/mysql/bin/mysql:$PATH"

    #./etc/profile


第三部分 PHP的编译安装

1、确保nginx、mysql服务是否开启

    #netstat -nltup | grep -E "nginx|mysqld"

2、安装php基础依赖库 

    yum install zlib-devel libxml2-devel libjpeg-devel libjpeg-turbo-devel libiconv-devel -y

    yum install freetype-devel libpng-devel gd-devel libcurl-devel libsxlt-devel -y

    有部分组件安装不成功,要手动安装

    cd /usr/local/src

    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

    cd ../

3、安装libmcrypt、mhash、mcrypt模块

    wget -O /etc/yum.repos.d/epel.repo http://mirrors.aliyun.com/repo/epel-6.repo

    yum -y install libmcrypt-devel mhash mcrypt

4、编译安装php-5.5.32.tar.gz

    wget http://mirrors.sohu.com/php/php-5.5.32.tar.gz

    tar xf php-5.5.32.tar.gz

    cd php-5.5.32

    ./configure\

    --prefix=/usr/local/php5.5.32\      ###必要步骤

    --with-mysql=/usr/local/mysql/\     ###必要步骤

    --enable-fpm\                       ###必要步骤

    --with-fpm-user=www\                ###必要步骤

    --with-fpm-group=www\               ###必要步骤

    --with-pdo=mysql=mysqlnd\

    --with-iconv-dir=/usr/local/libiconv\

    --with-freetype-dir\

    --with-jpeg-dir\

    --with-png-dir\

    --with-zlib\

    --with-with-libxml-dir=/usr\

    --enable-xml\

    --disable-rpath\

    --enable-bcmath\

    --enable-shmop\

    --enable-sysvsem\

    --enable-inline-optiimization\

    --with-curl\

    --enable-mbregex\

    --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\

    --enable-ftp\

    --enable-opacache=no

    #echo $?  返回0,界面出现 Thank you for using PHP,看来应该是没问题。

    make && make install

    如果这里出现错误,请执行如下操作,再重新编译,我这里没有报错。

        ln -s /usr/local/msyql/lib/libmysqlclient.so.18 /usr/lib64/

        touch /php-5.5.32/ext/phar/phar/phar

    ln -s /usr/local/php5.5.32/ /usr/local/php

5、配置php-fpm

    cd /tools/php-5.5.32

    cp php.ini-production /usr/local/php/lib/php.ini   ###配置php解析文件

    cd /usr/local/php-5.5.32/etc

    cp php-fpm.conf.default php-fpm.conf                   ###配置php-fpm配置文件

    /usr/local/php/sbin/php-fpm                                  ###启动php-fpm          

    lsof -i:9000

    ps -ef |grep php-fpm


6、整合nginx+php

    nginx.conf 添加以下配置文件:

    server {

    listen80;

    server_nameblog.ooso.com;

    location / {

    root html/blog;

    index index.php index.html index.htm;

    }

    location ~.*\.(php|php5)?$ {

    root html;

    fastcgi_pass 127.0.0.1:9000;

    fastcgi_index index.php;

    include fastcgi.conf;

            }

    }

    /usr/local/nginx/sbin/nginx -t

    /usr/local/nginx/sbin/nginx -s reload

7、验证测试到mysql是否正常

    vi test_mysql.php

    <?php

    $link_id=mysql_connect('localhost','root','passwd') or mysql_error();

    if($link_id){

    echo "mysql successful!";

    }else{

    echo mysql_error();

    }

    ?>

如果出现错误,或者返回php源码,请修改mysql中root密码,修改test_mysql.php中对应的passwd.

访问出现mysql sucessful!  表示php连接mysql 成功!


四、部署wordpress

   nginx的网站发布目录/usr/local/nginx/html ,为了以后更多得站点,我们新建blog目录

    cd /usr/local/nginx/html

    mkdir blog 

    cd blog

    wget https://cn.wordpress.org/wordpress-4.8.1-zh_CN.tar.gz

    tar xf wordpress-4.8.1-zh_CN.tar.gz

    mv wordpress-4.8.1-zh_CN.tar.gz /tools/

    mv wordpress/* .

    chown -R www.www ./blog/


    浏览器中输入ip地址访问,并填写相关的数据库信息,如下:

    注意:我这里遇到一直访问有问题,原因php-fpm没有启动

    确保必须的服务启动:

    nginx     : /usr/local/nginx/sbin/nginx

    mysql      :  service mysqld start

    php-fpm :  /usr/local/php/sbin/php-fpm


wKioL1mgQ0rD5TKtAACMZsQ4_1o389.jpg-wh_50

wKioL1mgQ0vCyH8oAABtQQUYd_0581.jpg-wh_50

wKiom1mgQ1jjVTm5AAAf3cJmD8Q869.jpg-wh_50

wKiom1mgQ1mywKUzAACZd7R3TOc493.jpg-wh_50

wKioL1mgQ0uh9ckuAABxodPvEqY923.jpg-wh_50

    好了,至此一个blog程序就部署完了,根据自己的所需来发布文章信息等。

    后面我们学习企业实战2--如何加入redis来实现网站的缓存、企业实战3--LNMP组件分离(mysql在单独一台服务器)等。
;