Centos7 搭建LAMP环境(编译安装)

谁都会走 提交于 2019-12-05 19:23:57

1、查看系统版本

[niemx@localhost ~]$ cat /etc/redhat-release
CentOS Linux release 7.6.1810 (Core)

2、安装软件准备

(1)apr-1.5.2.tar.bz2

Apache可移植运行时(APR)是Apache web服务器的支持库。它提供了一组映射到底层操作系统(OS)的应用程序编程接口(api)。如果操作系统不支持特定的功能,APR将提供一个仿真。因此,程序员可以使用APR使程序跨不同平台进行移植。APR对于Tomcat最大的作用就是socket调度。

下载地址http://archive.apache.org/dist/apr/apr-1.5.2.tar.bz2

(2)apr-util-1.5.4.tar.bz2

apr-util和apr都是为上层应用提供的运行库。为没有stl库的C语言提供了一些数据结构和操作系统封装接口。显然apache的许多软件都是以apr/apr-util为基础库进行开发的。apr-util只是在apr的基础上提供了更多的数据结构和操作系统封装接口而已。

下载地址http://archive.apache.org/dist/apr/apr-util-1.5.4.tar.bz2

(3)pcre-8.43.tar.gz

PCRE(PerlCompatibleRegularExpressions)是一个Perl库,包括perl兼容的正则表达式库。这些在执行正规表达式模式匹配时用与Perl5同样的语法和语义是很有用的。httpd编译过程需要依赖于pcre-devel软件包。

下载地址https://ftp.pcre.org/pub/pcre/pcre-8.43.tar.gz

(4)httpd-2.4.41.tar.gz

httpd为Apache HTTP服务器程序。直接执行程序可启动服务器的服务。

下载地址http://www.apache.org/dist/httpd/httpd-2.4.41.tar.gz

(5)mysql-5.6.25.tar.gz

先查看linux版本,下载mysql源码包时要选择对应的系统的源码包。

[niemx@localhost ~]$ uname -a
Linux localhost.localdomain 3.10.0-957.10.1.el7.x86_64 #1 SMP Mon Mar 18 15:06:45 UTC 2019 x86_64 x86_64 x86_64 GNU/Linux

下载地址https://dev.mysql.com/get/Downloads/MySQL-5.6/mysql-5.6.46.tar.gz

(6)php-5.6.37.tar.bz2

下载地址https://www.php.net/distributions/php-5.6.37.tar.bz2

**直接在linux中下载源码包可能比较慢,可以在windows中下载好,然后安装lrzsz,使用SecureCRT传输到linux服务器**

3、编译安装apache

(1)安装apr

# tar -xjvf apr-1.5.2.tar.bz2
# cd apr-1.5.2
# ./configure --prefix=/usr/local/apr
# make && make install
(2)安装apr-util
# tar -xjvf apr-util-1.5.4.tar.bz2
# cd apr-util-1.5.4
# ./configure --prefix=/usr/local/apr-util --with-apr=/usr/local/apr
# make && make install
(3)安装pcre
# tar -zxvf pcre-8.43.tar.gz
# cd pcre-8.43
# ./configure --prefix=/usr/local/pcre
# make && make install
(4)创建用户、组
# groupadd -r apache
# useradd -r -g apache apache
(5)安装httpd
# tar -zxvf httpd-2.4.41.tar.gz
# cd httpd-2.4.41
# ./configure --prefix=/usr/local/apache --sysconfdir=/etc/httpd --enable-so --enable-ssl --enable-cgi --enable-rewrite --with-zlib --with-pcre=/usr/local/pcre --with-apr=/usr/local/apr --with-apr-util=/usr/local/apr-util --enable-modules=most --enable-mpms-shared=all --with-mpm=event
---------------------------------------------------------------------------------------------------
出现如下错误:
**checking whether to enable mod_ssl... configure: error: mod_ssl has been requested but can not be built due to prerequisite failures**
没有安装openssl-devel
解决方式:yum install openssl-devel
然后重新执行./configure --prefix=/usr/local/apache --sysconfdir=/etc/httpd --enable-so --enable-ssl --enable-cgi --enable-rewrite --with-zlib --with-pcre=/usr/local/pcre --with-apr=/usr/local/apr --with-apr-util=/usr/local/apr-util --enable-modules=most --enable-mpms-shared=all --with-mpm=event
---------------------------------------------------------------------------------------------------
#make && make install
(6)配置apache并设置开机启动
# vi /etc/httpd/httpd.conf
(1)搜索ServerName www.example.com:80 去掉前面的注释
(2)修改DocumentRoot到/home/htdocs,以及这一行下面的一句中的<Directory到/home/htdocs 这个是www的根目录设置
# mkdir -p /home/htdocs 
# cp /usr/local/apache/htdocs/index.html /home/htdocs
# cp /usr/local/apache/bin/apachectl /etc/init.d/httpd
# vi httpd 在第一行下添加如下两行文字(#!/bin/sh下面)
# chkconfig: 2345 90 90 #注意前面要加上#号
# description:http server #注意前面要加上#号
注册该服务
# chkconfig --add httpd #所有开机模式下自启动
# chkconfig httpd on #345开机模式下自启动
(7)关闭防火墙,验证apache是否安装成功
查看防火墙状态
# systemctl status firewalld.service
临时关闭防火墙
# systemctl stop firewalld.service
永久关闭防火墙
# systemctl status firewalld.service
启动apache
# /usr/local/apache/bin/apachectl start
浏览器访问服务器IP地址,出现“It works”表示apache安装成功
关闭apache
# /usr/local/apache/bin/apachectl stop
4、编译安装MySQL
(1)创建用户、组
# mkdir /usr/local/mysql
# mkdir /home/data
# groupadd -r mysql
# useradd -g mysql -r -s /sbin/nologin -M -d /home/data mysql
# chown -R mysql:mysql /home/data
# chown -R mysql:mysql /usr/local/mysql
(2)安装
从mysql5.5起,mysql源码安装开始使用cmake了,设置源码编译配置脚本
# yum -y install cmake
# yum -y install ncurses-devel
# tar -xzvf mysql-5.6.46.tar.gz
# cd mysql-5.6.46
# cmake -DCMAKE_INSTALL_PREFIX=/usr/local/mysql \
-DMYSQL_DATADIR=/home/data \
-DSYSCONFDIR=/etc \
-DWITH_MYISAM_STORAGE_ENGINE=1 \
-DWITH_INNOBASE_STORAGE_ENGINE=1 \
-DWITH_MEMORY_STORAGE_ENGINE=1 \
-DWITH_READLINE=1 \
-DMYSQL_UNIX_ADDR=/var/lib/mysql/mysql.sock \
-DMYSQL_TCP_PORT=3306 \
-DENABLED_LOCAL_INFILE=1 \
-DWITH_PARTITION_STORAGE_ENGINE=1 \
-DEXTRA_CHARSETS=all \
-DDEFAULT_CHARSET=utf8 \
-DDEFAULT_COLLATION=utf8_general_ci
# make && make install
(3)初始化mysql数据库
拷贝启动的服务脚本
# cp /usr/local/mysql/support-files/mysql.server /etc/init.d/mysqld
# chmod 700 /etc/init.d/mysqld
改变环境变量
# echo 'PATH=/usr/local/mysql/bin:$PATH' >>/etc/profile
# source /etc/profile
修改配置文件
# vim /etc/my.cnf

