共计 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
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
: