LAMP&&DISCUZ论坛

目录

1.1 LAMP

1.2 LAMP架构搭建

 2. 关闭防火墙,将安装Apache所需软件包传到/opt目录下

APache的源码编译安装涉及到的软件包:

  2.2 安装环境依赖包

 2.3 配置软件模块

 2.4 添加httpd系统服务

2.5  修改httpd 服务配置文件 

 3.编译安装mysqld 服务

3.1 创建mysql用户以及修改其配置文件

3.2 对mysql进行安装目录设置与路径变量修改 

 4.编译安装PHP 解析环境 

4.2 配置软件模块 

4.3 复制模版文件作为PHP 的主配置文件,并进行修改 

4.4 优化把PHP 的可执行程序

4.5 修改httpd 服务的配置文件 

4.6 验证PHP 测试页 

5.安装论坛


1.1 LAMP

LAMP架构是目前成熟的企业网站应用模式之一,指的是协同工作的一整套系统和相关软件,能够提供动态Web站点服务及其应用开发环境。LAMP是一个缩写词,具体包括Linux操作系统、Apache网站服务器、MySQL数据库服务器、PHP(或Perl、Python)网页编程语言。

Linux作为架构中的平台与运行环境 ,为该架构与其他组件提供稳定运行的环境。同时Linux自身也是开源免费,稳定性兼容性很强的操作性系统

Apache: 作为LAMP架构的前端,是一款功能强大,稳定性好的Web服务器程序,该服务器直接面向用户提供网站访问,发送网页,图片等文件内容。

MySQL:作为LAMP架构的后端,是一款流行的开源关系数据库系统。在企业网站、业务系统等应用中,各种账户信息、产品信息,客户资料、业务数据等都可以存储到MySQL数据库,其他程序可以通过SQL语句来查询,更改这些信息。

PHP/Perl/Python:作为三种开发动态网页的编程语言,负责解释动态网页文件,负责沟通Web服务器和数据库系统以协同工作,并提供Web应用程序的开发和运行环境。其中PHP是一种被广泛应用的开放源代码的多用途脚本语言,它可以嵌入到HTML中,尤其适合于Web应用开发。

1.2 LAMP架构搭建

首先安装好Linux系统,为架构提供平台。各组件的安装顺序依次为Linux、Apache、MySQL、PHP。其中Apache和MySQL的安装并没有严格的顺序,PHP环境的安装一般放到最后安装,负责沟通 Web 服务器和数据库系统以协同工作

 2. 关闭防火墙,将安装Apache所需软件包传到/opt目录下

  1. systemctl stop firewalld

  2. systemctl disable firewalld

  3. setenforce 0

APache的源码编译安装涉及到的软件包:

知识拓展:apr组件包用于支持Apache上层应用跨平台,提供底层接口库,能有效的提高并发连接数、降低进程和减少访问堵塞。 

  1.  httpd-2.4.29.tar.gz
  2. apr-1.6.2.tar.gz
  3. apr-util-1.6.0.tar.gz

 第三方软件,需要先切换到存放第三方应用的目录下 cd /opt

  2.2 安装环境依赖包

  • yum -y install \
  • gcc \                            #C语言的编译器
  • gcc-c++ \                        #C++的编译器
  • make \                            #源代码编译器(源代码转换成二进制文件)
  • pcre \                            #pcre是一个Perl函数库,包括perl 兼容的正则表达式库
  • pcre-devel \                    #perl的接口开发包
  • expat-devel \                   #用于支持网站解析HTML、XML文件
  • perl                            #perl语言编译器

 2.3 配置软件模块

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          ## 调用2个cpu内核进行编译并安装

