企業實戰1-----LNMP全程編譯安裝部署wordpress博客程序

    網絡最流行架構LNMP全程編譯安裝部署wordpress博客程序,今天咱們在一臺機器上完成全部角色的安裝,不一樣的環境依賴的組件和編譯方法有所不一樣。
php

    環境描述:html

    Centos 6.五、 nginx-1.6.3.tar.gz 、mysql-5.6.3五、cmake-2.8.8  、php-5.5.32mysql


第一部分:nginx的編譯安裝nginx

    yum install openssl openssl-devel pcre pcre-devel-y    ###安裝nginx依賴包redis

    mkdir /tools     #建立此目錄存放軟件包,命名爲tools,全部的軟件包都放在此目錄,後面再也不說。sql

    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的編譯安裝

一、安裝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

二、獲取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 編譯安裝就成功了!

三、配置和部署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

    指定安裝目錄和數據庫目錄就能夠了,其餘參數先不用管。

四、初始化數據庫並啓動

    初始化數據庫

    # 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的編譯安裝

一、確保nginx、mysql服務是否開啓

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

二、安裝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 ../

三、安裝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

四、編譯安裝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

五、配置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


六、整合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

七、驗證測試到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 成功!


4、部署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在單獨一臺服務器)等。;

相關文章
相關標籤/搜索