LAMP框架组成

linux+Apache(httpd)+MySQL+PHP

LAMP(Linux-Apache-MySQL-PHP)网站架构是目前国际流行的Web框架,该框架包括:Linux操作系统,Apache网络服务器,MySQL数据库,Perl、PHP或者Python编程语言,所有组成产品均是开源软件,是国际上成熟的架构框架

三个角色可以在一台机器上(文章用的是一台机器)也可以分开(httpd和PHP要在一起)

LAMP工作简介

lamp工作简图

基础环境

使用VMware虚拟机,镜像使用CentOS-7-x86_64-DVD-1908.iso,已关闭firewalld,selinux已关闭,iptables规则清除,yum源使用本地和阿里的源。
文中所用的软件包均可在对应官网下载。

安装MySQL

使用mysql-5.6.35-linux-glibc2.5-x86_64.tar.gz解压后移动到/usr/local/mysql目录下

创建MySQL用户,随后用到

useradd -s /sbin/nologin mysql

创建datadir,数据库文件存发点

mkdir -p /data/mysql

更改权限

chown -R mysql:mysql /data/mysql 

安装mysql的依赖不然下一步会出错。

yum install -y perl perl-devel perl-Data-Dumper autoconf

生成mysql系统
–user表示定义数据库的以哪个用户的身份运
–datadir表示定义数据库的安装目录

./scripts/mysql_install_db --user=mysql --datadir=/data/mysql

复制文件到my.cnf

cp support-files/my-default.cnf  /etc/my.cnf 

修改support-files下my-default.cnf文件

#These are commonly set, remove the # and set as required.
 basedir = /usr/local/mysql 
 datadir = /data/mysql/datadir
 port = 3306
 server_id = 128
 socket = /tmp/mysql.sock

五处修改内容:
//basedir表示MySQL包所在路径
//表示定义存放数据的位置
//port表示定义MySQL服务监听的端口号
//表示该MySQL服务的ID号
//定义MySQL服务监听的套接字地址

复制启动脚本文件

cp support-files/mysql.server /etc/init.d/mysql

更改脚本文件属性

chmod  755  /etc/init.d/mysql

vi /etc/init.d/mysql 修改启动脚本文件

basedir=/usr/local/mysql
datadir=/data/mysql

把mysql服务加到系统服务列表中

chkconfig --add mysql

开机就启动

chkconfig mysql on

启动服务

[root@node2 mysql]# service mysql start
Starting MySQL.Logging to '/data/mysql/node2.err'.
....... SUCCESS!

mysql安装完成。

安装Apache

Apache是一个基金会的名字,httpd才是我们要安装的软件包,早期它的名字就叫apache

使用apr-1.5.2 apr-util-1.5.4 httpd-2.4.46三个软件包

解压到/usr/local/src

进到apr-1.5.2目录下,配置环境

./configure --prefix=/usr/local/apr

如报错:rm: cannot remove ‘libtoolT’: No such file or directory

 Apr-1.5.2的文件在configure里面 RM='$RM  -f'   这里的$RM后面一定有一个空格。 如果后面没有空格,直接连接减号,就依然会报错。把RM='$RM'改为RM='$RM  -f'

编译安装

make && make insatll

进到/usr/local/src/apr-util-1.5.4

./configure --prefix=/usr/local/apr-util --with-apr=/usr/local/apr

编译安装

yum install -y pcre pcre-devel expat-devel安装依赖
进到 httpd-2.4.46目录下

./configure --prefix=/usr/local/apache2.4 --with-apr=/usr/local/apr --with-apr-util=/usr/local/apr-util --enable-so --enable-mods-shared=most

//–perefix指定安装目录
//–enable-so表示启用DSO
//–enable -mods- shared表示以共享形式安装模块

make && make install安装。

查看配置文件有哪些

/usr/local/apache2.4/bin/apachectl -M

安装PHP

使用php-7.1.6软件包安装。

cd /usr/local/src
安装依赖环境(可能与之前的有重复了)

yum install -y libxml2-devel openssl openssl-devel bzip2 bzip2-devel libpng libpng-devel freetype freetype-devel epel-release libmcrypt-devel

配置环境

