LAMP架构搭建!
Posted handsomeboy-东
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了LAMP架构搭建!相关的知识,希望对你有一定的参考价值。
LAMP架构是目前成熟的企业网站应用模式之一,指的是协同工作的一整套系统和相关软件,能够提供动态Web站点服务即其应用开发环境,LAMP包括了Linux系统、Apache网站服务器、mysql数据库、php网页编辑语言
Apache网站服务
Apache HTTP Server 是开源软件项目的杰出代表,支持多种网页编程语言,跨平台使用,模块化设计,运行稳定,且有良好的安全性,后面的PHP就需要在这上面才能运行
源码安装HTTP协议
- 编译安装优点:具有较大的自由度,功能可定制,可及时获得最新的软件版本,普遍适用于大多数Linux版本,便于移植使用
准备工作
[root@localhost ~]# rpm -e httpd --nodeps //为避免程序冲突,先删除rpm方式安装的httpd
准备好源码包并安装
[root@localhost opt]# ls
apr-1.7.0.tar.gz apr-util-1.6.1.tar.gz httpd-2.4.46.tar.gz rh
[root@localhost opt]# tar xzf apr-1.7.0.tar.gz
[root@localhost opt]# ls
apr-1.7.0 apr-1.7.0.tar.gz apr-util-1.6.1.tar.gz httpd-2.4.46.tar.gz rh
[root@localhost opt]# tar xzf apr-util-1.6.1.tar.gz
[root@localhost opt]# tar xzf httpd-2.4.46.tar.gz
[root@localhost httpd-2.4.46]# yum install -y \\
> gcc gcc-c++ make \\ //安装需要的编译器
> pcre \\ //pcre是一个perl函数库,
> pcre-devel \\ //perl的接口开发包
> expat-devel \\ //用于支持网站解析html、XML文件
> perl //perl语言编译器
将安装httpd所需的插件安装
[root@localhost opt]# mv apr-1.7.0 ./httpd-2.4.46/srclib/apr
[root@localhost opt]# mv apr-util-1.6.1 ./httpd-2.4.46/srclib/apr-util
[root@localhost httpd-2.4.46]# ./configure --prefix=/usr/local/httpd \\
> --enable-so \\ //启动动态加载核心模块支持,使httpd具备进一步扩展功能的能力
> --enable-rewrite \\ //启用网页地址重写功能,用于网站优化、防盗链及目录迁移维护
> --enable-charset-lite \\ //启动字符集支持,以便支持使用各种字符集编码的页面
> --enable-cgi //启用CGI(通用网关接口)脚本程序支持,便于网站的外部扩展应用访问能力
优化执行路劲,将httpd服务设置软链接,使其使用时更加方便
[root@handsomeboy1 mysql-5.6.26]# ln -s /usr/local/httpd/conf/httpd.conf /etc/
[root@handsomeboy1 mysql-5.6.26]# ln -s /usr/local/httpd/bin/* /usr/local/bin/
修改配置文件内容
[root@handsomeboy1 mysql-5.6.26]# vim /usr/local/httpd/conf/httpd.conf
[root@handsomeboy1 mysql-5.6.26]# httpd -t //查看修改结果,也可以用apachectl -t
Syntax OK
安装MySQL
MySQL是一个多线程、多用户的SQL数据库服务,拥有高性能、高可靠、易于使用的特性,在LAMP中MySQL数据库主要用来存储PHP的处理的动态页面的数据
[root@localhost opt]# tar zxf mysql-5.6.26.tar.gz //先下载好MySQL软件包并解压
/etc/my.cnf :MySQL的配置文件
/var/lib/mysql/:MySQL数据库文件存储的所在,需要备份时此文件最好记得备份
[root@localhost opt]# yum install -y nvurses \\ //下载字符终端下图形互动功能的动态库
> ncurses-devel \\ //ncurses开发包
> bison \\ //语法分析器
> cmake \\ //mysql安装时需要的解译器
> autoconf
[root@localhost opt]#cd mysql-5.6.26/
[root@handsomeboy1 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 --->系统中有一个默认的配置/etc/my.cnf
-DMYSQL_DATADIR=/home/mysql/ \\ //数据文件
-DMYSQL_UNIX_ADDR=/home/mysql/mysql.sock //指定连接数据库的通讯文件
[root@handsomeboy1 mysql-5.6.26]#make && make install
[root@handsomeboy1 opt]# cd mysql-5.6.26/
[root@handsomeboy1 mysql-5.6.26]# cp support-files/my-default.cnf /etc/my.cnf
cp:是否覆盖"/etc/my.cnf"? y
[root@handsomeboy1 mysql-5.6.26]# cp support-files/mysql.server /etc/init.d/mysqld
cp:是否覆盖"/etc/init.d/mysqld"? y
[root@handsomeboy1 mysql-5.6.26]# chmod 755 /etc/init.d/mysqld
[root@handsomeboy1 mysql-5.6.26]# chkconfig --add /etc/init.d/mysqld
[root@handsomeboy1 mysql-5.6.26]# chkconfig mysqld --level 35 on
[root@handsomeboy1 mysql-5.6.26]# systemctl enbale mysqld
Unknown operation 'enbale'.
[root@handsomeboy1 mysql-5.6.26]# useradd -s /sbin/nologin mysql
[root@handsomeboy1 mysql-5.6.26]# chown -R mysql:mysql /usr/local/mysql/
[root@handsomeboy1 mysql-5.6.26]# chown mysql:mysql /etc/my.cnf
[root@handsomeboy1 mysql-5.6.26]# echo "PATH=$PATH:/usr/local/mysql/bin" >> /etc/profile
[root@handsomeboy1 mysql-5.6.26]# source /etc/profile
[root@handsomeboy1 mysql-5.6.26]# cd /usr/local/mysql/
[root@handsomeboy1 mysql]# /usr/local/mysql/scripts/mysql_install_db \\ #初始化数据库
--user=mysql \\
--ldata=/var/lib/mysql \\
--basedir=/usr/local/mysql \\
--datadir=/home/mysql
[root@handsomeboy1 mysql]# vim /etc/init.d/mysqld
[root@handsomeboy1 mysql]# service mysqld start
Starting MySQL.. SUCCESS!
[root@handsomeboy1 mysql]# netstat -antp | grep 3306
tcp6 0 0 :::3306 :::* LISTEN 95830/mysqld
[root@handsomeboy1 mysql]# mysqladmin -u root -p password "abc123" #数据库的root用户设置密码
Enter password: //直接回车
Warning: Using a password on the command line interface can be insecure.
[root@handsomeboy1 mysql]# mysql -u root -p 进入MySQL数据库
Enter password: //输入刚刚设置的密码
Welcome to the MySQL monitor. Commands end with ; or \\g.
Your MySQL connection id is 6
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> show databases; //查看mysql的目录
+--------------------+
| Database |
+--------------------+
| information_schema |
| mysql |
| performance_schema |
| test |
+--------------------+
4 rows in set (0.00 sec)
mysql> exit //exit或者直接Ctrl+c退出
Bye
安装PHP
PHP就是一个用来建立动态网页的工具,
[root@handsomeboy1 mysql]# yum install -y gd \\ #图像化处理的库
> libpng \\ #png格式图片的库
> libpng-devel \\
> pcre \\
> pcre-devel \\
> libxml2-devel \\ #解析xml标记语言的库
> libjpeg-devel #jpeg格式图片的库
[root@handsomeboy1 opt]# cd /opt
[root@handsomeboy1 opt]# tar xjvf php-5.6.11.tar.bz2
[root@handsomeboy1 opt]# cd php-5.6.11/
[root@handsomeboy1 php-5.6.11]# ./configure \\
> --prefix=/usr/local/php5 \\
> --with-gd \\ #机括gd库的支持
> --with-zlib \\ #提供数据压缩功能的函数库
> --with-apxs2=/usr/local/httpd/bin/apxs \\ #指定httpd服务提供的apxs模块支持程序的文件位置
> --with-mysql=/usr/local/mysql \\ #关联数据库
> --with-config-file-path=/usr/local/php5 \\ #指定配置文件
> --enable-mbstring #启用多字节字符串功能,以便支持中文等代码
[root@handsomeboy1 php-5.6.11]# make && make install
[root@handsomeboy1 php-5.6.11]# vim /etc/httpd.conf
[root@handsomeboy1 php-5.6.11]# vim /usr/local/httpd/htdocs/index.php
[root@handsomeboy1 php-5.6.11]# service httpd stop
[root@handsomeboy1 php-5.6.11]# service httpd start
在页面进行测试
安装论坛
[root@handsomeboy1 php-5.6.11]# mysql -u root -p
Enter password:
mysql> create database bbs; //添加一个数据库
Query OK, 1 row affected (0.00 sec)
mysql> show databases;
+--------------------+
| Database |
+--------------------+
| information_schema |
| bbs | //查看数据库添加成功
| mysql |
| performance_schema |
| test |
+--------------------+
5 rows in set (0.00 sec)
mysql> grant all on bbs.* to 'bbsuser '@'%' identified by 'admin123';
Query OK, 0 rows affected (0.00 sec)
mysql> flush privileges;
Query OK, 0 rows affected (0.00 sec)
mysql> exit
Bye
[root@handsomeboy1 opt]# [root@handsomeboy1 opt]# unzip Discuz_X2.5_SC_UTF8.zip -d ./dis
[root@handsomeboy1 opt]# cd dis
[root@handsomeboy1 dis]# ls
readme upload utility
[root@handsomeboy1 dis]# cp -r upload/ /usr/local/httpd/htdocs/bbs
[root@handsomeboy1 dis]# cd /usr/local/httpd/htdocs/bbs
[root@handsomeboy1 bbs]# chown -R daemon ./config
[root@handsomeboy1 bbs]# chown -R daemon ./data
[root@handsomeboy1 bbs]# chown -R daemon ./uc_client
[root@handsomeboy1 bbs]# chown -R daemon ./uc_server/data
在网页上测试
总结:
- LAMP架构主要有Linux操作系统、Apache网站服务、MySQL数据库、PHP网页编辑语言组成
- Apache网住服务主要用来提供静态页面请求,PHP主要用来处理动态页面的请求,MySQL数据库主要用来持久化保存数据/状态信息(主要存储PHP的数据信息)
- 安装PHP软件包时,要通过–with-apxs2、–with-mysql配置选项来指定httpd、mysql的相关路劲
- 要使httpd服务支持PHP网页,应编辑httpd.conf文件,确认加载libphp5.so模块,并在其存放网页目录下添加“.php”类型文件
以上是关于LAMP架构搭建!的主要内容,如果未能解决你的问题,请参考以下文章