源码编译安装LAMP平台(使用Linux ,Apache,MySQL与PHP搭建论坛)

本文详述了如何在Linux系统上手动编译安装LAMP(Linux、Apache、MySQL、PHP)架构,包括各组件的作用、安装顺序和步骤,以及在安装过程中解决依赖、配置服务和权限问题。最后,还展示了安装并配置论坛的过程。
摘要由CSDN通过智能技术生成

目录

LAMP概述

各组件作用

编译安装的优点

各组件安装顺序

实验过程:

安装MYSQL

安装PHP

安装论坛

LAMP概述


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

各组件作用


L:(平台)Linux:作为LAMP架构的基础,提供用于支撑Web站点的操作系统,能够与其他三个组件提供更好的稳定性,兼容性(AMP组件也支持Windows、UNIX等平台) 。

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

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

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

编译安装的优点


1、具有较大的自由度,功能可定制
2、可及时获得最新的软件版本
3、普遍适用于大多数Linux版本,便于一直使用
 

各组件安装顺序


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

实验过程:

编译安装阿帕奇  httpd  并配置服务

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 && make install -j8    
#编译make,注:-j8是指我用8颗内核运行这个安装程序,不能比自己电脑的内核高

配置httpd 

[root@localhost bin]# cp /usr/local/httpd/bin/apachectl /etc/init.d/httpd
#拷贝模板 

 chkconfig --add httpd //将httpd加入到SERVICE管理器

#做两条软链接,方便使用
[root@localhost bin]# ln -s /usr/local/httpd/conf/httpd.conf /etc/
[root@localhost bin]# ln -s /usr/local/httpd/bin/* /usr/local/bin/

#注意关闭防火墙 安全保护
[root@localhost bin]# systemctl stop firewalld.service
[root@localhost bin]# setenforce 0

#检查语法
httpd -t  或 apachectl -t

安装MYSQL


yum -y install \
gcc \					#编译语言,翻译官
gcc-c++ \
ncurses \				#字符终端下图形互动功能的动态库
ncurses-devel \			#ncurses开发包
bison \					#语法分析器
cmake \					#mysql需要用cmake编译安装
autoconf				#是一个用于生成可以自动配置软件源代码包以适应多种unix类系统的shell脚本工具。




tar xzvf mysql-5.6.26.tar.gz -C /opt    #解压到opt目录


cd /opt/mysql-5.6.26/               到解压包下 ls看看cmake 有没有



cmake  \
-DCMAKE_INSTALL_PREFIX=/usr/local/mysql \	
-DDEFAULT_CHARSET=utf8 \						#指定默认使用的字符集编码,如 utf-8
-DDEFAULT_COLLATION=utf8_general_ci \			#指定默认使用的字符集校对规则
-DEXTRA_CHARSETS=all \							#指定支持其他字符集编码
-DSYSCONFIDIR=/etc \							#/etc/mysql --->系统中有一个默认的配置/etc/my.cnf
-DMYSQL_DATADIR=/home/mysql/ \					#数据文件
-DMYSQL_UNIX_ADDR=/home/mysql/mysql.sock		#指定连接数据库的通讯文件(启动数据库的时候会生成)


   make && make install -j8     #开始安装
[root@localhost mysql-5.6.26]# cp support-files/my-default.cnf /etc/my.cnf
cp:是否覆盖"/etc/my.cnf"? y  
#将这个文件下的my-default.cnf复制到/etc改名为/my.cnf

[root@localhost mysql-5.6.26]# cp support-files/mysql.server /etc/init.d/mysqld


[root@localhost mysql-5.6.26]# chmod 755 /etc/init.d/mysqld
#更改它的执行权限


[root@localhost mysql-5.6.26]# chkconfig --add /etc/init.d/mysqld
#再添加命令

[root@localhost mysql-5.6.26]# chkconfig  mysqld --level 35 on
#设置运行级别3和5的时候开机自启


