LNMP架构源码编译

本文详细介绍了在CentOS Linux系统上如何从源码编译安装Nginx、MySQL 5.7和PHP,包括关闭防火墙、安装依赖、创建运行用户、编译配置、权限调整、数据库初始化及验证PHP运行。最后,还涵盖了论坛的安装过程。
摘要由CSDN通过智能技术生成

目录

1.编译安装Nginx

1.1 关闭防火墙

1.2 安装依赖包

1.3 创建运行用户

1.4 编译安装Nginx

1.5 路径优化

1.6 添加Nginx系统服务

2.编译安装mysql5.7

2.1 安装Mysql环境依赖包

2.2 创建运行用户

2.3 编译安装

2.4 数据库目录进行权限调整

2.5 调整配置文件

2.6 设置环境变量

2.7 初始化数据库

2.8 数据库开启自启、 关闭、状态

2.9 设置Mysql密码

2.10 登录数据库

3.安装配置php文件

3.1 安装环境依赖包

3.2 编译安装

3.3 修改php配置文件

3.4 验证php测试页

4.安装论坛

1.编译安装Nginx

1.1 关闭防火墙

systemctl stop firewalld
systemctl disable firewalld
setenforce 0

1.2 安装依赖包

yum -y install pcre-devel zlib-devel gcc gcc-c++ make

1.3 创建运行用户

新建用户 组便于管理(nginx 服务程序默认 以 nobody 身份运行,建议为其创建专门的用户账户,以便更准确的控制访问权限)

useradd -M -s /sbin/nologin nginx

1.4 编译安装Nginx

#切换至/opt
cd /opt
#解压nginx文件
tar zxvf nginx-1.12.0.tar.gz 
#切换目录
cd nginx-1.12.0/
​
#编译
./configure \
--prefix=/usr/local/nginx \
--user=nginx \
--group=nginx \
--with-http_stub_status_module
​
#安装
make && make install -j4

1.5 路径优化

ln -s /usr/local/nginx/sbin/nginx /usr/local/sbin/

1.6 添加Nginx系统服务

方法一:
vim /etc/init

#!/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




#!/bin/bash
#chkconfig: 35 99 20
#description:Nginx Service Control Script
cmd="/usr/local/nginx/sbin/nginx"
pid="/usr/local/nginx/logs/nginx.pid"

case $1 in

start)
$cmd
;;

stop)
kill -3 `cat $pid`
;;

reload)
kill -1 `cat $pid`
;;

restart)
$0 stop
$0 start
;;

*)
echo "plaese input start,stop,reload,restart"
exit 1

esac
exit 0

方法二:
vim /lib/systemd/system/nginx.service

[Unit]
Description=nginx
After=network.target
[Service]
Type=forking
PIDFile=/usr/local/nginx/logs/nginx.pid
ExecStart=/usr/local/nginx/sbin/nginx
ExecReload=/usr/bin/kill -s HUP $MAINPID
ExecStop=/usr/bin/kill -s QUIT $MAINPID
PrivateTmp=true
[Install]
WantedBy=multi-user.target
##配置参数解释##
[Unit]
Description=nginx                     ####描述
After=network.target                 ####描述服务类别
[Service]
Type=forking                                             ###后台运行形式
PIDFile=/usr/local/nginx/logs/nginx.pid                   ###PID文件位置
ExecStart=/usr/local/nginx/sbin/nginx                     ###启动服务
ExecReload=/usr/bin/kill -s HUP $MAINPID             ###根据PID重载配置
ExecStop=/usr/bin/kill -s QUIT $MAINPID                ###根据PID终止进程
PrivateTmp=true
[Install]
WantedBy=multi-user.target


[root@localhost system]#systemctl daemon-reloadsystemctl daemon-reload 
#重载服务
[root@localhost system]#systemctl start nginx.service 
测试

2.编译安装mysql5.7

2.1 安装Mysql环境依赖包

[root@localhost ~]# yum -y install \
ncurses \
ncurses-devel \
bison \
cmake

2.2 创建运行用户

[root@localhost ~] useradd -s /sbin/nologin  mysql

2.3 编译安装

[root@localhost opt]#cd mysql-5.7.20/
cmake \
-DCMAKE_INSTALL_PREFIX=/usr/local/mysql \
-DMYSQL_UNIX_ADDR=/usr/local/mysql/mysql.sock \
-DSYSCONFDIR=/etc \
-DSYSTEMD_PID_DIR=/usr/local/mysql \
-DDEFAULT_CHARSET=utf8  \
-DDEFAULT_COLLATION=utf8_general_ci \
-DWITH_INNOBASE_STORAGE_ENGINE=1 \
-DWITH_ARCHIVE_STORAGE_ENGINE=1 \
-DWITH_BLACKHOLE_STORAGE_ENGINE=1 \
-DWITH_PERFSCHEMA_STORAGE_ENGINE=1 \
-DMYSQL_DATADIR=/usr/local/mysql/data \
-DWITH_BOOST=boost \
-DWITH_SYSTEMD=1
make && make install -j4

