数据库
MySQL
ORACLE
占位哈哈
占位哈哈
占位哈哈
占位哈哈
占位哈哈
占位哈哈
占位哈哈
占位哈哈
Linux运维
中间件
shell脚本
占位哈哈
占位哈哈
占位哈哈
占位哈哈
占位哈哈
占位哈哈
占位哈哈
首页 动态 发帖 版块 我的
 退出
游客  
等级:
金豆:
经验:
首页  /  linux运维  /  linux服务  /  正文

LAMP架构安装部署

  955 
 0
 1
LAMP是Linux Apache MySQL PHP的简写,其实就是把Apache,MySQL以及PHP安装在Linux系统上,组成一个环境来运行PHP的脚本语言。至于什么是PHP脚本语言。Apache是最常用的WEB服务软件,而MySQL是数据库软件,这两个软件以及PHP都可以安装到Windows的机器上。


1、MySQL安装

mysql编译安装时间比较久,所以在此采用二进制包进行安装。


查看系统软件版本

[root@localhost ~]# uname -a
Linux localhost.localdomain 3.10.0-1062.el7.x86_64 #1 SMP Wed Aug 7 18:08:02 UTC 2019 x86_64 x86_64 x86_64 GNU/Linux

下载X86_64位的glibc类型的mysql数据库软件

[root@localhost ~]# wget https://mirrors.huaweicloud.com/mysql/Downloads/MySQL-5.6/mysql-5.6.47-linux-glibc2.12-x86_64.tar.gz
解压到/usr/local下面并重命名为mysql-5.6

[root@localhost ~]# tar xf mysql-5.6.47-linux-glibc2.12-x86_64.tar.gz 
[root@localhost ~]# mv mysql-5.6.47-linux-glibc2.12-x86_64 /usr/local/mysql-5.6
如果想下载其他版本的mysql数据库文件可以访问

https://mirrors.huaweicloud.com/mysql/Downloads/

创建mysql用户、数据目录并授权

[root@localhost ~]# useradd -s /sbin/nologin mysql
[root@localhost ~]# mkdir -p /data/mysql_data
[root@localhost ~]# chown -R  mysql. /data/mysql_data/
初始化操作

[root@localhost ~]# cd /usr/local/mysql-5.6/
[root@localhost mysql-5.6]# ./scripts/mysql_install_db --user=mysql --datadir=/data/mysql_data

--user:定义用户

--datadir:定义数据目录


报错的解决办法

1、报错FATAL ERROR: please install the following Perl modules before executing ./scripts/mysql_install_db:

Data::Dumper

解决办法:

[root@localhost mysql-5.6]# yum install 'perl(Data::Dumper)' perl perl-devel -y
没有出现错误才初始化成功


配置mysql数据库

[root@localhost mysql-5.6]# cp support-files/my-default.cnf /etc/my.cnf
[root@localhost mysql-5.6]# cp support-files/mysql.server /etc/init.d/mysqld
[root@localhost mysql-5.6]# chmod a+x /etc/init.d/mysqld 
修改启动脚本为如下

[root@localhost mysql-5.6]# vim  /etc/init.d/mysqld 
basedir=/usr/local/mysql-5.6
datadir=/data/mysql_data
启动服务

[root@localhost mysql-5.6]# /etc/init.d/mysqld start
Starting MySQL.Logging to '/data/mysql_data/localhost.localdomain.err'.
 SUCCESS! 
查看服务是否成功启动

[root@localhost mysql-5.6]# netstat -ntlp|grep mysqld
tcp6       0      0 :::3306                 :::*                    LISTEN      27463/mysqld  
[root@localhost mysql-5.6]# ps -ef|grep mysql
root     27351     1  0 15:14 pts/0    00:00:00 /bin/sh /usr/local/mysql-5.6/bin/mysqld_safe --datadir=/data/mysql_data --pid-file=/data/mysql_data/localhost.localdomain.pid
mysql    27463 27351  2 15:14 pts/0    00:00:00 /usr/local/mysql-5.6/bin/mysqld --basedir=/usr/local/mysql-5.6 --datadir=/data/mysql_data --plugin-dir=/usr/local/mysql-5.6/lib/plugin --user=mysql --log-error=localhost.localdomain.err --pid-file=/data/mysql_data/localhost.localdomain.pid
root     28011  1877  0 15:14 pts/0    00:00:00 grep --color=auto mysql
2、apache编译安装

源码包下载

[root@localhost ~]# wget https://mirrors.huaweicloud.com/apache/httpd/httpd-2.4.46.tar.gz

依赖环境包安装

[root@localhost httpd-2.4.46]# yum install apr apr-devel apr-util apr-util-devel gcc gcc-c++ pcre pcre-devel -y

解压并编译安装

