网络最流行架构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
$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
好了,至此一个blog程序就部署完了,根据自己的所需来发布文章信息等。
后面我们学习企业实战2--如何加入redis来实现网站的缓存、企业实战3--LNMP组件分离(mysql在单独一台服务器)等。
;