#优化配置文件路径,并把httpd服务的可执行程序文件放入路径环境变量的目录中便于系统识别
ln -s /usr/local/httpd/conf/httpd.conf /etc/
ln -s /usr/local/httpd/bin/* /usr/local/bin/

 2.4 添加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个关闭
# description: Apache is a World Wide Web server
---》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重载配置

以上两种方法任选其一都能将httpd添加到系统服务中

2.5  修改httpd 服务配置文件 

  • vim /usr/local/httpd/conf/httpd.conf           
  • #--52行--修改
  • #Listen 80
  • --197行--取消注释,修改
  • ServerName 192.168.181.101: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                                  ##重启httpd服务
  • netstat -anpt | grep 80                                 ##检查端口是否开启

 3.编译安装mysqld 服务

   安装mysql服务内存必须4G以上    

yum -y install \
gcc \
gcc-c++ \
ncurses \                #字符终端下图形互动功能的动态库
ncurses-devel \            #ncurses开发包
bison \                    #语法分析器
cmake                    #mysql需要用cmake编译安装

yum -y install gcc gcc-c++ ncurses ncurses-devel bison 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 -j 3 && make install
  • 存储引擎选项:
    MYISAM,MERGE,MEMORY和cSv引擎是默认编译到服务器中,并不需要明确地安装。静态编译一个存储引擎到服务器,使用-DWITH engine STORAGE ENGINE= 1
    可用的存储引擎值有:ARCHIVE,BLACKHOLE,EXAMPLE,FBDERATBDB(InnoDB),PARTTTON(partitioning support),和PERFSCHEMA(Performance schema),IMNOBAS
  • 注意:部署mysql报错基本都是内存不足造成 
    可以试下  echo 1 > /proc/sys/vm/drop_caches   #清除缓存

  •  如果在CMAKE的过程中有报错,当报错解决后,需要把源码目录中的CMakeCache.txt文件删除,然后再重新CMAKE,否则错误依旧

3.1 创建mysql用户以及修改其配置文件

  • #创建普通用户管理mysql
  • 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

  • [mysql]                               #服务端设置     
    port = 3306
    default-character-set=utf8
    socket=/usr/local/mysql/mysql.sock
    auto-rehash                             #开启自动补全功能

  • [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

sql_mode常用值如下:

  • 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
  • 启用ANSI_QUOTES后,不能用双引号来引用字符串,因为它被解释为识别符

3.2 对mysql进行安装目录设置与路径变量修改 

  • #设置环境变量,申明/宣告mysql命令便于系统识别
  • echo "PATH=$PATH:/usr/local/mysql/bin" >> /etc/profile
  • source /etc/profile
  • #初始化数据库
  • cd /usr/local/mysql/bin/
  • ./mysqld \
  • --initialize-insecure \                #生成初始化密码为空
  • --user=mysql \                      #指定管理用户
  • --basedir=/usr/local/mysql \        #指定数据库的安装目录
  • --datadir=/usr/local/mysql/data        #指定数据库文件的存储路径
  • cd /usr/local/mysql/bin/
  • #####报错1:可能是初始化数据库的命令有参数写错了,导致运行了一半,当发现错误,改正和重新执行的时候,就会报这个错误,意思是

    mysql中的data目录已经有数据了,不能再直接继续进行初始化

    所以解决办法就是删除这个存放数据的/data/mysql/文件夹里面的内容

  • 可以通过vim /etc/mycnf进入配置文件后查看datadir行的目录

  • 之后再次执行初始化命令,成功

  • systemctl daemon-reload         #刷新识别     
  • systemctl start mysqld.service  #开启服务
  • systemctl enable mysqld         #开机自启动
  • netstat -anpt | grep 3306       #查看端口
  • #给root账号设置密码
  • mysqladmin -u root -p password "123456" 
  • ————》直接回车

 4.编译安装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
  • 安装GD库和GD库关联程序,用来处理和生成图片

4.2 配置软件模块 

  • 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 -j 3 & make install

4.3 复制模版文件作为PHP 的主配置文件,并进行修改 

  • #复制模板文件,并进行修改
  • 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

4.4 优化把PHP 的可执行程序

——把PHP 的可执行程序文件放入路径环境变量的目录中便于系统识别

 ln -s /usr/local/php7/bin/* /usr/local/bin/

4.5 修改httpd 服务的配置文件 

—— 使apache支持PHP

  •  vim /etc/httpd.conf 
  • #添加index.php
  • 255 <IfModule dir_module>
  • 256     DirectoryIndex index.html index.php
  • 257 </IfModule>
  • #在392行下方插入一下内容,让Apache可以支持.php的网页文件
  • AddType application/x-httpd-php .php
  • AddType application/x-httpd-php-source .phps
  • ##检查156行默认支持php7的模块是否存在
  • LoadModule php7_module   modules/libphp7.so

4.6 验证PHP 测试页 

  • rm -rf /usr/local/httpd/htdocs/index.html
  • vim /usr/local/httpd/htdocs/index.php
  • <?php
  • phpinfo();
  • ?>
  • systemctl restart httpd.service
  • 在网页测试“http://192.168.10.80/index.php”

5.安装论坛

  • 1.创建一个数据库
  • mysql -u root -p 
  • mysql> CREATE DATABASE bbs;
  •   
  • #把bbs数据库里面所有表的权限授予给bbsuser,并设置密码
  • mysql> GRANT all ON bbs.* TO 'bbsuser'@'%' IDENTIFIED BY 'admin123';
  • #刷新数据库
  • mysql>flush privileges; 
  • #解压论坛压缩包
  • unzip Discuz_X3.4_SC_UTF8.zip -d /opt/dis
  • cd /opt/dis/dir_SC_UTF8
  • #上传站点更新包
  • 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
  • 数据库服务器: localhost   #本地架设就用localhost,如何不是在在本机上就要填写IP地址和端口号
  • 数据库名字: bbs
  • 数据库用户名: bbsuser
  • 数据库密码: admin123
  • 管理员账号: admin
  • 管理员密码: admin123
  • 访问地址:http://192.168.181.101/bbs/install/

猜你喜欢

转载自blog.csdn.net/Sp_Tizzy/article/details/131273134