[root@localhost mysql-5.6.26]# echo "PATH=$PATH:/usr/local/mysql/bin" >> /etc/profile
#将/usr/local/mysql/bin路径下的命令全部放进/etc/profile里

[root@localhost mysql-5.6.26]# source /etc/profile
#刷新
[root@localhost mysql-5.6.26]# echo $PATH    #查看系统环境
/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/root/bin:/usr/local/mysql/bin


[root@localhost mysql-5.6.26]# useradd -s /sbin/nologin mysql
#新建一个mysql用户

[root@localhost mysql-5.6.26]# chown -R mysql:mysql /usr/local/mysql/
#更改一下这个用户的属组属主 

[root@localhost mysql-5.6.26]# ll -d /usr/local/mysql/
drwxr-xr-x. 13 mysql mysql 213 11月  3 13:45 /usr/local/mysql/

[root@localhost mysql-5.6.26]# /usr/local/mysql/scripts/mysql_install_db \
--user=mysql \
--ldata=/var/lib/mysql \
--basedir=/usr/local/mysql \
--datadir=/home/mysql

#初始化配置


ln -s /var/lib/mysql/mysql.sock  /home/mysql/mysql.sock #做软连接

 配置MySQL

[root@localhost mysql-5.6.26]# vim /etc/init.d/mysqld 
 46	basedir=/usr/local/mysql
 47 datadir=/home/mysql

 

[root@localhost mysql-5.6.26]#  ss -ntap |grep "3306"
LISTEN     0      80          :::3306                    :::*                   users:(("mysqld",pid=93293,fd=10))
#验证MySQL是否启动

 设置MySQL账户

安装PHP

php 处理动态请求,在此处他是一个后台的代码程序,不是一个服务(所以不需要启动脚本)



安装GD库和GD库关联程序,用来处理和生成图片
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 #到opt目录下
tar xjvf php-5.6.11.tar.bz2  #解压安装包
cd php-5.6.11 

./configure \
--prefix=/usr/local/php5 \
--with-gd \											#激活gd 库的支持
--with-zlib \										#支持zlib功能,提供数据压缩功能的函式库
--with-apxs2=/usr/local/httpd/bin/apxs \			#指定httpd服务提供的apxs模块支持程序的文件位置
#用于指定Apache可以加载/识别对应的功能模块,此处可以让php服务模块直接提供给apache加载使用
--with-mysql=/usr/local/mysql \						#关联数据库					
--with-config-file-path=/usr/local/php5 \			#指定配置文件
--enable-mbstring 									#启用多字节字符串功能,以便支持中文等代码

为了可以httpd mysql 对接,为了可以更好的处理动态请求

./configure \
--prefix=/usr/local/php5 \
--with-gd \
--with-zlib \
--with-apxs2=/usr/local/httpd/bin/apxs \
--with-mysql=/usr/local/mysql \
--with-config-file-path=/usr/local/php5 \
--enable-mbstring 

make && make install -j4    #安装

