二维码制作网站,站长工具ip地址查询域名,wordpress标题截断,wordpress 离线发布LAMP架构详解构建LAMP平台之Discuz论坛 1、LAPM架构简介1.1动态资源与语言1.2LAPM架构得组成1.3LAPM架构说明1.4CGI和astcgi1.4.1CGI1.4.2fastcgi1.4.3CGI和fastcgi比较 2、搭建LAMP平台2.1编译安装apache httpd2.2编译安装mysql2.3编译安装php2.4安装论坛 1、LAPM架构简介
1.… LAMP架构详解构建LAMP平台之Discuz论坛 1、LAPM架构简介1.1动态资源与语言1.2LAPM架构得组成1.3LAPM架构说明1.4CGI和astcgi1.4.1CGI1.4.2fastcgi1.4.3CGI和fastcgi比较 2、搭建LAMP平台2.1编译安装apache httpd2.2编译安装mysql2.3编译安装php2.4安装论坛 1、LAPM架构简介
1.1动态资源与语言 WEB资源类型 静态资源原始形式与响应内容一致在客户端浏览器执行动态资源原始形式通常为程序文件需要在服务器端执行之后将执行结果返回给客户端 注意静态和动态的区别不在于网页是否能动态变化而在于服务端的页面文件和客户端得到页面文件是否一致
范例静态资源
vim test.html
#客户端主机现在的时间:
script typetext/javascript
document.write(new Date());
/script1.2LAPM架构得组成 LlinuxAapache (httpd)Mmysql, mariadbPphp, perl, python
1.3LAPM架构说明 工作过程 1、当客户端请求的是静态资源时web服务器会直接把静态资源返回给客户端 2、当客户端请求的是动态资源时http的php模块会进行相应的动态资源运算如果此过程还需要数据的数据作为运算参数时php会连接mysql取得数据然后进行运算运算结果转为静态资源由web服务器返回到客户端。 apache主要实现如下功能
第一处理http的请求、构建响应报文等自身服务第二配置让Apache支持PHP程序的响应通过PHP模块或FPM第三配置Apache具体处理php程序的方法如通过反向代理将php程序交给fcgi处理。
mysql 主要实现如下功能
第一提供PHP程序对数据的存储第二提供PHP程序对数据的读取(通常情况下从性能的角度考虑尽量实现数据库的读写分离)。
php主要实现如下功能
第一提供apache的访问接口即CGI或Fast CGI(FPM);第二提供PHP程序的解释器第三提供mysql数据库的连接函数的基本环境。
1.4CGI和astcgi
1.4.1CGI CGI 可以让一个客户端从网页浏览器通过http服务器向执行在网络服务器上的程序传输数据CGI描述了客户端和服务器程序之间传输的一种标准 请求流程 Client – (http协议) -- httpd – (cgi协议) -- application server (program file) – (mysql协议) -- mysql
1.4.2fastcgi fastcgi的方式是web服务器收到一个请求时不会重新fork一个进程因为这个进程在web服务器启动时就开启了而且不会退出web服务器直接把内容传递给这个进程进程间通信但fastcgi使用了别的方式tcp方式通信这个进程收到请求后进行处理把结果返回给web服务器最后自己接着等待下一个请求的到来而不是退出 请求流程 Client – (http协议) -- httpd – (fastcgi协议) -- fastcgi服务器 – (mysql协议) -- mysql
1.4.3CGI和fastcgi比较
CGI: 兼职, 一次性的过河拆桥式的服务 FASTCGI: 专职,全周期的持续式的服务
2、搭建LAMP平台
2.1编译安装apache httpd
关闭防火墙
systemctl disable --now firewalld #开机自动关闭防火墙
setenforce 0安装环境依赖包
yum -y install gcc gcc-c make pcre-devel expat-devel perl pcre //安装依赖环境包拷贝软件包
[rootlocalhost /]# cd data
[rootlocalhost data]#
[rootlocalhost data]#
[rootlocalhost data]#
[rootlocalhost data]# rz -E
rz waiting to receive.
[rootlocalhost data]# ls
apr-1.6.2.tar.gz apr-util-1.6.0.tar.gz httpd-2.4.29.tar.bz2
[rootlocalhost data]# 解压软件包
[rootlocalhost data]# tar xf apr-1.6.2.tar.gz
[rootlocalhost data]# tar xf apr-util-1.6.0.tar.gz
[rootlocalhost data]# tar xf httpd-2.4.29.tar.bz2
[rootlocalhost data]#
[rootlocalhost data]# ls
apr-1.6.2 apr-util-1.6.0 httpd-2.4.29
apr-1.6.2.tar.gz apr-util-1.6.0.tar.gz httpd-2.4.29.tar.bz2
[rootlocalhost data]# 移动apr包 apr-util包到安装目录中并切换到 httpd-2.4.29目录中
[rootlocalhost data]# mv apr-1.6.2 httpd-2.4.29/srclib/apr
[rootlocalhost data]#
[rootlocalhost data]# mv apr-util-1.6.0 httpd-2.4.29/srclib/apr-util
[rootlocalhost data]#
[rootlocalhost data]# ls
apr-1.6.2.tar.gz apr-util-1.6.0.tar.gz httpd-2.4.29 httpd-2.4.29.tar.bz2
[rootlocalhost data]#
[rootlocalhost data]#
[rootlocalhost data]#
[rootlocalhost data]# cd httpd-2.4.29
[rootlocalhost httpd-2.4.29]# 编译安装
./configure --prefix/usr/local/httpd --enable-so --enable-rewrite --enable-charset-lite --enable-cgimake -j2make installcp /usr/local/httpd/bin/apachectl /etc/init.d/httpd
//将文件拷入/etc/init.d/httpd
ln -s /usr/local/httpd/conf/httpd.conf /etc/
//建立配置文件软连接放入etc目录下
ln -s /usr/local/httpd/bin/* /usr/local/bin/
//将启动文件放入/usr/local/bin/目录下可以直接使用添加httpd系统服务
vim /etc/init.d/httpd //进入配置文件
在开头行加入
# chkconfig: 35 85 21 //35级别自动运行 第85个启动 第21个关闭chkconfig --add httpd //将httpd加入service管理器vim /usr/local/httpd/conf/httpd.conf //#修改主机地址service httpd start //启动httpd服务在浏览器输入ip地址发现http启动成功
2.2编译安装mysql
解压安装包
[rootlocalhost httpd-2.4.29]# cd /data
[rootlocalhost data]#
[rootlocalhost data]#
[rootlocalhost data]# ls
apr-1.6.2.tar.gz apr-util-1.6.0.tar.gz httpd-2.4.29 httpd-2.4.29.tar.bz2
[rootlocalhost data]#
[rootlocalhost data]#
[rootlocalhost data]# rz -E
rz waiting to receive.
[rootlocalhost data]# ls
apr-1.6.2.tar.gz httpd-2.4.29 mysql-boost-5.7.20.tar.gz
apr-util-1.6.0.tar.gz httpd-2.4.29.tar.bz2
[rootlocalhost data]#
[rootlocalhost data]# tar xf mysql-boost-5.7.20.tar.gz
[rootlocalhost data]# ls
apr-1.6.2.tar.gz httpd-2.4.29 mysql-5.7.20
apr-util-1.6.0.tar.gz httpd-2.4.29.tar.bz2 mysql-boost-5.7.20.tar.gz
[rootlocalhost data]#
[rootlocalhost data]# 安装依赖包
yum install -y ncurses-devel autoconf cmake[rootlocalhost data]# cd mysql-5.7.20/
[rootlocalhost mysql-5.7.20]#
[rootlocalhost mysql-5.7.20]# ls
boost dbug libmysql rapid testclients
BUILD Docs libmysqld README unittest
client Doxyfile-perfschema libservices regex VERSION
cmake extra man scripts vio
CMakeLists.txt include mysql-test sql win
cmd-line-utils INSTALL mysys sql-common zlib
config.h.cmake libbinlogevents mysys_ssl storage
configure.cmake libbinlogstandalone packaging strings
COPYING libevent plugin support-files
[rootlocalhost mysql-5.7.20]# cmake \
-DCMAKE_INSTALL_PREFIX/usr/local/mysql \
-DMYSQL_UNIX_ADDR/usr/local/mysql/mysql.sock \
-DSYSCONFDIR/etc \
-DSYSTEMD_PID_DIR/usr/local/mysql \
-DDEFAULT_CHARSETutf8 \
-DDEFAULT_COLLATIONutf8_general_ci \
-DWITH_INNOBASE_STORAGE_ENGINE1 \
-DWITH_ARCHIVE_STORAGE_ENGINE1 \
-DWITH_BLACKHOLE_STORAGE_ENGINE1 \
-DWITH_PERFSCHEMA_STORAGE_ENGINE1 \
-DMYSQL_DATADIR/usr/local/mysql/data \
-DWITH_BOOSTboost \
-DWITH_SYSTEMD1
//配置编译选项make -j2 make install[rootlocalhost mysql-5.7.20]# useradd -s /sbin/nologin mysql
[rootlocalhost mysql-5.7.20]#
[rootlocalhost mysql-5.7.20]#
[rootlocalhost mysql-5.7.20]# chown -R mysql:mysql /usr/local/mysql/vim /etc/my.cnf[client]
port 3306
default-character-setutf8
socket /usr/local/mysql/mysql.sock[mysql]
port 3306
default-character-setutf8
socket /usr/local/mysql/mysql.sock[mysqld]
user mysql
basedir /usr/local/mysql
datadir /usr/local/mysql/data
port 3306
character_set_serverutf8
pid-file /usr/local/mysql/mysqld.pid
socket /usr/local/mysql/mysql.sock
server-id 1sql_modeNO_ENGINE_SUBSTITUTION,STRICT_TRANS_TABLES,NO_AUTO_CREATE_USER,NO_AUTO_VALUE_ON_ZERO,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,PIPES_AS_CONCAT,ANSI_QUOTESchown mysql:mysql /etc/my.cnf[rootlocalhost mysql-5.7.20]# echo PATH/usr/local/mysql/bin:/usr/local/mysql/lib:$PATH /etc/profile //加入PATH中使其可以补全
[rootlocalhost mysql-5.7.20]# echo export PATH /etc/profile //声明这个变量为全局变量[rootlocalhost mysql-5.7.20]# cd /usr/local/mysql/
[rootlocalhost mysql]#
[rootlocalhost mysql]#
[rootlocalhost mysql]# bin/mysqld \--initialize-insecure \--usermysql \--basedir/usr/local/mysql \--datadir/usr/local/mysql/data[rootlocalhost mysql]# cp usr/lib/systemd/system/mysqld.service /usr/lib/systemd/system/
[rootlocalhost mysql]#
[rootlocalhost mysql]# systemctl daemon-reload
[rootlocalhost mysql]#
[rootlocalhost mysql]#
[rootlocalhost mysql]# systemctl start mysqld.service
[rootlocalhost mysql]#
[rootlocalhost mysql]# netstat -anpt | grep 3306
tcp6 0 0 :::3306 :::* LISTEN 77743/mysqld mysqladmin -u root -p password abc123 //刚开始没密码是空的直接回车然后输入密码abc123,在此确认abc123,这是在root账户下运行的quit; //退出2.3编译安装php
安装依赖环境
yum -y install \
gd \
libjpeg libjpeg-devel \
libpng libpng-devel \
freetype freetype-devel \
libxml2 libxml2-devel \
zlib zlib-devel \
curl curl-devel \
openssl openssl-devel配置软件模块
cd /data
tar xf php-7.1.10.tar.bz2
cd /opt/php-7.1.10/./configure \
--prefix/usr/local/php7 \
--with-apxs2/usr/local/httpd/bin/apxs \
--with-mysql-sock/usr/local/mysql/mysql.sock \
--with-config-file-path/usr/local/php7 \
--with-mysqli \
--with-zlib \
--with-curl \
--with-gd \
--with-jpeg-dir \
--with-png-dir \
--with-freetype-dir \
--with-openssl \
--enable-mbstring \
--enable-xml \
--enable-session \
--enable-ftp \
--enable-pdo \
--enable-tokenizer \
--enable-zipmake -j2 make install //编译与安装cp /data/php-7.1.10/php.ini-development /usr/local/php7/php.ini
//复制模版文件作为PHP 的主配置文件并进行修改vim /usr/local/php7/php.ini
mysqli.default_socket /usr/local/mysql/mysql.sock --1170行--修改 1170 G,大写的G,直接跳转
date.timezone Asia/Shanghai --939行ln -s /usr/local/php7/bin/* /usr/local/bin/
把PHP 的可执行程序文件放入路径环境变量的目录中便于系统识别
php -m //查看PHP 加载了哪些模块vim /etc/httpd.conf //修改httpd 服务的配置文件让apache支持PHPAddType application/x-httpd-php .php --393行--插入以下内容(插在下面原行不删)
AddType application/x-httpd-php-source .phps ##这里的点前面空格一定要加否则报错DirectoryIndex index.html index.php --255行--修改首页文件名设置验证PHP 测试页
vim /usr/local/httpd/htdocs/index.php //进入配置文件
添加
?php
phpinfo();
?systemctl restart httpd2.4安装论坛
[rootlocalhost data]# mysql -u root -p
Enter password: mysql CREATE DATABASE bbs; //创建一个数据库//mysql GRANT all ON bbs.* TO bbsuser% IDENTIFIED BY admin123; //把bbs数据库里面所有表的权限授予给bbsuser,并设置密码//show databases;//查看是否创建成功select user,host from mysql.user;unzip /opt/Discuz_X3.4_SC_UTF8.zip
cp -r upload/ /usr/local/httpd/htdocs/bbscd /usr/local/httpd/htdocs/bbschown -R daemon ./config
chown -R daemon ./data
chown -R daemon ./uc_client
chown -R daemon ./uc_server/data在浏览器输入192.168.190.254/bbs