2.4 数据库目录进行权限调整

[root@localhost mysql-5.7.20]#chown -R mysql:mysql /usr/local/mysql/

2.5 调整配置文件

[root@localhost mysql-5.7.20]#vi /etc/my.cnf
[client]
port = 3306
default-character-set=utf8
socket = /usr/local/mysql/mysql.sock

[mysql]
port = 3306
default-character-set=utf8
socket = /usr/local/mysql/mysql.sock

[mysqld]
user = mysql
basedir = /usr/local/mysql
datadir = /usr/local/mysql/data
port = 3306
character_set_server=utf8
pid-file = /usr/local/mysql/mysqld.pid
socket = /usr/local/mysql/mysql.sock
server-id = 1

sql_mode=NO_ENGINE_SUBSTITUTION,STRICT_TRANS_TABLES,NO_AUTO_CREATE_USER,NO_AUTO_VALUE_ON_ZERO,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,PIPES_AS_CONCAT,ANSI_QUOTES


NO_ENGINE_SUBSTITUTION
如果需要的存储引擎被禁用或未编译,那么抛出错误。不设置此值时,用默认的存储引擎替代,并抛出一个异常
STRICT_TRANS_TABLES
在该模式下,如果一个值不能插入到一个事务表中,则中断当前的操作,对非事务表不做限制
NO_AUTO_CREATE_USER
禁止:GRANT创建密码为空的用户
NO_AUTO_VALUE_ON_ZERO
mysql中的自增长列可以从o开始。默认情况下自增长列是从1开始的,如果你插入值为0的数据会报错
NO_ZERO_IN_DATE
mysql数据库不允许插入零日期,插入零日期会抛出错误而不是警告
ERROR_FOR_DIVISION_BY_ZERO
在INSERT或UPDATE过程中,如果数据被零除,则产生错误而非警告。默认情况下数据被零除时MysQL返回NULL
IPES_AS_CONCAT
将"||"视为字符串的连接操作符而非或运算符,这和oracle数据库是一样的,
ANSI QUOTES
启用ANSI QUOTES后,不能用双引号来引用字符串,因为它被解释为识别符

[root@localhost mysql-5.7.20]#chown mysql:mysql /etc/my.cnf
#改变属主 属组

2.6 设置环境变量

echo 'PATH=/usr/local/mysql/bin:/usr/local/mysql/lib:$PATH' >> /etc/profile
echo 'export PATH' >> /etc/profile
source /etc/profile

2.7 初始化数据库

cd /usr/local/mysql/

bin/mysqld \
--initialize-insecure \
--user=mysql \
--basedir=/usr/local/mysql \
--datadir=/usr/local/mysql/data

cp usr/lib/systemd/system/mysqld.service /usr/lib/systemd/system/

2.8 数据库开启自启、 关闭、状态

systemctl enable mysqld
systemctl start mysqld
systemctl stop mysqld
systemctl status mysqld
netstat -anpt | grep 3306

2.9 设置Mysql密码

mysqladmin -u root -p password

2.10 登录数据库

mysql -u root -p 

3.安装配置php文件

3.1 安装环境依赖包

yum -y install \
libjpeg \
libjpeg-devel \
libpng libpng-devel \
freetype freetype-devel \
libxml2 \
libxml2-devel \
zlib zlib-devel \
curl curl-devel \
openssl openssl-devel

3.2 编译安装

#切换至/opt目录
cd /opt/
#解压文件
tar -jxf php-7.1.10.tar.bz2 
#切换至解压后的目录
cd php-7.1.10
​
#编译
./configure \
--prefix=/usr/local/php \
--with-mysql-sock=/usr/local/mysql/mysql.sock \
--with-mysqli \
--with-zlib \
--with-curl \
--with-gd \
--with-jpeg-dir \
--with-png-dir \
--with-freetype-dir \
--with-openssl \
--enable-fpm \
--enable-mbstring \
--enable-xml \
--enable-session \
--enable-ftp \
--enable-pdo \
--enable-tokenizer \
--enable-zip
​
​
#安装
make && make install -j4

3.3 修改php配置文件

