源码编译LNMP架构
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了源码编译LNMP架构相关的知识,希望对你有一定的参考价值。
众所周知,LAMP 平台是目前应用最为广泛的网站服务器架构,其中的“A”对应着Web服务软件Apache HTTP Server。随着nginx在企业中的使用越来越多,LNMP(或LEMP)架构也受到越来越多Linux系统工程师的青睐,其中的“E”就来自于Nginx的发音[engine x]。就像构建LAMP平台一一样, 构建LNMP平台也需要Linux服务器、MySOL数据
库和php解析环境,区别主要在Nginx与PHP的协作配置上。
第一步:安装Nginx
1.编译安装Nginx
--------安装依赖包-------
yum -y install pcre-devel zlib-devel gcc gcc-c++ cmake
//创建nginx用户
useradd -M -s /sbin/nologin nginx
//解压到/opt
tar xzvf nginx-1.6.0.tar.gz -C /opt
---------配置编译安装--------
cd /opt/nginx-1.6.0/
./configure --prefix=/usr/local/nginx --user=nginx --group=nginx --with-http_stub_status_module //开启stub_status状态统计模块//
make
make install
2.制作启动脚本
ln -s /usr/local/nginx/sbin/nginx /usr/local/sbin/ //让系统识别命令
-----检查、启动、重启、停止--------
nginx -t //检查
nginx //启动
killall -1 nginx //重启
killall -3 nginx //停止
-------制作管理角本--------
vi /etc/init.d/nginx
#!/bin/bash
# chkconfig: - 99 20
# description: Nginx Service Control Script
PROG="/usr/local/nginx/sbin/nginx"
PIDF="/usr/local/nginx/logs/nginx.pid"
case "$1" in
start)
$PROG
;;
stop)
kill -s QUIT $(cat $PIDF)
;;
restart)
$0 stop
$0 start
;;
reload)
kill -s HUP $(cat $PIDF)
;;
*)
echo "Usage: $0 {start|stop|restart|reload}"
exit 1
esac
exit 0
chmod +x /etc/init.d/nginx
chkconfig --add nginx //开机自启动
service nginx start
第二步:安装mysql
这里以版本5.5.24为例
1.编译安装MySQL
yum -y install ncurses-devel //ncurses是字符终端下屏幕控制的基本库//
tar xzvf mysql-5.5.24.tar.gz -C /opt
cd /opt/mysql-5.5.24
cmake -DCMAKE_INSTALL_PREFIX=/usr/local/mysql -DDEFAULT_CHARSET=utf8 -DDEFAULT_COLLATION=utf8_general_ci -DWITH_EXTRA_CHARSETS=all -DSYSCONFDIR=/etc -DMYSQL_DATADIR=/home/mysql/ -DMYSQL_UNIX_ADDR=/home/mysql/mysql.sock -DWITH_MYISAM_STORAGE_ENGINE=1 -DWITH_INNOBASE_STORAGE_ENGINE=1 -DWITH_ARCHIVE_STORAGE_ENGINE=1 -DWITH_BLACKHOLE_STORAGE_ENGINE=1 -DENABLED_LOCAL_INFILE=1 -DWITH_SSL=system -DMYSQL_TCP_PORT=3306 -DENABLE_DOWNLOADS=1 -DWITH_SSL=bundled
make && make install
2.优化调整
cp support-files/my-medium.cnf /etc/my.cnf //复制配置文件
cp support-files/mysql.server /etc/init.d/mysqld //复制启动脚本
chmod +x /etc/init.d/mysqld
chkconfig --add mysqld
chkconfig --level 35 mysqld on
echo "PATH=$PATH:/usr/local/mysql/bin/" >> /etc/profile //配置环境变量
. /etc/profile (注意:"."后面有空格)
3.初始化数据库
useradd -s /sbin/nologin mysql
chown -R mysql.mysql /usr/local/mysql
/usr/local/mysql/scripts/mysql_install_db --user=mysql --ldata=/var/lib/mysql --basedir=/usr/local/mysql --datadir=/home/mysql
ln -s /var/lib/mysql/mysql.sock /home/mysql/mysql.sock
4.启动MySQL服务
vi /etc/init.d/mysqld //配置启动脚本
basedir=/usr/local/mysql
datadir=/home/mysql
service mysqld start
mysqladmin -u root -p password "abc123" //为root用户设置密码
第三步:安装PHP解析环境
- Nginx配置网页动静分离、解析PHP,有两种方法可以选择:使用PHP的FPM模块,或者将访问PHP页面的Web请求转交给Apache服务器去处理。
- 较新版本的PHP已经自带FPM (FastCGI Process Manager, FastCGI进程管理器)模块,用来对PHP解析实例进行管理和优化解析效率。FastCGI 将静态请求和动态脚本语言分离开,Nginx 专门处理静态请求,并转发动态请求给PHP-FPM。单服务器的
LNMP架构通常使用FPM的方式来解析PHP。
1.使用yum工具安装PHP的依赖包。
//首先安装GD库及GD库关联程序
yum -y install gd libxml2-devel libjpeg-devel libpng-devel zlib-devel fontconfig-devel openssl-devel bzip2-devel
2.编译安装PHP
tar jxvf php-5.4.5.tar.bz2 -C /opt
cd /opt/php-5.4.5
./configure --prefix=/usr/local/php5 --with-gd --with-zlib --with-mysql=/usr/local/mysql --with-config-file-path=/usr/local/php5 --enable-mbstring --with-jpeg-dir --with-openssl --disable-ipv6 --enable-fpm //添加fpm模块
make && make install
3.复制模板文件作为PHP的主配置文件
cp php.ini-development /usr/local/php5/php.ini
4.为PHP安装加速器,用于提高PHP的解析效率
tar xzvf ZendGuardLoader-php-5.3-linux-glibc23-i386.tar.gz -C /opt
cd /opt/ZendGuardLoader-php-5.3-linux-glibc23-i386/php-5.3.x
cp ZendGuardLoader.so /usr/local/php5/lib/php
修改PHP的主配置文件,开启ZendGuardLoader模块
vi /usr/local/php5/php.ini
[Zend Guard Loader]
zend_extension=/usr/local/php5/lib/php/ZendGuardLoader.so
zend_loader.enable=1 //1表示开启
第四步:配置Nginx支持PHP环境
1.PHP-FPM模块配置
(1)复制模板文件php-fpm.conf.default作为PHP-FPM的配置文件
cd /usr/local/php5/etc/
cp php-fpm.conf.default php-fpm.conf
(2)修改php-fpm.conf配置文件
useradd -M -s /sbin/nologin php //创建php用户
vi php-fpm.conf //修改
pid = run/php-fpm.pid //确定pid文件位置
user = php //表示由php用户调用
group = php
pm.max_children=50 //fpm模块的最大进程数
pm.start_servers = 20 //启动时开启的进程数
pm.min_spare_servers = 5 //最小空闲进程数
pm.max_spare_servers = 35 //最大空闲进程数
(3)启动PHP-FPM模块,进程使用9000端口
//设置软链接,方便命令使用
ln -s /usr/local/php5/bin/* /usr/local/bin/
ln -s /usr/local/php5/sbin/* /usr/local/sbin/
/usr/local/sbin/php-fpm
netstat -lntup | grep 9000
2.配置Nginx支持PHP解析
(1)在Nginx的主配置文件中的server{}配置段,将PHP的网页请求转发给FPM模块处理
cd /usr/local/nginx/conf/
cp nginx.conf nginx.conf.bak //修改前做备份
vi nginx.conf
location ~ .php$ {
root /var/www/benet; //php文件所在目录
fastcgi_pass 127.0.0.1:9000; //php文件转发给FPM模块
fastcgi_index index.php; //默认文件是index.php
include fastcgi.conf; //包含fastcgi.conf配置文件
}
nginx -t //检测语法
(2)在/var/www/benet下创建php测试页面
service nginx restart //重启服务
mkdir -p /var/www/benet //创建目录
vi /var/www/benet/index.php //创建php文件
<?php
phpinfo();
?>
在浏览器中访问PHP文件
第五步:创建论坛
1.创建bbs数据库并授权
mysql -u root -p
mysql> CREATE DATABASE bbs; //创建一个数据库//
mysql> GRANT all ON bbs.* TO ‘bbsuser‘@‘%‘ IDENTIFIED BY ‘admin123‘; //把bbs数据库里面所有表的权限授予给bbsuser,并设置密码//
mysql>flush privileges; //刷新数据库//
2.测试数据库
vi /var/www/benet/index.php
<?php
$link=mysql_connect(‘192.168.26.153‘,‘bbsuser‘,‘admin123‘);
if($link) echo "Success!!";
else echo "Fail!!";
mysql_close();
phpinfo();
?>
3.安装论坛
unzip Discuz_X3.3_SC_UTF8.zip -d /opt/dis //解压Discuz
cd /opt/dis
cp -r upload/ /var/www/benet/bbs
cd /var/www/benet/bbs
chown -R php ./config //修改属性
chown -R php ./data
chown -R php ./uc_client
chown -R php ./uc_server/data
4.访问浏览器,安装论坛
http://192.168.26.153/bbs/install/index.php
以上是关于源码编译LNMP架构的主要内容,如果未能解决你的问题,请参考以下文章
企业网站应用模式之—LNMP架构的源码编译超详细步骤,有手就行!