[mysqld]
server_id=1
port=3306
basedir=/usr/local/mysql
datadir=/usr/local/mysql/data
socket=/usr/local/mysql/mysql.sock
log_bin=/usr/local/mysql/mysql-bin
log_error=/var/log/mysql.log
character-set-server=utf8

[client]
socket=/usr/local/mysql/mysql.sock

忘记mysql的登录密码了
vi /etc/my.cnf
在最后一行添加上:skip-grant-tables
保存退出,重启mysql,
mysql>use mysql;

mysql> UPDATE user SET authentication_string= password ( 'root' ) WHERE User = 'root' ;//单引号内的字符即使需要设置的新密码(无password字段的版本)

mysql>update user set password=password('root') where user='root';(有password字段的版本)

mysql>quit;

删除/etc/my.cnf文件里面的“skip-grant-tables”。最后重启,输入新密码就可以了。

5、编译安装PHP

(1)解决依赖关系

# yum -y install bzip2-devel libmcrypt-devel libxml2-devel

安装libmcrypt-devel 需要配置epel源

# rpm -Uvh https://mirrors.tuna.tsinghua.edu.cn/epel/7/x86_64/Packages/e/epel-release-7-12.noarch.rpm

# yum clean all

# yum makecache

# yum update

# yum install -y libmcrypt-devel

(2)安装php

# tar -xjvf php-5.6.37.tar.bz2

# cd php-5.6.37

# ./configure --prefix=/usr/local/php --with-mysql=/usr/local/mysql --with-openssl --with-mysqli=/usr/local/mysql/bin/mysql_config --enable-mbstring --with-freetype-dir --with-jpeg-dir --with-png-dir --with-zlib --with-libxml-dir=/usr --enable-xml  --enable-sockets --with-apxs2=/usr/local/apache/bin/apxs --with-mcrypt  --with-config-file-path=/etc --with-config-file-scan-dir=/etc/php.d --with-bz2  --enable-maintainer-zts

# make && make install

(3)修改配置

# cp php.ini-production /etc/php.ini

# vim /etc/httpd/httpd.conf

<IfModule unixd_module>

...

User apache
Group apache

...

</IfModule>

<IfModule dir_module>
  DirectoryIndex index.php index.html
</IfModule>

<IfModule mime_module>

...

AddType application/x-httpd-php  .php

...

</IfModule>

重新启动httpd

# service httpd restart

------------------------------------------------------------------

**/usr/local/apache/bin/apachectl: line 95: lynx: command not found**

错误解决方式: # yum install lynx -y

-----------------------------------------------------------------

(4)编写测试代码

测试页面index.php示例如下:
    <?php
      $link = mysql_connect('127.0.0.1','root','root');
      if ($link)
        echo "mysql connected success.";
      else
        echo "mysql connected faild.";
      mysql_close();
      phpinfo();
    ?>
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!