LANMP架构

本文详细介绍了LNMP(Linux+Nginx+MySQL+PHP)架构,包括各组件的功能和一个免费开源的网站服务系统。同时,提供了MySQL、PHP和Nginx的源码编译安装步骤,包括依赖安装、配置选项以及启动与管理。

LNMP代表的就是:Linux系统下Nginx+MySQL+PHP这种网站服务器架构。
(1)Linux是一类Unix计算机操作系统的统称,是目前最流行的免费操作系统。
(2)Nginx是一个高性能的HTTP和反向代理服务器,也是一个IMAP/POP3/SMTP代理服务器。
(3)Mysql是一个小型关系型数据库管理系统。 PHP是一种在服务器端执行的嵌入HTML文档的脚本语言。
(4)这四种软件均为免费开源软件,组合到一起,成为一个免费、高效、扩展性强的网站服务系统。

mysql源码编译

需要
mysql-boost-5.7.17.tar.gz
cmake-2.8.12.2-4.el6.x86_64.rpm

yum install cmake-2.8.12.2-4.el6.x86_64.rpm -y
yum install -y  gcc gcc-c++ ncurses-devel bison

tart  zxf mysql-boost-5.7.17.tar.gz

进入安装目录
cd mysql-5.7.17

cmake -DCMAKE_INSTALL_PREFIX=/usr/local/lnmp/mysql \
-DMYSQL_DATADIR=/usr/local/lnmp/mysql/data \
-DMYSQL_UNIX_ADDR=/usr/local/lnmp/mysql/data/mysql.sock \
-DWITH_MYISAM_STORAGE_ENGINE=1 \
-DWITH_INNOBASE_STORAGE_ENGINE=1 \
-DDEFAULT_CHARSET=utf8 \
-DDEFAULT_COLLATION=utf8_general_ci \
-DEXTRA_CHARSETS=all \
-DWITH_BOOST=boost/boost_1_59_0/

make && make install

大概2G(时间大约在半小时左右)

###########################################

注意:                                                                                  #

如果主机曾经装过mysql,则需要删除之前的mysql      #

yum remove mysql -y                                                          #

    userdel -r mysql                                                               #

###########################################

cd support-files/
cp mysql.server /etc/init.d/mysqld
chmod +x /etc/init.d/mysqld
cp my-default.cnf /etc/my.cnf
vim /etc/my.cnf

加入
basedir = /usr/local/lnmp/mysql
datadir = /usr/local/lnmp/mysql/data
socket =  /usr/local/lnmp/mysql/data/mysql.sock

对mysql服务进行限制(利用mysql用户),将mysql服务的工作空间局限在mysql用户的家目录中,创建mysql组和mysql用户

groupadd -g 27 mysql
useradd -u 27 -g 27 mysql
mkdir /usr/local/lnmp/mysql/data
chown root /usr/local/lnmp/mysql -R
chown mysql.mysql /usr/local/lnmp/mysql/data

将编译生成的mysql二进制命令放进系统的环境变量文件中,保证可以直接调用该二进制命令
vim ~/.bash_profile
PATH最后加:/usr/local/lnmp/mysql/bin
source ~/.bash_profile

mysqld --user=mysql --initialize  -----------最后一行会给出数据库初始密码

/etc/init.d/mysqld start--------开启服务

mysql_secure_installation -p''-------------用初始密码登陆

进行初始化 并且重置密码

如果出现套接问题 ps aux |grep mysql   直接kill -9 就好

PHP源码编译

libmcrypt-2.5.8-9.el6.x86_64  libmcrypt-devel-2.5.8-9.el6.x86_64
软件包依赖性:
yum install net-snmp-devel curl-devel libxml2-devel libpng-devel libjpeg-devel freetype-devel gmp-devel openldap-devel -y
yum install libxml2-devel  libcurl-devel openssl-devel libmcrypt  libmcrypt-devel re2c net-snmp net-snmp-devel -y

tar jxf php-5.3.6.tar.bz2
cd php-5.3.6

./configure --prefix=/usr/local/lnmp/php --with-config-file-path=/usr/local/lnmp/php/etc --with-openssl --with-snmp --with-gd --with-zlib --with-curl --with-libxml-dir --with-png-dir --with-jpeg-dir --with-freetype-dir --with-gmp --with-gettext --with-pear --enable-mysqlnd --with-mysql=mysqlnd --with-mysqli=mysqlnd --with-pdo-mysql=mysqlnd --enable-inline-optimization --enable-soap --enable-ftp --enable-sockets --enable-mbstring --enable-fpm --with-fpm-user=nginx --with-fpm-group=nginx --with-mcrypt --with-mhash

make && make install

useradd nginx
cd php-5.6.35
cd php
cd /usr/local/lnmp/php/etc/
cp php-fpm.conf.default  php-fpm.conf
修改
pid = run/php-fpm.pid

cp php.ini-production /usr/local/lnmp/php/etc/php.ini
cd sapi/fpm
cp init.d.php-fpm /etc/init.d/php-fpm
修改时区timezone 为 Asia/Shanghai

/etc/init.d/php-fpm start

nginx源码编译

yum install -y pcre-devel
nginx-1.14.0.tar.gz
tar xf nginx-1.14.0.tar.gz

/mnt/lnmp/nginx-1.14.0/auto/cc
#CFLAGS="$CFLAGS -g"

vim src/core/nginx.h
#define NGINX_VERSION "1.0.2”
#define NGINX_VER "nginx" (修改此行, 去掉后面的 “ NGINX_VERSION”,为了安全,这样编译后外界无法获取程序的版本号)

