[服务搭建] CentOS6源码编译搭建LNMP
作者:CC下载站 日期:2019-10-22 05:50:45 浏览:1623 分类:玩电脑
LNMP是最流行的Web应用程序平台之一,linux、nginx、mysql、php,它们都是各自独立的程序,熟悉配置各程序对于网站管理员来说是很有必要的。教程全程是以编译安装的方式部署LNMP,最终实现解析PHP网页。
实验环境
实验平台:VMware虚拟机
操作系统:CentOS 6.5 / Windows10
服务端IP:192.168.168.200
客户端IP:192.168.168.201
MySQL:5.5.59
Nginx:1.12.2
PHP:5.6.33
服务端篇
第一步 准备工作
禁用SElinux
[root@Wanghualang ~]# setenforce 0
[root@Wanghualang ~]# sed -ri 's#^(SELINUX=).*#\1disabled#g' /etc/selinux/config
禁用防火墙
[root@Wanghualang ~]# service iptables stop
[root@Wanghualang ~]# service ip6tables stop
[root@Wanghualang ~]# chkconfig iptables off
[root@Wanghualang ~]# chkconfig ip6tables off
安装常用软件
[root@Wanghualang ~]# yum -y install wget vim
第二步 安装Nginx
新建Nginx用户和用户组
[root@Wanghualang ~]# groupadd nginx
[root@Wanghualang ~]# useradd -M nginx -s /sbin/nologin -g nginx
精简版的操作系统,在接下来的configure阶段肯定会出现缺失相关开发包的报错,根据提示安装相关开发包即可。教程中为了做到一气呵成,先提前安装好需要的开发包。
[root@Wanghualang ~]# yum -y install gcc gcc-c++ pcre-devel zlib-devel openssl-devel
编译安装软件
[root@Wanghualang ~]# cd /usr/local/src/
[root@Wanghualang src]# wget --no-check-certificate http://nginx.org/download/nginx-1.12.2.tar.gz
[root@Wanghualang src]# tar xzf nginx-1.12.2.tar.gz
[root@Wanghualang src]# cd nginx-1.12.2
[root@Wanghualang nginx-1.12.2]# ./configure --prefix=/usr/local/nginx --user=nginx --group=nginx --with-http_ssl_module --with-http_gzip_static_module --with-pcre
[root@Wanghualang nginx-1.12.2]# make
[root@Wanghualang nginx-1.12.2]# make install
扩展阅读展开
--prefix=/usr/local/nginx:指定/usr/local/nginx为程序安装目录;
--user=nginx:指定nginx用户程序启动;
--group=nginx:指定nginx用户组程序启动;
--with-http_ssl_module:配置安全加密功能,比如https;
--with-http_gzip_static_module:配置压缩功能,比如CSS代码压缩;
--with-pcre:正则表达式相关功能。教程中仅配置安装基础功能,更多configure配置参数可自行了解,日后按需添加。
[root@Wanghualang nginx-1.12.2]# ./configure --help | more
配置服务启动脚本
[root@Wanghualang ~]# vim /etc/init.d/nginx
红字部分为脚本内容:
#!/bin/bash
# nginx Startup script for the Nginx HTTP Server
# chkconfig: - 85 15
# description: Nginx is a high-performance web and proxy server.
# processname: nginx
# pidfile: /var/run/nginx.pid
# config: /usr/local/nginx/conf/nginx.conf
nginxd=/usr/local/nginx/sbin/nginx
nginx_config=/usr/local/nginx/conf/nginx.conf
nginx_pid=/var/run/nginx.pid
RETVAL=0
prog="nginx"
# Source function library.
. /etc/rc.d/init.d/functions
# Source networking configuration.
. /etc/sysconfig/network
# Check that networking is up.
[ ${NETWORKING} = "no" ] && exit 0
[ -x $nginxd ] || exit 0
# Start nginx daemons functions.
start() {
if [ -e $nginx_pid ];then
echo "nginx already running...."
exit 1
fi
echo -n $"Starting $prog: "
daemon $nginxd -c ${nginx_config}
RETVAL=$?
echo
[ $RETVAL = 0 ] && touch /var/lock/subsys/nginx
return $RETVAL
}
# Stop nginx daemons functions.
stop() {
echo -n $"Stopping $prog: "
killproc $nginxd
RETVAL=$?
echo
[ $RETVAL = 0 ] && rm -f /var/lock/subsys/nginx /var/run/nginx.pid
}
# reload nginx service functions.
reload() {
echo -n $"Reloading $prog: "
#kill -HUP `cat ${nginx_pid}`
killproc $nginxd -HUP
RETVAL=$?
echo
}
# See how we were called.
case "$1" in
start)
start
;;
stop)
stop
;;
reload)
reload
;;
restart)
stop
start
;;
status)
status $prog
RETVAL=$?
;;
*)
echo $"Usage: $prog {start|stop|restart|reload|status|help}"
exit 1
esac
exit $RETVAL
[root@Wanghualang ~]# chmod 755 /etc/init.d/nginx
[root@Wanghualang ~]# chkconfig --add nginx
启动服务
[root@Wanghualang ~]# service nginx start
第三步 安装MySQL
新建MySQL用户和用户组
[root@Wanghualang ~]# groupadd mysql
[root@Wanghualang ~]# useradd -M mysql -s /sbin/nologin -g mysql
MySQL从5.5版本开始,不再使用configure,而选择了cmake工具进行编译,教程中为了做到一气呵成,先提前安装好需要的开发包。
[root@Wanghualang ~]# yum -y install cmake bison-devel ncurses-devel
编译安装软件
[root@Wanghualang ~]# cd /usr/local/src/
[root@Wanghualang src]# wget --no-check-certificate https://dev.mysql.com/get/Downloads/MySQL-5.5/mysql-5.5.59.tar.gz
[root@Wanghualang src]# tar xzf mysql-5.5.59.tar.gz
[root@Wanghualang src]# cd mysql-5.5.59
[root@Wanghualang mysql-5.5.59]# cmake -DCMAKE_INSTALL_PREFIX=/usr/local/mysql -DMYSQL_DATADIR=/usr/local/mysql/data -DWITH_DEBUG=0 -DMYSQL_UNIX_ADDR=/tmp/mysqld.sock -DMYSQL_USER=mysql -DDEFAULT_CHARSET=utf8 -DDEFAULT_COLLATION=utf8_general_ci -DEXTRA_CHARSETS=all -DWITH_READLINE=1 -DWITH_SSL=system -DWITH_EMBEDDED_SERVER=1 -DENABLED_LOCAL_INFILE=1 -DWITH_INNOBASE_STORAGE_ENGINE=1 -DWITHOUT_PARTITION_STORAGE_ENGINE=1
[root@Wanghualang mysql-5.5.59]# make
[root@Wanghualang mysql-5.5.59]# make install
扩展阅读展开
教程中仅配置安装基础功能,更多cmake配置参数可自行了解,日后按需添加。
[root@Wanghualang mysql-5.5.59]# cmake . -LH
初始化数据库,数据库启动用户设置为mysql,程序安装目录设置为/usr/local/mysql,数据存放路径设置为/usr/local/mysql/data。
[root@Wanghualang ~]# /usr/local/mysql/scripts/mysql_install_db --user=mysql --basedir=/usr/local/mysql --datadir=/usr/local/mysql/data
创建配置文件,建议先删除系统默认创建的MySQL配置文件,再拷贝新的配置文件。
[root@Wanghualang ~]# rm -rf /etc/my.cnf
[root@Wanghualang ~]# cp -rf /usr/local/mysql/support-files/my-huge.cnf /etc/my.cnf
配置命令环境变量
[root@Wanghualang ~]# echo "export PATH="/usr/local/mysql/bin:$PATH"" >> /etc/profile
[root@Wanghualang ~]# source /etc/profile
配置服务启动脚本
[root@Wanghualang ~]# cp -rf /usr/local/mysql/support-files/mysql.server /etc/init.d/mysqld
[root@Wanghualang ~]# chmod 755 /etc/init.d/mysqld
[root@Wanghualang ~]# chkconfig --add mysqld
启动服务
[root@Wanghualang ~]# service mysqld start
扩展阅读展开
建议使用源码目录中提供的安全向导配置数据库,按需重置Root密码、移除匿名用户、禁止Root远程登录、移除测试数据库。
[root@Wanghualang ~]# /usr/local/src/mysql-5.5.59/scripts/mysql_secure_installation
第四步 安装PHP
新建PHP用户和用户组
[root@Wanghualang ~]# groupadd php
[root@Wanghualang ~]# useradd -M php -s /sbin/nologin -g php
精简版的操作系统,在接下来的configure阶段肯定会出现缺失相关开发包的报错,根据提示安装相关开发包即可。教程中为了做到一气呵成,先提前安装好需要的开发包。
[root@Wanghualang ~]# yum -y install libxml2-devel libcurl-devel libjpeg-devel libpng-devel freetype-devel
编译安装软件
[root@Wanghualang ~]# cd /usr/local/src/
[root@Wanghualang src]# wget --no-check-certificate http://cn2.php.net/distributions/php-5.6.33.tar.gz
[root@Wanghualang src]# tar xzf php-5.6.33.tar.gz
[root@Wanghualang src]# cd php-5.6.33
[root@Wanghualang php-5.6.33]# ./configure --prefix=/usr/local/php --with-fpm-user=php --with-fpm-group=php --with-config-file-path=/usr/local/php/etc --with-openssl --with-zlib --with-curl --with-gd --with-gettext --with-mysql --with-mysqli --with-pdo-mysql --with-libxml-dir --with-pcre-dir --with-jpeg-dir --with-png-dir --with-freetype-dir --enable-fpm --enable-mysqlnd --enable-embedded-mysqli --enable-mbstring --disable-ipv6
[root@Wanghualang php-5.6.33]# make
[root@Wanghualang php-5.6.33]# make install
扩展阅读展开
教程中仅配置安装基础功能,更多configure配置参数可自行了解,日后按需添加。
[root@Wanghualang php-5.6.33]# ./configure --help | more
创建PHP配置文件
[root@Wanghualang ~]# cd /usr/local/php/etc/
[root@Wanghualang etc]# mv php-fpm.conf.default php-fpm.conf
[root@Wanghualang etc]# cp -rf /usr/local/src/php-5.6.33/php.ini-development ./php.ini
创建服务启动脚本
[root@Wanghualang ~]# vim /etc/init.d/php-fpm
脚本内容为红字部分:
#! /bin/sh
### BEGIN INIT INFO
# Provides: php-fpm
# Required-Start: $remote_fs $network
# Required-Stop: $remote_fs $network
# Default-Start: 2 3 4 5
# Default-Stop: 0 1 6
# Short-Description: starts php-fpm
# Description: starts the PHP FastCGI Process Manager daemon
### END INIT INFO
prefix=/usr/local/php
exec_prefix=${prefix}
php_fpm_BIN=${exec_prefix}/sbin/php-fpm
php_fpm_CONF=${prefix}/etc/php-fpm.conf
php_fpm_PID=${prefix}/var/run/php-fpm.pid
php_opts="--fpm-config $php_fpm_CONF --pid $php_fpm_PID"
wait_for_pid () {
try=0
while test $try -lt 35 ; do
case "$1" in
'created')
if [ -f "$2" ] ; then
try=''
break
fi
;;
'removed')
if [ ! -f "$2" ] ; then
try=''
break
fi
;;
esac
echo -n .
try=`expr $try + 1`
sleep 1
done
}
case "$1" in
start)
echo -n "Starting php-fpm "
$php_fpm_BIN --daemonize $php_opts
if [ "$?" != 0 ] ; then
echo " failed"
exit 1
fi
wait_for_pid created $php_fpm_PID
if [ -n "$try" ] ; then
echo " failed"
exit 1
else
echo " done"
fi
;;
stop)
echo -n "Gracefully shutting down php-fpm "
if [ ! -r $php_fpm_PID ] ; then
echo "warning, no pid file found - php-fpm is not running ?"
exit 1
fi
kill -QUIT `cat $php_fpm_PID`
wait_for_pid removed $php_fpm_PID
if [ -n "$try" ] ; then
echo " failed. Use force-quit"
exit 1
else
echo " done"
fi
;;
status)
if [ ! -r $php_fpm_PID ] ; then
echo "php-fpm is stopped"
exit 0
fi
PID=`cat $php_fpm_PID`
if ps -p $PID | grep -q $PID; then
echo "php-fpm (pid $PID) is running..."
else
echo "php-fpm dead but pid file exists"
fi
;;
force-quit)
echo -n "Terminating php-fpm "
if [ ! -r $php_fpm_PID ] ; then
echo "warning, no pid file found - php-fpm is not running ?"
exit 1
fi
kill -TERM `cat $php_fpm_PID`
wait_for_pid removed $php_fpm_PID
if [ -n "$try" ] ; then
echo " failed"
exit 1
else
echo " done"
fi
;;
restart)
$0 stop
$0 start
;;
reload)
echo -n "Reload service php-fpm "
if [ ! -r $php_fpm_PID ] ; then
echo "warning, no pid file found - php-fpm is not running ?"
exit 1
fi
kill -USR2 `cat $php_fpm_PID`
echo " done"
;;
*)
echo "Usage: $0 {start|stop|force-quit|restart|reload|status}"
exit 1
;;
esac
[root@Wanghualang ~]# chmod 755 /etc/init.d/php-fpm
[root@Wanghualang ~]# chkconfig --add php-fpm
启动服务
[root@Wanghualang ~]# service php-fpm start
第五步 配置Nginx解析PHP
[root@Wanghualang ~]# vim /usr/local/nginx/conf/nginx.conf
大约在第43行,找到:
location / {
root html;
index index.html index.htm;
}
在index.htm的后面加一个index.php,之间有空格,最终修改为:
location / {
root html;
index index.html index.htm index.php;
}
大约在第65行,找到:
#location ~ \.php$ {
#root html;
#fastcgi_pass 127.0.0.1:9000;
#fastcgi_index index.php;
#fastcgi_param SCRIPT_FILENAME /scripts$fastcgi_script_name;
#include fastcgi_params;
#}
去掉所有注释符号,再把/scripts修改为Nginx网站根目录,最终修改为:
location ~ \.php$ {
root html;
fastcgi_pass 127.0.0.1:9000;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME /usr/local/nginx/html$fastcgi_script_name;
include fastcgi_params;
}
重启服务
[root@Wanghualang ~]# service nginx restart
第六步 新建测试页
新建一个简单的PHP测试网页
[root@Wanghualang ~]# vim /usr/local/nginx/html/wanghualang.php
红字部分为代码内容:
<?php
phpinfo();
?>
客户端篇
使用浏览器访问测试网页:http://192.168.168.200/wanghualang.php,若能看到PHP相关程序信息,表示配置成功!
猜你还喜欢
- 09-06 [系统技巧] windows中,端口查看 关闭进程及Kill使用
- 09-06 [系统教程] Windows系统Git安装教程(详解Git安装过程)
- 06-26 [系统技巧] 远程桌面连接(mstsc)全攻略
- 03-29 [玩系统] Windows下强大的命令终端-Cmder
- 03-29 [系统技巧] Win10右键菜单添加“获取文件管理员权限”选项
- 03-29 [系统技巧] win10删除文件夹需要Administrator权限
- 03-09 [网络技巧] 如何使用IPv6地址直接访问http,https服务及Windows共享文件夹[UNC路径]
- 11-05 [系统技巧] 真的有后悔药!Win10超给力的备份功能你用过吗
- 11-05 [系统技巧] 发现Win11、Win10备份已禁用?帮你快速解决!
- 11-05 [电脑技巧] 科普|F1-F12快捷键有什么用?
- 11-05 [系统技巧] 永劫无间游戏卡顿、闪退 只需检查电脑这个设置
- 11-05 [系统技巧] Win10出现Runtime Error如何修复
取消回复欢迎 你 发表评论:
- 精品推荐!
-
- 最新文章
- 热门文章
- 热评文章
[资料] 24秋初中改版教材全集(全版本)[PDF]
[电影] 高分国剧《康熙王朝》(2001)4K 2160P 国语中字 全46集 78.2G
[动画] 迪士尼系列动画139部 国英双语音轨 【蓝光珍藏版440GB】
[电影] 莫妮卡贝鲁奇为艺术献身电影大合集 1080P超清 双语字幕
[电影] DC电影宇宙系列合集18部 4K 高码率 内嵌中英字幕 273G
[音乐] 【坤曲/4坤时】鸡你太美全网最全,385首小黑子战歌,黄昏见证虔诚的信徒,巅峰诞生虚伪的拥护!
[音乐] 用餐背景音乐大合集 [MP3/flac]
[书籍] 彭子益医书合集 [PDF/DOC]
[电影] 《环太平洋两部合集》 4K REMUX原盘 [杜比视界] 国英双语音轨 [内封特效字幕] [133.8G]
[电影] 异人之下 The Traveller 2024✨【影版】【4K正式版/HQ超高码/DDP5.1】✚【1080高码】无水印/无压缩
[书籍] 彭子益医书合集 [PDF/DOC]
[游戏] 《黑神话悟空》免安装学习版【全dlc整合完整版】+Steam游戏解锁+游戏修改工具!
[动画] 《名侦探柯南》名侦探柯南百万美元的五菱星 [TC] [MP4]
[电视剧集] [BT下载][黑暗城市- 清扫魔 Dark City: The Cleaner 第一季][全06集][英语无字][MKV][720P/1080P][WEB-RAW]
[涨点姿势] 男性性技宝典:14招实战驭女术——爱抚、按摩、催情、姿势、高潮全攻略
[动画] 2002《火影忍者》720集全【4K典藏版】+11部剧场版+OVA+漫画 内嵌简日字幕
[剧集] 《斯巴达克斯》1-4季合集 无删减版 1080P 内嵌简英特效字幕
[CG剧情] 《黑神话:悟空》158分钟CG完整剧情合集 4K120帧最高画质
[短剧] 被下架·禁播的羞羞短剧·午夜短剧合集
[游戏] 黑神话悟空离线完整版+修改器
[影视] 美国内战 4K蓝光原盘下载+高清MKV版/内战/帝国浩劫:美国内战(台)/美帝崩裂(港) 2024 Civil War 63.86G
[影视] 一命 3D 蓝光高清MKV版/切腹 / 切腹:武士之死 / Hara-Kiri: Death of a Samurai / Ichimei 2011 一命 13.6G
[影视] 爱情我你他 蓝光原盘下载+高清MKV版/你、我、他她他 2005 Me and You and Everyone We Know 23.2G
[影视] 穿越美国 蓝光原盘下载+高清MKV版/窈窕老爸 / 寻找他妈…的故事 2005 Transamerica 20.8G
[电影] 《黄飞鸿》全系列合集
[Android] 开罗游戏 ▎像素风格的模拟经营的游戏厂商安卓游戏大合集
[游戏合集] 要战便战 v0.9.107 免安装绿色中文版
[书籍] 彭子益医书合集 [PDF/DOC]
[资源] 精整2023年知识星球付费文合集136篇【PDF格式】
[系统]【黑果小兵】macOS Big Sur 11.0.1 20B50 正式版 with Clover 5126 黑苹果系统镜像下载
- 最新评论
-
怎么没有后续闲仙麟 评论于:11-03 怎么没后续闲仙麟 评论于:11-03 有靳东!嘻嘻奥古斯都.凯撒 评论于:10-28 流星花园是F4处女作也是4人集体搭配的唯一一部!奥古斯都.凯撒 评论于:10-28 找了好久的资源,终于在这里找到了。感谢本站的资源和分享。谢谢AAAAA 评论于:10-26 找了好久的资源,终于在这里找到了。感谢本站的资源和分享。谢谢password63 评论于:10-26 找了好久的资源,终于在这里找齐了!!!!blog001 评论于:10-21 找了好久的资源,终于在这里找齐了!!!!blog001 评论于:10-21 找了好久的资源,终于在这里找到了。感谢本站的资源和分享。谢谢WillKwok 评论于:10-09 感谢分享1234123 评论于:10-07
- 热门tag