LAMP架构介绍

Posted qq5ee630a16d38e

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了LAMP架构介绍相关的知识,希望对你有一定的参考价值。

LAMP架构介绍

LAM(N)P架构是分别指的以下几项:

  • L: linux
  • A: apache (httpd)
  • M: mysql, mariadb,memcached
  • N:nginx
  • P: php, perl, python

把这几种服务结合起来,在Linux上运行,便是实现了最基本的LAMP架构,而Apache和Nginx属于WEB服务,它需要把服务器上的WEB资源提供给客户端,WEB资源又有动态和静态两种类型

WEB资源类型:

  • 静态资源:原始形式与响应内容一致
  • 动态资源:原始形式通常为程序文件,需要在服务器端执 行之后,将执行结果返回给客户端

Web相关语言

  • 客户端技术: javascript,htm
  • 服务器端技术:php, jsp,python
LAMP架构说明示意图

\'LAMP架构介绍_服务器\'

CGI

首先我们需要知道:
程序=指令+数据
指令:代码文件
数据:数据存储系统、文件

CGI:Common Gateway Interface
可以让一个客户端,从网页浏览器通过http服务器向执行在网络服务器上的程序传输数据;CGI描述了客户端和服务器程序之间传输的一种标准

客户端请求流程:
Client – (httpd) --> httpd – (cgi) -->
application server (program file) – (mysql) --> mysql

php: 脚本编程语言、嵌入到html中的嵌入式web程序语言基于zend编译成opcode(二进制格式的字节码,重复运行,可省略编译环境)

php配置

