目录
前言
LAMP工作过程
Apache
1)Apache主要特点
如何创建论坛
第一步 关闭防火墙和安全机制
第二、安装相关的Apache服务
1)解压压缩包
2)安装依赖环境
3)配置安装路经等
4)编译并安装
5)优化配置文件路径
6)便于service管理 centos6 7 systemctl
7)检查语法
8)查看配置是否成功
第三、安装相关的MySQL服务
1)安装依赖环境
2)创建程序用户管理
3)配置安装路径等
4)编译并安装
5)创建普通用户管理mysql
6)修改配置文件
7)设置环境变量
8)初始化数据库
9)给root账号设置密码
第四、安装相关的PHP服务
1)安装依赖环境
2)解压包
3)选择安装路径等
4)编译并安装
5)复制模板文件,并进行修改
6)进行优化
7)修改Apache配置文件让Apache支持PHP
8)创建、编辑php页面文件
前四部分全部装完再进行创建论坛
1)创建一个数据库
2)解压论坛压缩包
3)上传站点更新包
4)切换论坛目录
5)更改论坛目录属主
6)搭建论坛
总结
LAMP架构是目前成熟的企业网站应用模式之一,指的是协同工作的一整台系统和相关软件,能够提供动态web站点服务及其应用开发环境。LAMP具体包括Linux操作系统,Apache网站服务器,MySQL数据库服务器,PHP(或perl,Python)网页编程语言。
① 当客户端请求的是静态资源时,web服务器会直接把静态资源返回客户端;
② 当客户端请求的是动态资源时,httpd的php模块会进行相应的动态资源运算,如果此过程还需要数据库的数据作为运算参数时,php会连接mysql取得数据然后进行运算,运算的结果转为静态资源由web服务器返回到客户端;
源于A Patchy Server,著名的开源webf服务软件,1995年时,发布Apache服务程序的1.0版本,最新名称为“Apache HTTP Server”。Apache软件基金会(ASF)负责维护。
官方站点: http://httpd.apache.org/
包括UNIX和Windows在内的现代操作系统开发和维护HTTP服务器,提供一个安全、高效和可扩展的服务器。可扩展插件式架构,能够方便扩展新的模块。
① 跨平台性:Apache 可以运行于 Linux、Windows、Mac OS 等多种操作系统环境中;
② 可扩展性:Apache 支持插件式架构,能够方便地扩展新的功能模块;
③ 安全性:Apache 通过 access control、SSL/TLS 加密等多种手段保障服务器和数据的安全; ④ 稳定性:Apache 拥有强大的稳定性和健壮性,在高压力下表现良好;
⑤ 易用性:Apache 提供了简单易用的配置文件,允许管理员以文本方式编辑;
⑥ 速度快:Apache 优化了请求和响应处理机制,能够提高 Web 服务器的性能。
systemctl stop firewalld #关闭防火墙
setenforce 0 #关闭安全机制
tar xf apr-1.6.2.tar.gz
tar xf apr-util-1.6.0.tar.gz
tar xf httpd-2.4.29.tar.bz2
mv apr-1.6.2 httpd-2.4.29/srclib/apr
mv apr-util-1.6.0 httpd-2.4.29/srclib/apr-util
yum -y install \
gcc \ #C语言的编译器
gcc-c++ \ #C++的编译器
make \ #源代码编译器(源代码转换成二进制文件)
pcre \ #pcre是一个Perl函数库,包括perl 兼容的正则表达式库
pcre-devel \ #perl的接口开发包
expat-devel \ #用于支持网站解析HTML、XML文件
perl #perl语言编译器
cd /opt/httpd-2.4.29/
./configure \
--prefix=/usr/local/httpd \ #指定 httpd 服务程序的安装路径
--enable-so \ #启用动态加载核心模块支持,使 httpd 具备进一步扩展功能的能力
--enable-rewrite \ #启用网页地址重写功能,用于网站优化、防盗链及目录迁移维护
--enable-charset-lite \ #启动字符集支持,以便支持使用各种字符集编码的页面
--enable-cgi #启用CGI(通用网关接口)脚本程序支持,便于网站的外部扩展应用访问能力
make -j 2 && make install
ln -s /usr/local/httpd/conf/httpd.conf /etc/
ln -s /usr/local/httpd/bin/* /usr/local/bin/
#优化配置文件路径,并把httpd服务的可执行程序文件放入路径环境变量的目录中便于系统识别
#便于service管理 centos6 7 systemctl
cp /usr/local/httpd/bin/apachectl /etc/init.d/httpd
vim /etc/init.d/httpd
chkconfig: 35 85 21 //35级别自动运行 第85个启动 第21个关闭
:wq
chkconfig --add httpd //将httpd加入到系统管理器
service httpd start
#可使用service或者systemctl进行管理
systemctl start httpd.service
方法二:
vim /lib/systemd/system/httpd.service
[Unit]
Description=The Apache HTTP Server #描述
After=network.target #描述服务类别
[Service]
Type=forking #后台运行方式
PIDFile=/usr/local/httpd/logs/httpd.pid #PID文件位置
ExecStart=/usr/local/bin/apachectl $OPTIONS #启动服务
ExecReload=/bin/kill -HUP $MAINPID #根据PID重载配置
vim /usr/local/httpd/conf/httpd.conf
#--52行--修改
#Listen 192.168.200.50:80
--197行--取消注释,修改
ServerName 192.168.10.80:80
--221行--默认首页存放路径
DocumentRoot "/usr/local/httpd/htdocs" 以后 有存储
--255行--默认首页文件名设置
DirectoryIndex index.html
wq
httpd -t # 也可以用apachectl -t
cat /usr/local/httpd/htdocs/index.html
service httpd restart
netstat -anpt | grep 80
yum -y install \
gcc \
gcc-c++ \
ncurses \ #字符终端下图形互动功能的动态库
ncurses-devel \ #ncurses开发包
bison \ #语法分析器
cmake #mysql需要用cmake编译安装
useradd -s /sbin/nologin mysql
tar zxvf mysql-5.7.17.tar.gz -C /opt
tar zxvf boost_1_59_0.tar.gz -C /usr/local/
mv /usr/local/boost_1_59_0 /usr/local/boost
cd /opt/mysql-5.7.17/
cmake \
-DCMAKE_INSTALL_PREFIX=/usr/local/mysql \ #指定mysql的安装路径
-DMYSQL_UNIX_ADDR=/usr/local/mysql/mysql.sock \ #指定mysql进程监听套接字文件(数据库连接文件)的存储路径
-DSYSCONFDIR=/etc \ #指定配置文件的存储路径
-DSYSTEMD_PID_DIR=/usr/local/mysql \ #指定进程文件的存储路径
-DDEFAULT_CHARSET=utf8 \ #指定默认使用的字符集编码,如 utf8
-DDEFAULT_COLLATION=utf8_general_ci \ #指定默认使用的字符集校对规则
-DWITH_EXTRA_CHARSETS=all \ #指定支持其他字符集编码
-DWITH_INNOBASE_STORAGE_ENGINE=1 \ #安装INNOBASE存储引擎
-DWITH_ARCHIVE_STORAGE_ENGINE=1 \ #安装ARCHIVE存储引擎
-DWITH_BLACKHOLE_STORAGE_ENGINE=1 \ #安装BLACKHOLE存储引擎
-DWITH_PERFSCHEMA_STORAGE_ENGINE=1 \ #安装FEDERATED存储引擎
-DMYSQL_DATADIR=/usr/local/mysql/data \ #指定数据库文件的存储路径
-DWITH_BOOST=/usr/local/boost \ #指定boost的路径,若使用mysql-boost集成包安装则-DWITH_BOOST=boost
-DWITH_SYSTEMD=1 #生成便于systemctl管理的文件
make -j3 && make install
注意:部署mysql报错基本都是内存不足造成 可以试下 echo 1 > /proc/sys/vm/drop_caches #清除缓存
如果在CMAKE的过程中有报错,当报错解决后,需要把源码目录中的CMakeCache.txt文件删除,然后再重新CMAKE,否则错误依旧。
useradd -s /sbin/nologin mysql
chown -R mysql:mysql /usr/local/mysql/
#更改管理主/组
chown mysql:mysql /etc/my.cnf
vim /etc/my.cnf #删除原配置项,再重新添加下面内容
[client] #客户端设置
port = 3306
socket=/usr/local/mysql/mysql.sock
[mysqld] #服务全局设置
user = mysql #设置管理用户
basedir=/usr/local/mysql #指定数据库的安装目录
datadir=/usr/local/mysql/data #指定数据库文件的存储路径
port = 3306 #指定端口
character-set-server=utf8 #设置服务器字符集编码格式为utf8
pid-file = /usr/local/mysql/mysqld.pid #指定pid 进程文件路径
socket=/usr/local/mysql/mysql.sock #指定数据库连接文件
bind-address = 0.0.0.0 #设置监听地址,0.0.0.0代表允许所有,如允许多个IP需空格隔开
skip-name-resolve #禁用DNS解析
max_connections=2048 #设置mysql的最大连接数
default-storage-engine=INNODB #指定默认存储引擎
max_allowed_packet=16M #设置数据库接收的数据包大小的最大值
server-id = 1 #指定服务ID号
sql_mode=NO_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_QUOTES
NO_ENGINE_SUBSTITUTION 如果需要的存储引擎被禁用或未编译,那么抛出错误。不设置此值时,用默认的存储引擎替代,并抛出一个异常
STRICT_TRANS_TABLES 在该模式下,如果一个值不能插入到一个事务表中,则中断当前的操作,对非事务表不做限制
NO_AUTO_CREATE_USER 禁正GRANT创建密码为空的用户
NO_AUTO_VALUE_ON_ZERO mysql中的自增长列可以从O开始。默认情况下自增长列是从1开始的,如果你插入值为0的数据会报错
NO_ZERO_IN_DATE 不允许日期和月份为零
NO_ZERO_DATE mysql数据库不允许插入零日期,插入零日期会抛出错误而不是警告
ERROR_FOR_DIVISION_BY_ZERO 在INSERT或UPDATE过程中,如果数据被零除,则产生错误而非警告。默认情况下数据被零除时MysQL返回NULL
PIPES_As_CONCAT 将"||"视为字符串的连接操作符而非或运算符,这和Oracle数据库是一样的,也和字符串的拼接函数Concat相类似ANSI_QUOTES
echo "PATH=$PATH:/usr/local/mysql/bin" >> /etc/profile
#设置环境变量,申明/宣告mysql命令便于系统识别
source /etc/profile
cd /usr/local/mysql/bin/
./mysqld \
--initialize-insecure \ #生成初始化密码为空
--user=mysql \ #指定管理用户
--basedir=/usr/local/mysql \ #指定数据库的安装目录
--datadir=/usr/local/mysql/data #指定数据库文件的存储路径
cp /usr/local/mysql/usr/lib/systemd/system/mysqld.service /usr/lib/systemd/system/
systemctl daemon-reload #刷新识别
systemctl start mysqld.service #开启服务
systemctl enable mysqld #开机自启动
netstat -anpt | grep 3306 #查看端口
mysqladmin -u root -p password "123456"
————》直接回车
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 /opt
tar zxvf php-7.1.24.tar.gz
cd /opt/php-7.1.24/
./configure \
--prefix=/usr/local/php7 \ #指定将 PHP 程序的安装路径
--with-apxs2=/usr/local/httpd/bin/apxs \ #指定Apache httpd服务提供的apxs 模块支持程序的文件位置
--with-mysql-sock=/usr/local/mysql/mysql.sock \ #指定mysql 数据库连接文件的存储路径
--with-config-file-path=/usr/local/php7 #设置 PHP 的配置文件 php.ini 将要存放的位置
--with-mysqli \ #添加 MySQL 扩展支持 #mysqli扩展技术不仅可以调用MySQL的存储过程、处理MySQL事务,而且还可以使访问数据库工作变得更加稳定
--with-zlib \ #支持zlib功能,提供数据压缩
--with-curl \ #开启curl扩展功能,实现HTTP的Get下载和Post请求的方法
--with-gd \ #激活gd 库的支持
--with-jpeg-dir \ #激活jpeg 的支持
--with-png-dir \ #激活png 的支持
--with-freetype-dir \
--with-openssl \
--enable-mbstring \ #启用多字节字符串功能,以便支持中文等代码
--enable-xml \ #开启扩展性标记语言模块
--enable-session \ #会话
--enable-ftp \ #文本传输协议
--enable-pdo \ #函数库
--enable-tokenizer \ #令牌解释器
--enable-zip #ZIP压缩格式
make && make install
cp /opt/php-7.1.24/php.ini-development /usr/local/php7/php.ini
vim /usr/local/php7/php.ini
--1170行--修改
mysqli.default_socket = /usr/local/mysql/mysql.sock
--939行--取消注释,修改
date.timezone = Asia/Shanghai
ln -s /usr/local/php7/bin/* /usr/local/bin/
vim /etc/httpd.conf
#添加index.php
255
256 DirectoryIndex index.html index.php
257
#在392行下方插入一下内容,让Apache可以支持.php的网页文件
AddType application/x-httpd-php .php
AddType application/x-httpd-php-source .phps
##检查156行默认支持php7的模块是否存在
LoadModule php7_module modules/libphp7.so
wq
rm -rf /usr/local/httpd/htdocs/index.html
vim /usr/local/httpd/htdocs/index.php
wq
systemctl restart httpd.service
mysql -u root -p
mysql> CREATE DATABASE bbs;
#把bbs数据库里面所有表的权限授予给bbsuser,并设置密码
mysql> GRANT all ON bbs.* TO 'bbsuser'@'%' IDENTIFIED BY 'admin123';
#刷新数据库
mysql>flush privileges;
mysql>exit #退出mysql
unzip Discuz_X3.4_SC_UTF8.zip -d /opt/dis
cd /opt/dis
cp -r upload/ /usr/local/httpd/htdocs/bbs
cd /usr/local/httpd/htdocs/bbs
chown -R daemon ./config
chown -R daemon ./data
chown -R daemon ./uc_client
chown -R daemon ./uc_server/data
第一步,在百度打开你设置的论坛地址,设置
第二步 ,点击下一步
第三步选择全新安装
第四步创建数据库设置信息并设置用户账户和密码
出现这个页面就是论坛安装成功了
搭建LAPM论坛,前面每一个步骤都不能出现错误,出现错误,要学会如何看报错,从报错中查找错误,进行修改。搭建LAPM论坛,依次搭建Apache、MySQL、PHP、建立论坛Discuz。