#优化把PHP 的可执行程序文件放入路径环境变量的目录中便于系统识别
ln -s /usr/local/php5/bin/* /usr/local/bin/

#修改Apache配置文件让Apache支持PHP
vi /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行默认支持php5的模块是否存在
---->wq

#创建、编辑php页面文件

vim /usr/local/httpd/htdocs/index.php
<?php
phpinfo();
?>

<?php
phpinfo();
?>
  

#重启服务
service httpd stop 
service httpd start
restart --> stop start 

在浏览器上输入 http://192.168.159.103/index.php 测试

成功的话会出现下图

安装论坛

#建立连接
[root@localhost php5]# mysql -u root -p
Enter password: 	#输入密码
Welcome to the MySQL monitor.  Commands end with ; or \g.
Your MySQL connection id is 5
Server version: 5.6.26 Source distribution

Copyright (c) 2000, 2015, Oracle and/or its affiliates. All rights reserved.

Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners.

Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.

mysql> CREATE DATABASE bbs;		
Query OK, 1 row affected (0.00 sec)

#把bbs数据库里面所有表的权限授予给bbsuser,并设置密码
mysql> GRANT all ON bbs.* TO 'bbsuser'@'%' IDENTIFIED BY 'admin123';
Query OK, 0 rows affected (0.01 sec)

#刷新一下数据库
mysql> flush privileges; 

#可以用show看一下创建的数据库
mysql> show databases;
+--------------------+
| Database           |
+--------------------+
| information_schema |
| bbs                |	#比上面多了一个bbs
| mysql              |
| performance_schema |
| test               |
+--------------------+
5 rows in set (0.00 sec)
mysql> exit
Bye

[root@localhost php5]# cd /opt/
[root@localhost opt]# 
[root@localhost opt]# ls
apr-1.6.2.tar.gz         httpd-2.4.29          mysql-5.6.26.tar.gz
apr-util-1.6.0.tar.gz    httpd-2.4.29.tar.bz2  php-5.6.11
Discuz_X2.5_SC_UTF8.zip  mysql-5.6.26          php-5.6.11.tar.bz2
[root@localhost opt]# unzip /opt/Discuz_X2.5_SC_UTF8.zip -d /opt/dis
[root@localhost opt]# cd dis/
[root@localhost dis]# ls
readme  upload  utility
[root@localhost dis]# cp -r upload/ /usr/local/httpd/htdocs/bbs

#在网页上输入 http://192.168.159.103/bbs/install/ 
#得到下图

#图上有红叉是权限问题,进去看看
[root@localhost dis]# cd /usr/local/httpd/htdocs/bbs
[root@localhost bbs]# ll
总用量 76
-rw-r--r--.  1 root root 2603 11月  3 15:18 admin.php
drwxr-xr-x. 11 root root  163 11月  3 15:18 api
-rw-r--r--.  1 root root  727 11月  3 15:18 api.php
drwxr-xr-x.  2 root root   23 11月  3 15:18 archiver
drwxr-xr-x.  2 root root   90 11月  3 15:18 config
-rw-r--r--.  1 root root  922 11月  3 15:18 connect.php
-rw-r--r--.  1 root root  253 11月  3 15:18 cp.php
-rw-r--r--.  1 root root  106 11月  3 15:18 crossdomain.xml
drwxr-xr-x. 13 root root  216 11月  3 15:18 data
-rw-r--r--.  1 root root 5558 11月  3 15:18 favicon.ico
-rw-r--r--.  1 root root 2110 11月  3 15:18 forum.php
-rw-r--r--.  1 root root  823 11月  3 15:18 group.php
-rw-r--r--.  1 root root 1223 11月  3 15:18 home.php
-rw-r--r--.  1 root root 5448 11月  3 15:18 index.php
drwxr-xr-x.  5 root root   64 11月  3 15:18 install
-rw-r--r--.  1 root root 1040 11月  3 15:18 member.php
-rw-r--r--.  1 root root 1381 11月  3 15:18 misc.php
-rw-r--r--.  1 root root 1757 11月  3 15:18 plugin.php
-rw-r--r--.  1 root root  985 11月  3 15:18 portal.php
-rw-r--r--.  1 root root  582 11月  3 15:18 robots.txt
-rw-r--r--.  1 root root 1158 11月  3 15:18 search.php
drwxr-xr-x. 10 root root  168 11月  3 15:18 source
drwxr-xr-x.  6 root root   72 11月  3 15:18 static
drwxr-xr-x.  3 root root   38 11月  3 15:18 template
drwxr-xr-x.  6 root root   92 11月  3 15:18 uc_client
drwxr-xr-x. 13 root root  241 11月  3 15:18 uc_server
-rw-r--r--.  1 root root 1691 11月  3 15:18 userapp.php


#加上权限
[root@localhost bbs]# chown -R daemon ./config/
[root@localhost bbs]# chown -R daemon ./data/
[root@localhost bbs]# chown -R daemon ./uc_client/
[root@localhost bbs]# chown -R daemon ./uc_server/data/
#再次查看
[root@localhost bbs]# ll
总用量 76
-rw-r--r--.  1 root   root 2603 11月  3 15:18 admin.php
drwxr-xr-x. 11 root   root  163 11月  3 15:18 api
-rw-r--r--.  1 root   root  727 11月  3 15:18 api.php
drwxr-xr-x.  2 root   root   23 11月  3 15:18 archiver
drwxr-xr-x.  2 daemon root   90 11月  3 15:18 config
-rw-r--r--.  1 root   root  922 11月  3 15:18 connect.php
-rw-r--r--.  1 root   root  253 11月  3 15:18 cp.php
-rw-r--r--.  1 root   root  106 11月  3 15:18 crossdomain.xml
drwxr-xr-x. 13 daemon root  216 11月  3 15:18 data
-rw-r--r--.  1 root   root 5558 11月  3 15:18 favicon.ico
-rw-r--r--.  1 root   root 2110 11月  3 15:18 forum.php
-rw-r--r--.  1 root   root  823 11月  3 15:18 group.php
-rw-r--r--.  1 root   root 1223 11月  3 15:18 home.php
-rw-r--r--.  1 root   root 5448 11月  3 15:18 index.php
drwxr-xr-x.  5 root   root   64 11月  3 15:18 install
-rw-r--r--.  1 root   root 1040 11月  3 15:18 member.php
-rw-r--r--.  1 root   root 1381 11月  3 15:18 misc.php
-rw-r--r--.  1 root   root 1757 11月  3 15:18 plugin.php
-rw-r--r--.  1 root   root  985 11月  3 15:18 portal.php
-rw-r--r--.  1 root   root  582 11月  3 15:18 robots.txt
-rw-r--r--.  1 root   root 1158 11月  3 15:18 search.php
drwxr-xr-x. 10 root   root  168 11月  3 15:18 source
drwxr-xr-x.  6 root   root   72 11月  3 15:18 static
drwxr-xr-x.  3 root   root   38 11月  3 15:18 template
drwxr-xr-x.  6 daemon root   92 11月  3 15:18 uc_client
drwxr-xr-x. 13 root   root  241 11月  3 15:18 uc_server
-rw-r--r--.  1 root   root 1691 11月  3 15:18 userapp.php

#刷新一下网站

 

 下一步后会遇到一点小问题

 

[root@localhost bbs]# mysql -u root -p
Enter password: 
Welcome to the MySQL monitor.  Commands end with ; or \g.
Your MySQL connection id is 12
Server version: 5.6.26 Source distribution

Copyright (c) 2000, 2015, Oracle and/or its affiliates. All rights reserved.

Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners.

Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.

#查看表里的用户
mysql> select user,host from mysql.user;
+---------+-----------------------+
| user    | host                  |
+---------+-----------------------+
| bbsuser | %                     |
| root    | 127.0.0.1             |
| root    | ::1                   |
|         | localhost             |
| root    | localhost             |
|         | localhost.localdomain |
| root    | localhost.localdomain |
+---------+-----------------------+
7 rows in set (0.00 sec)

#将空白的用户删除
mysql> delete from mysql.user where user='';
Query OK, 2 rows affected (0.00 sec)

#刷新一下
mysql> flush privileges;
Query OK, 0 rows affected (0.00 sec)

#再次查看
mysql> select user,host from mysql.user;
+---------+-----------------------+
| user    | host                  |
+---------+-----------------------+
| bbsuser | %                     |
| root    | 127.0.0.1             |
| root    | ::1                   |
| root    | localhost             |
| root    | localhost.localdomain |
+---------+-----------------------+
5 rows in set (0.00 sec)

mysql> 

mysql> exit
Bye

#回到网页点击下一步

论坛搭建完成! 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值