前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >推荐阅读 | 如何部署 LAMP & LNMP网站架构实践?

推荐阅读 | 如何部署 LAMP & LNMP网站架构实践?

作者头像
用户9219377
修改2021-11-25 14:32:28
4870
修改2021-11-25 14:32:28
举报
文章被收录于专栏:nicolenicole

什么是 LAMP & LNMP?

LAMP = Linux + Apache + MySQL + PHP

LNMP = Linux + Nginx + MySQL + PHP

  • 流行,免费,开源,轻量
  • Linux VS Windows: 完全免费,稳定高效
  • MySQL: 关系型数据库
  • Apache:Web服务器软件
  • 监听端口,接收请求,解析HTTP协议,转发给PHP

Nginx 服务器软件

Apache & Nginx:前景更好,配置轻松,性能更优

Apache: select轮询机制

Nginx: epoll事件监听机制

编译安装

代码语言:javascript
复制
./configure  # 编译前准备
make         # 编译
make install # 安装

安装依赖软件

代码语言:javascript
复制
yum install -y vim wget gcc gcc++ libxml2-devel

编译安装php

1、下载

https://www.php.net/downloads.php

代码语言:javascript
复制
wget https://www.php.net/distributions/php-7.3.11.tar.gz
tar -zxvf php-7.3.11.tar.gz
cd php-7.3.11

2、编译安装

启用支持FPM FastCGI

https://www.php.net/manual/zh/install.fpm.install.php

代码语言:javascript
复制
./configure --prefix=/usr/local/php7 --enable-fpm
make && make install

CGI 公共网关接口,一个协议 fork子进程,处理完释放

FastCGI 语言无关,解释器子进程常驻在内存

FPM PHP扩展

代码语言:javascript
复制
$ php -r "phpinfo();"

MySQL

1、下载

https://dev.mysql.com/downloads/mysql/

source code

-> Generic Linux (Architecture Independent), Compressed TAR Archive

代码语言:javascript
复制
wget https://dev.mysql.com/get/Downloads/MySQL-8.0/mysql-8.0.18.tar.gz

2、安装依赖

代码语言:javascript
复制
yum install -y cmake gcc-c++ ncurses-devel perl-Data-Dumper boost boost-doc boost-devel

3、安装

代码语言:javascript
复制
cmake \
 -DCMAKE_INSTALL_PREFIX=/usr/local/mysql \
 -DMYSQL_DATADIR=/data/mysql/data \
 -DSYSCONFDIR=/etc \
 -DMYSQL_USER=mysql \
 -DWITH_MYISAM_STORAGE_ENGINE=1 \
 -DWITH_INNOBASE_STORAGE_ENGINE=1 \
 -DWITH_ARCHIVE_STORAGE_ENGINE=1 \
 -DWITH_MEMORY_STORAGE_ENGINE=1 \
 -DWITH_READLINE=1 \
 -DMYSQL_UNIX_ADDR=/var/run/mysql/mysql.sock \
 -DMYSQL_TCP_PORT=3306 \
 -DENABLED_LOCAL_INFILE=1 \
 -DENABLE_DOWNLOADS=1 \
 -DWITH_PARTITION_STORAGE_ENGINE=1 \
 -DEXTRA_CHARSETS=all \
 -DDEFAULT_CHARSET=utf8 \
 -DDEFAULT_COLLATION=utf8_general_ci \
 -DWITH_DEBUG=0 \
 -DMYSQL_MAINTAINER_MODE=0 \
 -DWITH_SSL:STRING=bundled \
 -DWITH_ZLIB:STRING=bundled

make && make install

4、启动使用

代码语言:javascript
复制
mysqld

mysql

Apache

1、下载

http://httpd.apache.org/

依赖:apr apr-util pcre

代码语言:javascript
复制
wget http://mirrors.tuna.tsinghua.edu.cn/apache//httpd/httpd-2.4.41.tar.gz
tar -zxvf  httpd-2.4.41.tar.gz
cd httpd-2.4.41

2、编译安装(配置必要的参数略)

代码语言:javascript
复制
./configure
make && make install

3、启动

代码语言:javascript
复制
apachetcl -k start

开放80端口sudo

代码语言:javascript
复制
firewall-cmd --zone=public --add-port80/tcp --permanent
systemctl restart firewalld.service

Nginx

1、下载

http://nginx.org/en/download.html

代码语言:javascript
复制
# 下载
wget  http://nginx.org/download/nginx-1.16.1.tar.gz
tar -zxvf nginx-1.16.1.tar.gz

# 安装 pcre url重写功能
./configure --prefix=/usr/local/nginx --with-pcre=/pcre
make && make install

# 启动
./nginx

工作方式

代码语言:javascript
复制
请求 <-> Nginx <-> PHP-FPM

配置

代码语言:javascript
复制
location ~ \.php {
         fastcgi_pass 127.0.0.1:9000;
         fastcgi_index  index.php;
         fastcgi_split_path_info ^(.+?\.php)(/.*)$;
         fastcgi_param PATH_INFO $fastcgi_path_info; 
         fastcgi_param  SCRIPT_FILENAME  $document_root$fastcgi_script_name;
         include        fastcgi_params;
    }

配置php-fpm

php-fpm.conf

代码语言:javascript
复制
pm = dynamic 设置动态解析
pm.max_children = 5 最大可以启动多少进程
pm.start_servers = 2 默认启动几个进程

配置Nginx

nginx.conf

代码语言:javascript
复制
worker_processes 1; (启动多少子进程)

重启

代码语言:javascript
复制
nginx -s reload

查看进程

代码语言:javascript
复制
ps aux|grep nginx



PS:剩下的就是云上如何构建网站架构主体,上传网站,静态html页面也行
总之,网站底座已搭建完成,之上的网站可以多种多样,看个人创新,最新地址,欢迎大家参与应用,谢谢

本文系转载,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文系转载前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
作者已关闭评论
0 条评论
热度
最新
推荐阅读
目录
  • 什么是 LAMP & LNMP?
    • 编译安装php
      • MySQL
        • Apache
          • Nginx
            • 配置php-fpm
              • 配置Nginx
              相关产品与服务
              云服务器
              云服务器(Cloud Virtual Machine,CVM)提供安全可靠的弹性计算服务。 您可以实时扩展或缩减计算资源,适应变化的业务需求,并只需按实际使用的资源计费。使用 CVM 可以极大降低您的软硬件采购成本,简化 IT 运维工作。
              领券
              问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档