#修改php.ini 核心配置文件  
#拷贝
cp php.ini-development /usr/local/php/lib/php.ini
#进入核心配置文件  
vim /usr/local/php/lib/php.ini
#修改第1170行和939行
1170 mysqli.default_socket = /usr/local/mysql/mysql.sock
939 date.timezone = Asia/Shanghai
​
#验证安装的模块
/usr/local/php/bin/php -m
#配置及优化FPM模块
cd /usr/local/php/etc/
cp  php-fpm.conf.default php-fpm.conf
cd /usr/local/php/etc/php-fpm.d/
cp www.conf.default www.conf
​
#进入目录
cd /usr/local/php/etc/
#进入进程服务配置文件 
vi php-fpm.conf
pid = run/php-fpm.pid  #将这一行注释去掉
​
#创建
/usr/local/php/sbin/php-fpm -c /usr/local/php/lib/php.ini
​
#查看结果
ps aux | grep -c "php-fpm" 
#让nginx支持PHP功能
​
#进入nginx主配置文件
vi /usr/local/nginx/conf/nginx.conf 
​
--65行--取消注释,修改
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;  #将/scripts修改为nginx的工作目录
    include        fastcgi_params;
}
​
​
#创建网页文件
vi /usr/local/nginx/html/index.php
​
<?php
phpinfo();
?>

3.4 验证php测试页

#创建网页文件
vi /usr/local/nginx/html/index.php
​
<?php
phpinfo();
?>
​
#重启nginx服务
systemctl restart nginx
​
#在网页测试
“http://192.168.52.120/index.php”

4.安装论坛

mysql> CREATE DATABASE bbs;  //创建一个数据库//

mysql> GRANT all ON bbs.* TO 'bbsuser'@'%' IDENTIFIED BY 'admin123';   //把bbs数据库里面所有表的权限授予给bbsuser,并设置密码//  所有访问来源/渠道

mysql> GRANT all ON bbs.* TO 'bbsuser'@'localhost' IDENTIFIED BY 'admin123';

mysql>flush privileges; //刷新数据库//

unzip /opt/lamp/Discuz_X2.5_SC_UTF8.zip -d /opt/dis

cd /opt/dis

cp -r upload/ /usr/local/httpd/htdocs/bbs

cd /usr/local/httpd/htdocs/bbs

chown -R daemon ./config
chown -R daemon ./data
chown -R daemon ./uc_client
chown -R daemon ./uc_server/data

http://192.168.52.120/bbs

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
源码编译部署LNMP是指在Linux系统上使用Nginx、MySQL和PHP这三个开源软件进行Web服务的搭建。LNMP的含义是Linux Nginx Mysql PHP。 源码编译部署LNMP架构步骤如下: 1. 首先,确保已经安装了gcc、gcc-c、pcre-devel、zlib-devel和make等必要的工具和依赖库。可以使用以下命令进行安装:yum -y install gcc gcc-c pcre-devel zlib-devel make。 2. 下载并安装Nginx:从Nginx官网或者其他可信赖的网站下载Nginx的源码包,并解压。进入解压后的目录,执行以下命令进行编译安装:./configure --prefix=/usr/local/nginx && make && make install。这将会将Nginx安装到/usr/local/nginx目录下。 3. 下载并安装MySQL:从MySQL官网或者其他可信赖的网站下载MySQL的源码包,并解压。进入解压后的目录,执行以下命令进行编译安装:./configure --prefix=/usr/local/mysql && make && make install。这将会将MySQL安装到/usr/local/mysql目录下。 4. 下载并安装PHP:从PHP官网或者其他可信赖的网站下载PHP的源码包,并解压。进入解压后的目录,执行以下命令进行编译安装:./configure --prefix=/usr/local/php --with-mysql=/usr/local/mysql --with-pdo-mysql=/usr/local/mysql --with-openssl && make && make install。这将会将PHP安装到/usr/local/php目录下,并与MySQL进行关联。 5. 配置Nginx:进入Nginx安装目录,编辑nginx.conf文件,设置服务器监听的端口和网站的根目录等配置项。保存并退出文件。 6. 启动LNMP服务:依次启动Nginx、MySQL和PHP的服务,可以使用以下命令:/usr/local/nginx/sbin/nginx、/usr/local/mysql/bin/mysqld_safe、/usr/local/php/sbin/php-fpm。 7. 测试Web服务:可以在浏览器中输入服务器的IP地址或域名,并访问相应的网页,以检查LNMP的部署是否成功。 综上所述,源码编译部署LNMP架构步骤包括安装必要的工具和依赖库、下载并安装Nginx、MySQL和PHP、配置Nginx、启动LNMP服务和测试Web服务。通过这些步骤,可以搭建起一个基于LNMP的Web服务。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* [Linux LNMP Web服务源码编译部署手册](https://download.csdn.net/download/machen_smiling/11135787)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_1"}}] [.reference_item style="max-width: 33.333333333333336%"] - *2* [基于Centos7.5的源码编译部署LNMP架构](https://blog.csdn.net/weixin_41843699/article/details/94052153)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_1"}}] [.reference_item style="max-width: 33.333333333333336%"] - *3* [源码编译安装LNMP](https://blog.csdn.net/GaLiCHaoFan1/article/details/126534182)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_1"}}] [.reference_item style="max-width: 33.333333333333336%"] [ .reference_list ]

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值