網絡最流行架構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
好了,至此一個blog程序就部署完了,根據本身的所需來發布文章信息等。
後面咱們學習企業實戰2--如何加入redis來實現網站的緩存、企業實戰3--LNMP組件分離(mysql在單獨一臺服務器)等。;