php:脚本语言解释器
配置文件:/etc/php.ini, /etc/php.d/*.ini
配置文件在php解释器启动时被读取
对配置文件的修改生效方法

  • Modules:重启httpd服务
  • FastCGI:重启php-fpm服务

/etc/php.ini配置文件格式:
[foo]:Section Header
directive = value

注释符:较新的版本中,已经完全使用;进行注释
#:纯粹的注释信息
;:用于注释可启用的directive

php设置
  • max_execution_time= 30 最长执行时间30s
  • memory_limit 128M 生产不够,可调大
  • display_errors off 调试使用,不要打开,否则可能暴露重要信息
  • display_startup_errors off 建议关闭
  • post_max_size 8M 最大上传数据大小,生产可能临时要调大,比下面项要大
  • upload_max_filesize 2M 最大上传文件,生产可能要调大
  • max_file_uploads = 20 同时上传最多文件数
  • date.timezone =Asia/Shanghai 指定时区
  • short_open_tag=on 开启短标签,如<?phpinfo();?>
php代码

格式1

<?php 
	echo "<h1>Hello world!</h1>" 
?> 

格式2

<h1> 
	<?php echo "Hello world!" ?> 
</h1>

php测试代码

<?php
	echo date("Y/m/d H:i:s"); 
	phpinfo(); 
?> 
常见LAMP应用

PhpMyAdmin是一个以PHP为基础,以Web-Base方式架构在网站 主机上的MySQL的数据库管理工具,让管理者可用Web接口管理 MySQL数据库

WordPress是一种使用PHP语言开发的博客平台,用户可以在支持 PHP和MySQL数据库的服务器上架设属于自己的网站。也可把 WordPress当作一个内容管理系统(CMS)来使用

PHPWind:2003年发布了PHPWind的前身版本ofstar,并发展成为 包含BBS、CMS、博客、SNS等一系列程序的通用型建站软件, 于 2008年加入阿里巴巴集团

Crossday Discuz! Board(简称 Discuz!)是一套通用的社区论坛 软件系统。自2001年6月面世以来,是全球成熟度最高、覆盖率最 大的论坛软件系统之一。2010年8月23日,与腾讯达成收购协议

ECShop是一款B2C独立网店系统,适合企业及个人快速构建个性化 网上商店。系统是基于PHP语言及MYSQL数据库构架开发的跨平台 开源程序。2006年6月,ECShop推出第一个版本1.0

php的加速器

1 php 模块方式:
yum install httpd php php-mysql mariadb-server

2 php-fpm 模式
yum install httpd php-fpm php-mysql mariadb-server

vim /etc/httpd/conf.d/fcgi.conf配置文件,内容类似:
DirectoryIndex index.php
ProxyRequests Off
ProxyPassMatch ^/(.*.php)$ fcgi://127.0.0.1:9000/var/www/html/$1

centos6.9基于FPM模式的编译安装实现Lamp应用wordpress

1.安装软件包
wget https://downloads.mariadb.org/interstitial/mariadb-10.5.4/bintar-linux-x86_64/mariadb-10.5.4-linux-x86_64.tar.gz/from/http%3A//mirrors.tuna.tsinghua.edu.cn/mariadb/

wget https://www.php.net/distributions/php-7.3.20.tar.bz2

wget https://downloads.apache.org//httpd/httpd-2.4.43.tar.bz2

wget https://cn.wordpress.org/latest-zh_CN.tar.gz

wget https://downloads.apache.org//apr/apr-1.7.0.tar.bz2

解压缩
tar -xvf apr-1.7.0.tar.bz2
tar -xvf apr-util-1.6.1.tar.bz2
tar -xvf httpd-2.4.43.tar.bz2

准备编译
mv apr-1.7.0 httpd-2.4.43/srclib/apr
mv apr-util-1.6.1 httpd-2.4.43/srclib/apr-util

mkdir /BLOG
开始编译 httpd

./configure --prefix=/BLOG/httpd
–enable-so
–ena ble-ssl
–enable-cgi
–enable-rewrite
–with-zlib
–with-pcre
–with-included-apr
–enable-modules=most
–enable-mpms-shared=all
–with-mpm=prefork

make && make install

解压缩 MariaDB
tar -xvf mariadb-10.5.4-linux-x86_64.tar.gz -C /usr/local/
cd /usr/local
软链接指向
ln -s mariadb-10.5.4-linux-x86_64/ mysql
创建用户
useradd -r -s /sbin/nologin mysql
建立存放数据库目录
mkdir /data/mysqldb
更改所有者
chown -R mysql.mysql /data/mysqldb/
开始安装
./scripts/mysql_install_db --datadir=/data/mysqld --user=mysql
生成配置文件
vim /etc/my.cnf
[mysqld]
port=3306
datadir=/data/mysqld
socket=/tem/mysql.sock
[mysqld_safe]
log-error=/var/log/mysql/mysqldb.log
pid-file=/var/run/mysql/mysqldb.pid
[client]
port=3306
socket=/tem/mysql.sock
default-character-set=utf8
添加启动脚本
cd support-files/
cp mysql.server /etc/init.d/mysqld
加入chkconfig
chkconfig --add mysqld
启动
service mysqld start

添加环境变量
echo ‘PATH=/BLOG/httpd/bin:/usr/local/mysql/bin:$PATH’ > /etc/profile.d/lamp.sh
. /etc/profile.d/lamp.sh

安装php
安装准备
yum install bzip2-devel libxml2-devel libmcrypt-devel sqlite-devel.x86_64 re2c php-pgsql -y

yum install https://rpms.remirepo.net/enterprise/7/remi/x86_64/oniguruma5php-6.9.5+rev1-2.el7.remi.x86_64.rpm -y

yum install https://rpms.remirepo.net/enterprise/7/remi/x86_64/oniguruma5php-devel-6.9.5+rev1-2.el7.remi.x86_64.rpm -y

解压
tar -xvf php-7.3.20.tar.bz2
安装
cd php-7.4.8

./configure --prefix=/BLOG/php --enable-mysqlnd --with-mysqli=mysqlnd --with-openssl --with-pdo-mysql=mysqlnd --enable-mbstring --with-freetype-dir --with-jpeg-dir --with-png-dir --with-zlib --with-libxml-dir=/usr --enable-xml --enable-sockets --enable-fpm --with-config-file-path=/etc --with-config-file-scan-dir=/etc/php.d --enable-maintainer-zts --disable-fileinfo

make && make install

修改httpd的配置文件

修改运行apach的用户身份
vim /app/httpd24/conf/httpd.conf
User daemon
Group daemon
vim /app/httpd24/conf/httpd.conf
取消下面两行的注释
LoadModule proxy_module modules/mod_proxy.so
LoadModule proxy_fcgi_module modules/mod_proxy_fcgi.so
修改下面行为如下:

<IfModule dir_module>
DirectoryIndex index.php index.html
</IfModule>

在文件结尾加下面四行
AddType application/x-httpd-php .php
AddType application/x-httpd-php-source .phps
ProxyRequests Off
ProxyPassMatch ^/(.*.php)$ fcgi://127.0.0.1:9000/app/httpd24/htdocs/$1

配置php
cp /root/php-7.4.8/php.ini-production /etc/php.ini
添加启动脚本
cp /root/php-7.4.8/sapi/fpm/init.d.php-fpm /etc/init.d/php-fpm
chmod +x /etc/init.d/php-fpm
chkconfig --add php-fpm
chkconfig php-fpm on

cd /app/php/etc
cp php-fpm.conf.default php-fpm.conf
cp php-fpm.d/www.conf.default php-fpm.d/www.conf

重新启动
service httpd24 start

解压缩WordPress
tar -xvf latest-zh_CN.tar.gz -C /app/httpd24/htdocs/
cd /app/httpd24/htdocs/
mv wordpress/ blog
cd blog/
cp wp-config-sample.php wp-config.php

vim wp-config.php
define( ‘DB_NAME’, ‘blogdb’ );
define( ‘DB_USER’, ‘bloguser’ );
define( ‘DB_PASSWORD’, ‘1’ );

启动mysql
msyql

create database blogdb;
grant all on blogdb.* to bloguser@localhost identified by ‘1’;
flush privileges;

CentOS7编译Php-xcache加速访问

官网:http://xcache.lighttpd.net/wiki/ReleaseArchive
安装方法
rpm包:来自epel源
编译安装
编译安装
yum -y install php-devel
下载并解压缩xcache-3.2.0.tar.bz2
phpize 生成编译环境
cd xcache-3.2.0
./configure --enable-xcache --with-php- config=/usr/bin/php-config
make && make install
cp xcache-3.2.0/xcache.ini /etc/php.d/
systemctl restart httpd.service

Discuz! 论坛搭建

其他步骤和上述一样,只不过把WordPress换成了Discuz!
解压Discuz!
把dir_SC_UTF8/upload/ 转移到网站目录下开始安装
添加acl权限 给Apache
*

具体的一键部署脚本 也在我的博客里,自己去找!!!

以上是关于LAMP架构介绍的主要内容,如果未能解决你的问题,请参考以下文章

LAMP架构(LAMP介绍,mysql/mariaDB介绍,Mysql安装)

LAMP架构介绍以及Apache源码安装

LAMP架构介绍以及Apache源码安装

LAMP架构介绍

LAMP架构介绍

LAMP架构介绍与MySQL的安装