./configure --prefix=/usr/local/php --with-apxs2=/usr/local/apache2.4/bin/apxs --with-config-file-path=/usr/local/php/etc --with-mysql=/usr/local/mysql --with-libxml-dir--with-gd --with-jpeg-dir --with-png-dir--with-freetype-dir --with-iconv-dir--with-zlib-dir --with-bz2 --with-openssl--with-mcrypt --enable-soap--enable-gd-native-ttf  --enable-mbstring--enable-sockets --enable-exif

编译安装:make && make install (php的安装时间有点长)
配置httpd的主配置文件:
vi /usr/local/apache2.4/conf/httpd.conf
1.搜索ServerName,把ServerName www.example.com:80前#去掉;
2.

<Directory />
    AllowOverride none  
    Require all granted(denied改掉)
</Directory>    //目的允许所有请求访问

3.搜索AddType application/x-gzip .gz .tgz,在下面添加一行 AddType application/x-httpd-php .php;
4.

<IfModule dir_module>
    DirectoryIndex index.html index.php(添加index.php)
</IfModule>

测试配置是否正确

/usr/local/apache2.4/bin/apachectl -t

//检验配置文件是否正确:Syntax OK

/usr/local/apache2.4/bin/apachectl start

//启动httpd命令

netstat -lnp |grep httpd(要安装net-tools工具)

//查看是否启动

//使用curl命令简单测试,显示了就是成功

curl localhost
<html><body><h1>It works!<h1><body><html>

测试PHP能否正常解析

vi /usr/local/apache2.4/htdocs/1.php
<?
echo "php解析正确"
?>

显示php解析正常,ok

[root@node2 apache2.4]# curl localhost/1.php
php解析正常[root@node2 apache2.4]# 

LAMP架构搭建完成

Apache配置

1.默认虚拟主机
(1)虚拟主机
虚拟主机(共享主机,又称虚拟服务器)是一种在单一主机或主机群上,实现多网域服务的方法,可以运行多个网站或服务的技术。虚拟主机之间完全独立,并可由用户自行管理,虚拟并非指不存在,而是指空间是由实体的服务器延伸而来,其硬件系统可以是基于服务器群,或者单个服务器。
(2)配置

vi /usr/local/apache2/conf/httpd.conf //搜索httpd-vhost,去掉#

vi /usr/local/apache2.4/conf/extra/httpd-vhosts.conf//编辑虚拟主机配置文件

<VirtualHost *:80>
   		ServerAdmin admin@wang.com
    	DocumentRoot "/data/wwwroot/test0920.com"
   		ServerName test0920.com
    	ServerAlias www.test0920.com    
		ErrorLog "logs/aming.com-error_log"
    	CustomLog "logs/aming.com-access_log" common
</VirtualHost>
<VirtualHost *:80>
     	DocumentRoot "/data/wwwroot/testdomain.com"
    	ServerName www.testdomain.com
</VirtualHost>

//ServerAdmin指定管理员邮箱,
//DocumentRoot为该虚拟主机站点的根目录
//ServaerName为网站的域名
//ServerAlias为网站的第二域名
//ErrorLog为站点的错误日志
//CustomLog为站点的访问日志

mkdir -p /data/wwwroot/test0920.com /data/wwwroot/testdomain.com
echo “www.test0920.com” > /data/wwwroot/test0920.com/index.html
echo “www.testdomain.com” > /data/wwwroot/testdomain.com/index.html
/usr/local/apache2.4/bin/apachectl -t
/usr/local/apache2.4/bin/apachectl graceful

(3)配置验证
#curl -x127.0.0.1:80 www.test0920.com
//访问www.test0920.com/index.html
www.test0920.com

#curl -x127.0.0.1:80 www.testdomain.com
www.testdomain.com

#curl -x127.0.0.1:80 www.abc.com
www.test0920.com

Logo

AtomGit 是由开放原子开源基金会联合 CSDN 等生态伙伴共同推出的新一代开源与人工智能协作平台。平台坚持“开放、中立、公益”的理念,把代码托管、模型共享、数据集托管、智能体开发体验和算力服务整合在一起,为开发者提供从开发、训练到部署的一站式体验。

更多推荐