./configure --prefix=/usr/local/lnmp/nginx --with-http_ssl_module --with-http_stub_status_module --with-threads --with-file-aio --user=nginx --group=nginx


make && make install

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

 

vim /usr/local/lnmp/nginx/conf/nginx.conf

 

worker_processes  8;

error_log  logs/error.log crit;
pid        logs/nginx.pid;

worker_rlimit_nofile 65535;

events {
    use epoll;
    worker_connections  65535;
}

 

在server{}中
 index index.php index.html index.htm;

打开

        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.conf;
        }

 


vim  /usr/local/lnmp/nginx/html/index.php
<?php
   phpinfo()
?>

 

nginx -t  #检测语法
nginx  #运行 nginx
nginx -s reload  #重载主配置文件
nginx -s stop   #关闭 nginx
netstat -antlpe | grep nginx

 

搭建论坛
yum install unzip -y
unzip Discuz_X3.2_SC_UTF8.zip
mv upload /usr/local/lnmp/nginx/html/bbs
chmod 777 uc_server/ uc_client/  config/ data/ -R
chmod 755 /usr/local/lnmp/mysql/data/
vim /usr/local/lnmp/php/etc/php.ini

pdo_mysql.default_socket=/usr/local/lnmp/mysql/data/mysql.sock
mysql.default_socket = /usr/local/lnmp/mysql/data/mysql.sock
mysqli.default_socket = /usr/local/lnmp/mysql/data/mysql.sock

/etc/init.d/php-fpm reload

172.25.11.1/bbs
即可

创建用户后  使用数据库查询
select * from pre_ucenter_members;

 

### 在 CentOS 上安装和配置 LANMP 环境 #### 1. 更新系统并准备环境 在开始之前,建议先更新系统的软件包列表以确保使用的是最新版本的工具和依赖项。 ```bash yum update -y ``` 为了提高下载速度,可以替换默认的 YUM 源为阿里云镜像源[^1]。 --- #### 2. 安装 Apache (HTTPD) 通过 YUM 软件包管理器安装 Apache HTTP 服务器: ```bash yum -y install httpd ``` 编辑 Apache 的配置文件 `/etc/httpd/conf/httpd.conf` 来调整监听端口或其他参数。例如,如果希望更改默认端口号到 `8080`,可以在配置文件中找到以下行并将端口修改为所需值[^3]: ```apache Listen 80 ServerName www.example.com:80 ``` 将其更改为: ```apache Listen 8080 ServerName www.example.com:8080 ``` 启动 Apache 并设置开机自启: ```bash systemctl start httpd systemctl enable httpd ``` 还可以根据需求安装一些常用的 Apache 扩展模块,比如 SSL 支持或 Perl 集成: ```bash yum -y install httpd-manual mod_ssl mod_perl mod_auth_mysql ``` --- #### 3. 安装 MariaDB 或 MySQL 数据库 MariaDB 是 MySQL 的社区分支,在 CentOS 中通常作为替代品提供支持。可以通过以下命令安装数据库服务[^2]: ```bash yum -y install mariadb-server mariadb mysql-devel ``` 启动 MariaDB 服务并启用自动启动: ```bash systemctl start mariadb systemctl enable mariadb ``` 运行安全脚本初始化数据库密码和其他安全性选项: ```bash mysql_secure_installation ``` 此过程会提示您输入 root 密码、删除匿名用户以及其他增强安全性的操作。 注意:如果遇到无法连接本地 MySQL 服务器的问题(如错误消息提到找不到套接字路径),可能是因为服务未正常启动。此时应检查日志文件或重新尝试启动服务[^2]。 --- #### 4. 安装 PHP 及其扩展 PHP 是处理动态网页的核心组件之一。以下是安装方法及其常用扩展的方式: ```bash yum -y install php php-mysqlnd php-fpm php-gd php-xml php-mbstring ``` 验证已安装的 PHP 版本号: ```bash php -v ``` 重启 Apache 让新加载的 PHP 功能生效: ```bash systemctl restart httpd ``` 创建测试页面来确认 PHP 是否工作正常。例如,在 Web 根目录下新建一个名为 `info.php` 的文件: ```php <?php phpinfo(); ?> ``` 访问该地址(假设 IP 地址为 `192.168.1.100` 和端口为 `8080`): ``` http://192.168.1.100:8080/info.php ``` --- #### 5. 设置网站访问权限 为了让外部客户端能够成功请求您的站点内容,需适当放宽防火墙规则以及调整 Apache 的访问控制策略[^4]: ##### (1)开放必要的网络端口 允许来自外界对指定端口(此处设定了 `8080`)的数据流量通行: ```bash firewall-cmd --permanent --add-port=8080/tcp firewall-cmd --reload ``` ##### (2)修改 Apache 文件夹读写权限 进入虚拟主机定义部分所在的区域,将指令设定如下所示以便于授权所有者完全操控权能的同时也给予访客浏览许可权利: ```apache <Directory "/var/www/html"> AllowOverride All Require all granted </Directory> ``` 最后保存变更后的文档再执行同步刷新动作使改动即时反映出来即完成全部部署流程! --- #### 总结 至此已经完成了基于 Linux(CentOS), Apache, Mysql(MariaDB)/Php 构建而成的一整套 LAMP 堆栈架构搭建教程介绍说明环节结束啦!接下来您可以着手开发属于自己的项目应用啦😊。
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值