目录
1. LAMP概述
LAMP架构是目前成熟的企业网站应用模式之一,指的是协同工作的一整台系统和相关软件,能够提供动态web站点服务及其应用开发环境
L:Linux 提供操作系统支持,提供一个环境支持
A:Apache 提供静态页面请求
M:MySQL 持久化保存数据/状态信息
P:PHP 处理动态页面请求
搭建顺序依次为:Linux,Apache,MySQL,PHP
2. 源码安装步骤
开源软件的源代码包一般为TarBall形式,扩展名为“.tar.gz”或“.tar.bz2”,都可以使用tar命令进行解压。
在编译应用程序之前,需要进入源代码目录,对软件的安装目录,功能选择等参数进行配置。
编译的过程主要是根据Makefile文件内的配置信息,将源代码文件进行编译而生成二进制的程序模块,动态链接库,可执行文件等。
配置完成后,只需要在源代码目录中执行“make”命令即可执行编译操作
编译完成后,就可以执行“make install”命令将软件的执行程序,配置文件,帮助文档等相关文件复制到Linux系统中了,也就是应用程序的最后“安装”过程。同样是在源代码目录中执行命令。
3. Apache
3.1 概述
1955年时,发布Apache服务程序的1.0版本
源于A Patchy Server,著名的开源web服务软件
由Apache软件基金会(ASF)负责维护
最新的名称为“Apache HTTP Server”
主要特点:
开放源代码,跨平台应用
支持多种网页编程语言
模块化设计,运行稳定,良好的安全性
3.2 源码安装步骤
[root@server opt]# tar xf apr-1.6.2.tar.gz //解压缩
[root@server opt]# tar xf apr-util-1.6.0.tar.gz
[root@server opt]# tar xf httpd-2.4.29.tar.bz2
[root@server opt]# ls
apr-1.6.2 apr-util-1.6.0 httpd-2.4.29 rh
apr-1.6.2.tar.gz apr-util-1.6.0.tar.gz httpd-2.4.29.tar.bz2
[root@server opt]# cd httpd-2.4.29/
[root@server httpd-2.4.29]# cd srclib/
[root@server opt]# mv apr-1.6.2 httpd-2.4.29/srclib/apr
[root@server opt]# mv apr-util-1.6.0 httpd-2.4.29/srclib/apr-util
[root@server opt]# cat /etc/resolv.conf
# Generated by NetworkManager
nameserver 114.114.114.114
[root@server opt]# yum install gcc gcc-c++ make pcre-devel expat-devel perl -y
[root@localhost opt]# yum -y install \
> gcc \ '//编译器'
> gcc-c++ \ '//编译器'
> make \ '//make工具'
> pcre-devel \ '//支持正则表达式的工具'
> expat-devel \ '//使网站能解析标签语言的工具'
> perl '//Perl语言工具'
[root@localhost httpd-2.4.29]# ./configure \
> --prefix=/usr/local/httpd \ '//指定路径'
> --enable-so \ '//开启核心功能模块'
> --enable-rewrite \ '//开启重写功能,如防盗链保护'
> --enable-charset-lite \ '//开启字符集'
> --enable-cgi '//开启通用网关接口'
[root@localhost httpd-2.4.29]# make && make install
[root@server httpd-2.4.29]# cd srclib/
[root@server srclib]# ls
apr apr-util Makefile Makefile.in
[root@server httpd-2.4.29]# cd /usr/local/httpd/
[root@server httpd]# cd bin
[root@server bin]# cp apachectl /etc/init.d/httpd
[root@server bin]# cd /etc/init.d/
[root@server init.d]# vim httpd
#!/bin/sh '//在行首插入下两行内容,并保存退出'
# chkconfig: 35 85 21 '//35级别自动运行 第85个启动 第21个关闭'
# description: Apache is a World Wide Web server
#
[root@server init.d]# chkconfig --add httpd
[root@server init.d]# vim /usr/local/httpd/conf/httpd.conf
197 ServerName www.abc.com:80
51 Listen 192.168.197.139:80 '//开启IPv4并监听自己的IP地址'
52 #Listen 80 '//关闭IPv6监听'
[root@server init.d]# ln -s /usr/local/httpd/conf/httpd.conf /etc
[root@server init.d]# ln -s /usr/local/httpd/bin/* /usr/local/bin
[root@server init.d]# httpd -t
Syntax OK
[root@server init.d]# systemctl stop firewalld.service
[root@server init.d]# setenforce 0
[root@server init.d]# systemctl start httpd
[root@server init.d]# netstat -ntap | grep 80
tcp 0 0 192.168.152.130:80 0.0.0.0:* LISTEN 47986/httpd
4. MySQL
4.1 概述
MySQL是一种开放源代码的关系型数据库管理系统(RDBMS),使用最常用的数据库管理语言–结构化查询语言(SQL)进行数据库管理。
MySQL是开放源代码的,是一个真正的多线程,多用户的SQL数据库服务,凭借其速度、可靠性和适应性而备受关注。
4.2 源码安装步骤
[root@server ~]#yum -y install gcc gcc-c++ ncurses ncurses-devel bison cmake autoconf
'//ncurses-devel是字符终端下屏幕控制的基本库'
'//autoconf生成可以自动配置软件源代码'
'//cmake跨平台编译安装工具'
[root@server ~]# cd /opt
[root@server opt]#tar xzvf mysql-5.6.26.tar.gz -C /opt
[root@server opt]# ls
apr-1.6.2.tar.gz httpd-2.4.29 mysql-5.6.26 rh
apr-util-1.6.0.tar.gz httpd-2.4.29.tar.bz2 mysql-5.6.26.tar.gz
[root@server opt]#cd mysql-5.6.26
[root@server mysql-5.6.26]# cd /opt/mysql-5.6.26/
[root@server mysql-5.6.26]# cmake \
-DCMAKE_INSTALL_PREFIX=/usr/local/mysql \ 指定路径
-DDEFAULT_CHARSET=utf8 \ 指定默认使用的字符集编码,如 utf-8
-DDEFAULT_COLLATION=utf8_general_ci \指定默认使用的字符集校对规则'
-DEXTRA_CHARSETS=all \ 指定支持其他字符集编码
-DSYSCONFIDIR=/etc \ /etc/mysql --->系统中有一个默认的配置
-DMYSQL_DATADIR=/home/mysql/ \ 数据文件
-DMYSQL_UNIX_ADDR=/home/mysql/mysql.sock 指定连接数据库的通讯文件(启动数据库的时候会生成)
[root@server mysql-5.6.26]#make && make install
此处差不多持续半个小时
[root@localhost mysql-5.6.26]# cp support-files/my-default.cnf /etc/my.cnf
cp: overwrite ‘/etc/my.cnf’? y
[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
[root@localhost mysql-5.6.26]#echo "PATH=$PATH:/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
[root@localhost mysql-5.6.26]#chown -R mysql:mysql /usr/local/mysql/
[root@localhost mysql-5.6.26]#id mysql
uid=1001(mysql) gid=1001(mysql) groups=1001(mysql)
[root@localhost mysql-5.6.26]#chown mysql:mysql /etc/my.cnf
[root@localhost mysql-5.6.26]#
[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
[root@localhost mysql-5.6.26]#vim /etc/init.d/mysqld
basedir=/usr/local/mysql //添加工作路径
datadir=/home/mysql //添加数据路径
[root@localhost mysql-5.6.26]#service mysqld start
Starting MySQL.. SUCCESS!
[root@localhost mysql-5.6.26]#netstat -ntap|grep 3306
tcp6 0 0 :::3306 :::* LISTEN 87565/mysqld
[root@localhost mysql-5.6.26]#mysqladmin -u root -p password "abc123" //给root用户设置密码
//mysqladmin -u用户名 -p旧密码 password 新密码
Enter password: //原本密码为空,直接回车即可
Warning: Using a password on the command line interface can be insecure.
[root@localhost mysql-5.6.26]#mysql -u root -p
Enter password: //输入刚设置的密码abc123
mysql> exit
Bye
5. PHP
5.1 概述
PHP即“超文本预处理器”,是一种通用开源脚本语言。PHP是在服务器端执行的脚本语言,与C语言类似,是常用的网站编程语言。PHP独特的语法混合了C、Java、Perl以及 PHP 自创的语法。利于学习,使用广泛,主要适用于Web开发领域
5.2 源码安装过程
[root@server opt]# ls
[root@server opt]# tar xjvf php-5.6.11.tar.bz2
[root@server opt]# yum -y install \
gd \
libpng \
libpng-devel \
pcre \
pcre-devel \
libxml2-devel \
libjpeg-devel
[root@server opt]#cd php-5.6.11
[root@server php-5.6.11]# ./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
[root@server php-5.6.11]# make && make install
[root@server php-5.6.11]# ln -s /usr/local/php5/bin/* /usr/local/bin/
[root@server php-5.6.11]# vi /etc/httpd.conf
256 DirectoryIndex index.html index.php
392 AddType application/x-compress .Z
393 AddType application/x-gzip .gz .tgz
394 AddType application/x-httpd-php .php
395 AddType application/x-httpd-php-source .phps
[root@localhost php-5.6.11]# service httpd stop
[root@localhost php-5.6.11]# service httpd start
[root@localhost php-5.6.11]# cd /usr/local/httpd/htdocs/
[root@localhost htdocs]# ls
index.html
[root@localhost htdocs]# vim index.html
'//原本内容可以删除,添加以下字段'
<?php
phpinfo();
?>
[root@localhost htdocs]# mv index.html index.php
[root@localhost htdocs]# ls
index.php
6.LAMP架构搭建论坛
6.1 创建数据库+添加用户
[root@server opt]# mysql -u root -p
...省略内容
mysql> create database bbq; '//创建数据库'
Query OK, 1 row affected (0.00 sec)
mysql> show databases;
+--------------------+
| Database |
+--------------------+
| information_schema |
| bbq |
| mysql |
| performance_schema |
| test |
+--------------------+
5 rows in set (0.00 sec)
mysql> grant all on bbq.* to 'bbquser '@'%' identified by 'admin123'; '//给用户bbquser设置密码admin123并设置所有权限,所有终端都可登录'
Query OK, 0 rows affected (0.00 sec)
mysql> flush privileges; '//刷新数据库'
Query OK, 0 rows affected (0.00 sec)
mysql> exit
Bye
6.2 源码安装步骤
[root@server opt]# unzip Discuz_X2.5_SC_UTF8.zip
[root@server opt]# ls
apr-1.6.2.tar.gz Discuz_X2.5_SC_UTF8.zip mysql-5.6.26 php-5.6.11.tar.bz2
apr-util-1.6.0.tar.gz httpd-2.4.29 mysql-5.6.26.tar.gz rh
dis httpd-2.4.29.tar.bz2 php-5.6.11
[root@server opt]# cd dis
[root@server dis]# ls
readme upload utility
[root@server dis]# cp -r upload/ /usr/local/httpd/htdocs/bbq
[root@server dis]# cd /usr/local/httpd/htdocs/
[root@server htdocs]# ls
bbq index.php
[root@server htdocs]# ls bbq
[root@server htdocs]# cd bbq
[root@server bbq]# ls
[root@server bbq]# chown -R daemon ./config
[root@server bbq]# chown -R daemon ./data
[root@server bbq]# chown -R daemon ./uc_client
[root@server bbq]# chown -R daemon ./uc_server/data