阿里云-云小站(无限量代金券发放中)
【腾讯云】云服务器、云数据库、COS、CDN、短信等热卖云产品特惠抢购

源码编译LNMP平台架构

168次阅读
没有评论

共计 5247 个字符,预计需要花费 14 分钟才能阅读完成。

众所周知,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

源码编译 LNMP 平台架构

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  // 检测语法

源码编译 LNMP 平台架构

(2)在 /var/www/benet 下创建 php 测试页面

service nginx restart      // 重启服务

mkdir -p /var/www/benet    // 创建目录
vi /var/www/benet/index.php  // 创建 php 文件
<?php
phpinfo();
?>

在浏览器中访问 PHP 文件
源码编译 LNMP 平台架构

第五步:创建论坛

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; // 刷新数据库 //

源码编译 LNMP 平台架构

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();
?>

源码编译 LNMP 平台架构

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 平台架构
源码编译 LNMP 平台架构
源码编译 LNMP 平台架构
源码编译 LNMP 平台架构
源码编译 LNMP 平台架构

正文完
星哥说事-微信公众号
post-qrcode
 
星锅
版权声明:本站原创文章,由 星锅 2022-01-21发表,共计5247字。
转载说明:除特殊说明外本站文章皆由CC-4.0协议发布,转载请注明出处。
【腾讯云】推广者专属福利,新客户无门槛领取总价值高达2860元代金券,每种代金券限量500张,先到先得。
阿里云-最新活动爆款每日限量供应
评论(没有评论)
验证码
【腾讯云】云服务器、云数据库、COS、CDN、短信等云产品特惠热卖中