HOME
BLOG
TIME
FRIENDS
SAY TO ME
MOOD
TRAVELING
LAMP介绍与服务搭建
2020/07/26 1.9k 8 分钟 点击

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架构说明示意图

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(); 
?> 

使用mysql扩展连接数据库的测试代码

<?php
$conn = mysql_connect'‘mysqlserver','username','password');
if ($conn)

echo "OK"
else

echo "Failure"; 
    #echo mysql_error(); 
mysql_close(); 
?>

常见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

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

Web服务器