[root@localhost ~]# tar xf httpd-2.4.46.tar.gz 
[root@localhost ~]# cd httpd-2.4.46
[root@localhost httpd-2.4.46]# ./configure --prefix=/usr/local/apache2 --with-included-apr --enable-so --enable-deflate=shared --enable-expires=shared --enable-rewrite=shared --with-pcre

-prefix 指定安装到哪里,-enable-so表示启用DSO,-enable-deflate=shared表示动态共享的方式编译deflate模块,后面的参数同理。既然可以动态共享当然也可以用静态的方式编译deflate模块。那什么是动态共享,什么是静态?apache 编译安装完成后会生成一个核心的二进制可执行文件叫做htpd,这个文件作为核心文件,提供服务时就是它在处理用户的请求,但是有一些功能,比如这里提到的expires 就是配置静态文件(图片)过期时间的,也就是说图片可以在用户浏览器的临时缓存目录中缓存多久。这些功能是作为httpd的一个扩展模块来工作的,那么这种扩展模块有两种存在的方式,一种是直接在编译的时候和htpd文件拧到一起,组成一个体积大的文件,这种叫做静态。而另外一种方式是,扩展模块作为一个独立的文件存在,只有在使用这个模块时再去调用它,这种叫做动态共享。两种方式中,动态的好处是,核心文件httpd比较小,模块随时用随时加载,耗费内存相对较少。

而静态的优势是,在服务启动时,会把所有模块加载,用到时很快就执行,效率较高。我还是比较倾向用动态。


报错信息:

1、报错checking whether to enable mod_deflate... configure: error: mod_deflate has been requested but can not be built due to prerequisite failures

解决办法

[root@localhost httpd-2.4.46]# yum install zlib-devel -y
没有报错后执行如下命令编译并安装

[root@localhost httpd-2.4.46]# make && make install
服务启动

[root@localhost httpd-2.4.46]# /usr/local/apache2/bin/apachectl start
查看服务是否启动

Image

3、PHP安装

为什么要把php放到最后来安装,是有原因的,因为我们在编译php的时候,有指定mysql以及apache的路径,如果不先安装好mysql和apache就没有办法安装php。


源码包下载

[root@localhost ~]# wget http://ftp.ntu.edu.tw/php/distributions/php-5.6.9.tar.gz

安装依赖包


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

解压编译并安装

[root@localhost ~]# tar xf php-5.6.9.tar.gz 
[root@localhost ~]# cd php-5.6.9
[root@localhost php-5.6.9]# ./configure \
> -prefix=/usr/local/php \
> -with-apxs2=/usr/local/apache2/bin/apxs \
> -with-config-file-path=/usr/local/php/etc \
> -with-mysql=/usr/local/mysql-5.6 \
> -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 \
> -disable-ipv6 \
> --with-mysql-sock=/tmp/mysql.sock \
> --with-mysqli=/usr/local/mysql-5.6/bin/mysql_config

编译并安装

[root@localhost php-5.6.9]# make && make install

复制配置文件到相应目录

[root@localhost php-5.6.9]# cp php.ini-production /usr/local/php/etc/php.ini


修改apache的配置文件找到

[root@localhost ~]# vim /usr/local/apache2/conf/httpd.conf 
找到
392     AddType application/x-gzip .gz .tgz
在下面添加
AddType application/x-httpd-php .php
找到
254 <IfModule dir_module>
255     DirectoryIndex index.html
256 </IfModule>
改为
254 <IfModule dir_module>
255     DirectoryIndex index.html index.htm index.php
256 </IfModule>
找到
197 #ServerName www.example.com:80
改为
197 ServerName localhost:80
找到LoadModule最下面添加如下参数,否则在访问php文件的时候会变为下载
156 LoadModule php5_module modules/libphp5.so
找到
235     Options Indexes FollowSymLinks
改为如下,意思是不显示目录结构
235     Options  FollowSymLinks

测试配置文件是否有误并重启apache服务

[root@localhost ~]# /usr/local/apache2/bin/apachectl -t
Syntax OK
[root@localhost ~]# /usr/local/apache2/bin/apachectl restart

创建php测试文件并测试

[root@localhost ~]# vim /usr/local/apache2/htdocs/phpinfo.php
<?php
        phpinfo();
?>

防火墙配置

[root@localhost ~]# firewall-cmd --permanent --add-port=80/tcp
[root@localhost ~]# firewall-cmd --reload

浏览器测试访问情况,出现如下界面才表示apache可以解析php语言了

Image

至此,LAMP搭建成功



标签:
作者签名: 只有努力,才会有收获   楼主  2020-10-12 15:37:35

点赞推荐

回复列表
合作伙伴:
Powered by 运维术 8.3.2
© 2017-2024 模板 by 黑衣人
您的IP: 18.118.95.108 , 2024-09-19 08:18:42
Powered by 运维术 8.3.2
© 2017-2024 模板 by 黑衣人
(1) 分享
分享
取消
我的客服