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
首先我们需要知道:
程序=指令+数据
指令:代码文件
数据:数据存储系统、文件
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
- 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();?>
格式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
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;
官网: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
其他步骤和上述一样,只不过把WordPress换成了Discuz!
解压Discuz!
把dir_SC_UTF8/upload/ 转移到网站目录下开始安装
添加acl权限 给Apache*
具体的一键部署脚本 也在我的博客里,自己去找!!!
以上是关于LAMP架构介绍的主要内容,如果未能解决你的问题,请参考以下文章