LAMP搭建(centos 7)

一、实验准备

  1. conten7 系统
  2. 关闭selinuc与防火墙 systemctl stop
  3. 配置网络yum源
  4. 编译前安装依赖包

二、安装

2.1 解压文件

链接:https://pan.baidu.com/s/1EnlBHVmGwZwjjE7046oKuA 提取码:lamp

[root@server ~]$ unzip LAMP-php7.zip
[root@server ~]$ mkdir /lamp
[root@server ~]$ cd LAMP-php7/
[root@server LAMP-php7]$ mv * /lamp/
[root@server LAMP-php7]$ cd /lamp
[root@server lamp]$ bash tar.sh
[root@server lamp]$ unzip pecl-memcache-php7.zip

2.2 安装 libxml2

lbxml2 是一个xml c语言版的解析器,本来是为Gnome项目开发的工具,是一个基于MIT License的免费开源软件。它除了支持c语言版以外,还支持c++、PHP、Pascal、Ruby、Tcl等语言的绑定,能在Windows、Linux、Solaris、MacOsX等平台上运行。功能还是相当强大的,相信满足一般用户需求没有任何问题。

[root@server lamp]$ yum -y install gcc gcc-c++ make

[root@server lamp]$ yum -y install libxml2-devel python-devel
[root@server lamp]$ cd libxml2-2.9.1/
[root@server libxml2-2.9.1]$ ./configure --prefix=/usr/local/libxml2/
[root@server libxml2-2.9.1]$ echo $?	#检查命令有没有报错,后面的安装也要检查
[root@server libxml2-2.9.1]$ make && make install

2.3 安装 libmcrypt

libmcrypt是加密算法扩展库。支持DES, 3DES, RIJNDAEL, Twofish, IDEA, GOST, CAST-256, ARCFOUR, SERPENT, SAFER+等算法。

[root@server libxml2-2.9.1]$ cd /lamp/libmcrypt-2.5.8/
[root@server libmcrypt-2.5.8]$ ./configure --prefix=/usr/local/libmcrypt/
[root@server libmcrypt-2.5.8]$ make && make install

2.4 安装 libltdl

也在 libmcrypt 源码目录里

[root@server libmcrypt-2.5.8]$ ./configure --enable-ltdl-install
[root@server libmcrypt-2.5.8]$ make && make install

2.5 安装 mhash

mhash是基于离散数学原理的不可逆向的php加密方式扩展库,其在默认情况下不开启。mhash的可
以用于创建校验数值,消息摘要,消息认证码,以及无需原文的关键信息保存(如密码)等。

[root@server libmcrypt-2.5.8]$ cd ../mhash-0.9.9.9/
[root@server libmcrypt-2.5.8]$ ./congifure
[root@server libmcrypt-2.5.8]$ make && make install

2.6 安装 mcrypt

mcrypt 是php 里面重要的加密支持扩展库。mcrypt库支持20多种加密算法和8种加密模式

[root@server mhash-0.9.9.9]$ cd ../mcrypt-2.6.8/
[root@server mcrypt-2.6.8]$ exportLD_LIBRARY_PATH=/usr/local/libmcrypt/lib:/usr/local/lib
[root@server libmcrypt-2.5.8]$ ./configure --with-libmcrypt-prefix=/usr/local/libmcrypt
[root@server libmcrypt-2.5.8]$ make && make install

2.7 安装 zlib

zlib是提供数据压缩用的函式库,由Jean-loup Gailly与Mark Adler所开发,初版0.9版在1995
年5月1日发表。zlib使用DEFLATE算法,最初是为libpng函式库所写的,后来普遍为许多软件所
使用。此函式库为自由软件,使用zlib授权

[root@server libmcrypt-2.5.8]$ cd ../zlib-1.2.3/
[root@server zlib-1.2.3]$ ./configure
[root@server zlib-1.2.3]$ vim Makefile
CFLAGS=-O3 -DUSE_MMAP
#修改为
CFLAGS=-O3 -DUSE_MMAP -fPIC
[root@server zlib-1.2.3]$ make && make install

2.8 安装 libpng

libpng 软件包包含libpng 库.这些库被其他程式用于解码png图片

[root@server zlib-1.2.3]$ cd ../libpng-1.2.31/
[root@server libpng-1.2.31]$ ./configure --prefix=/usr/local/libpng
[root@server libpng-1.2.31]$ make && make install

2.9 安装 jpeg6

jpeg6提供用于解码.jpg和.jpeg图片的库文件

[root@server libpng-1.2.31]$ cd ../jpeg-6b/
[root@server jpeg-6b]$ mkdir /usr/local/jpeg6
[root@server jpeg-6b]$ mkdir /usr/local/jpeg6/bin
[root@server jpeg-6b]$ mkdir /usr/local/jpeg6/lib
[root@server jpeg-6b]$ mkdir /usr/local/jpeg6/include
[root@server jpeg-6b]$ mkdir -p /usr/local/jpeg6/man/man1
#注意:此软件默认不会自动创建,所以目录需要提前手工建立
[root@server jpeg-6b]$ yum -y install libtool*
[root@server jpeg-6b]$ cp -a /usr/share/libtool/config/config.sub ./
cp:是否覆盖"./config.sub"? y
[root@server jpeg-6b]$ cp -a /usr/share/libtool/config/config.guess ./
cp:是否覆盖"./config.guess"? y
[root@server jpeg-6b]$ ./configure --prefix=/usr/local/jpeg6/ --enable-shared --enable-static
[root@server jpeg-6b]$ make && make install

--enable-shared与--enable-static参数分别为建立共享库和静态库使用的libtool

2.10 安装 freetype

FreeType库是一个完全免费(开源)的、高质量的且可移植的字体引擎,它提供统一的接口来访问多种字体格式文件,支持单色位图、反走样位图的渲染。

[root@server jpeg-6b]$ cd ../freetype-2.3.5/
[root@server freetype-2.3.5]$ ./configure --prefix=/usr/local/freetype/
[root@server freetype-2.3.5]$ make && make install

三、安装 Apache

3.1 apr&apr-util

源码包2.4.*版本中默认没有集成apr的依赖包,所以需要提前解决依赖问题

[root@server freetype-2.3.5]$ cd ../httpd-2.4.7/
[root@server httpd-2.4.7]$ cp -a /lamp/apr-1.4.6 /lamp/httpd-2.4.7/srclib/apr
[root@server httpd-2.4.7]$ cp -a /lamp/apr-util-1.4.1 /lamp/httpd-2.4.7/srclib/apr-util

3.2 安装 pcre

Apache默认需要依赖pcre软件,但由于Apache软件版本较高,则系统预安装的pcre无法使用,所以需要人为手动安装适合版本

[root@server httpd-2.4.7]$ cd /lamp/pcre-8.34/
[root@server pcre-8.34]$ ./configure
[root@server pcre-8.34]$ make && make install

3.3 安装 mod_ssl

Apache的加密传输模块mod_ssl,需要安装此软件产生

[root@server pcre-8.34]$ yum -y install openssl-devel

3.4 http 软件安装

[root@server pcre-8.34]$ cd /lamp/httpd-2.4.7/
[root@server httpd-2.4.7]$ ./configure --prefix=/usr/local/apache2 --sysconfdir=/usr/local/apache2/etc --with-include-apr --enable-so --enable-deflate=shared --enable-expires=shared --enable-rewrite=shared --enable-ssl
[root@server httpd-2.4.7]$ make && make install

3.5 启动 Apache 测试

[root@server ~]$ vim /usr/local/apache2/etc/httpd.conf
ServerName ……:80
#取消注释并改为
ServerName localhost:80
[root@server ~]$ /usr/local/apache2/bin/apachectl start
[root@server ~]$ ps aux |grep httpd	#查看进程是否启动
[root@server ~]$ netstat -antp | grep 80	查看端口是否启动

apache 报错

报错提示:若启动时提示/usr/local/apache2/modules/mod_deflate.so无权限,可关闭SELinux解
决,类似此类.so文件不能载入或没有权限的问题,都是SELinux问题,MySQL和Apache都可能有类似问题。
警告提示:发现启动服务提示:
AH00558: httpd: Could not reliably determine the server’s fully
qualified domain name, using localhost.localdomain. Set the ‘ServerName’ directive globally
to suppress this message
解决办法:打开主配置文件httpd.conf
搜索ServerName (约在200行左右)
改为ServerName localhost:80(并且去掉前面的#注释)
验证:通过浏览器输入地址访问:http://服务器ip,若显示“It works”即表明Apache正常工作

此类报错
httpd not running, trying to start
(98)Address already in use: AH00072: make_sock: could not bind to address [::]:80
(98)Address already in use: AH00072: make_sock: could not bind to address 0.0.0.0:80
no listening sockets available, shutting down
AH00015: Unable to open logs
解决办法:netstat -atnp #查看80端口对应的进程
pkill httpd #关闭进程

四、安装MySQL

4.1 安装 ncurses

Ncurses 提供字符终端处理库,包括面板和菜单。它提供了一套控制光标,建立窗口,改变前
景背景颜色以及处理鼠标操作的函数。使用户在字符终端下编写应用程序时绕过了那些恼人的
底层机制。简而言之,他是一个可以使应用程序直接控制终端屏幕显示的函数库。

[root@server ~]$ cd /lamp/ncurses-5.9/
[root@server ncurses-5.9]$ ./configure --with-shared --with-debug --without-ada --enable-overwrite
[root@server ncurses-5.9]$ make && make install

注意:若不安装ncurses编译MySQL时会报错

4.2 安装cmake和bison

mysql在5.5以后,不再使用./configure工具,进行编译安装。而使用cmake工具替代了./configure
工具。bison是一个自由软件,用于自动生成语法分析器程序,可用于所有常见的操作系统

[root@server ncurses-5.9]$ yum -y install cmake bison

4.3 创建用户

[root@server ncurses-5.9]$ cd ../mysql-5.5.48/
[root@server mysql-5.5.48]$ useradd -r -s /sbin/nologin mysql

为MySQL软件创建运行用户,创建为系统用户,并限制此用户登录操作系统

4.4 安装 mysql

[root@server mysql-5.5.48]$ cmake -DCMAKE_INSTALL_PREFIX=/usr/local/mysql -DMYSQL_UNIX_ADDR=/tmp/mysql.sock-DEXTRA_CHARSETS=all -DDEFAULT_CHARSET=utf8 -DDEFAULT_COLLATION=utf8_general_ci -DWITH_MYISAM_STORAGE_ENGINE=1 -DWITH_INNOBASE_STORAGE_ENGINE=1 -DWITH_MEMORY_STORAGE_ENGINE=1 -DWITH_READLINE=1 -DENABLED_LOCAL_INFILE=1 -DMYSQL_USER=mysql -DMYSQL_TCP_PORT=3306

参数详解

-DCMAKE_INSTALL_PREFIX=/usr/local/mysql   安装位置
-DMYSQL_UNIX_ADDR=/tmp/mysql.sock         指定 socket(套接字)文件位置
-DEXTRA_CHARSETS=all                      扩展字符支持
-DDEFAULT_CHARSET=utf8                    默认字符集
-DDEFAULT_COLLATION=utf8_general_ci       默认字符校对
-DWITH_MYISAM_STORAGE_ENGINE=1            安装 myisam 存储引擎
-DWITH_INNOBASE_STORAGE_ENGINE=1          安装 innodb 存储引擎
-DWITH_MEMORY_STORAGE_ENGINE=1            安装 memory 存储引擎
-DWITH_READLINE=1                         支持 readline 库
-DENABLED_LOCAL_INFILE=1                  启用加载本地数据
-DMYSQL_USER=mysql                        指定 mysql 运行用户
-DMYSQL_TCP_PORT=3306                     指定 mysql 端口

MySQL 安装后需要调整相应配置文件才能正常运行

4.5 修改MySQL目录的用户归属

[root@server mysql-5.5.48]$ cd /usr/local/mysql/
[root@server mysql]$ chown -R root .
[root@server mysql]$ chown -R mysql data/

4.6 生成配置文件,并初始化授权表

[root@server mysql]$ cp -a /lamp/mysql-5.5.48/support-files/my-medium.cnf /etc/my.cnf
cp:是否覆盖"/etc/my.cnf"? y
#复制MySQL配置文件到指定位置,覆盖掉系统自带文件
[root@server mysql]$ ./scripts/mysql_install_db --user=mysql
#创建数据库授权表,初始化数据库,相当于安装完操作系统后的引导设置(添加第一个用户)
查看到有两个 “OK” 则成功
Installing MySQL system tables...
210108 10:02:48 [Note] ./bin/mysqld (mysqld 5.5.48-log) starting as process 106749 ...
OK
Filling help tables...
210108 10:02:48 [Note] ./bin/mysqld (mysqld 5.5.48-log) starting as process 106756 ...
OK

报错提示:FATAL ERROR:Could not find ./bin/my_print_defaults
原因:mysql_install_db初始化所调用文件时使用的是相对路径,路径不在/usr/local/mysql时,是无法调用my_print_defaults文件并初始化成功的。

4.7 启动MySQL服务

用原本源代码的方式去使用和启动mysql

[root@server mysql]$ /usr/local/mysql/bin/mysqld_safe --user=mysql &

4.8 设置mysql 密码并登陆

[root@server mysql]$ /usr/local/mysql/bin/mysqladmin -uroot password 123
[root@server mysql]$ /usr/local/mysql/bin/mysql -u root -p123
Welcome to the MySQL monitor.  Commands end with ; or \g.
Your MySQL connection id is 2
Server version: 5.5.48-log Source distribution

Copyright (c) 2000, 2016, 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> 

五、安装 PHP

5.1 安装 PHP

[root@server php-7.0.7]$ cd /lamp/php-7.0.7/
[root@server php-7.0.7]$ ./configure --prefix=/usr/local/php/ --with-config-file-path=/usr/local/php/etc/ --with-apxs2=/usr/local/apache2/bin/apxs --with-libxml-dir=/usr/local/libxml2/ --with-jpeg-dir=/usr/local/jpeg6/ --with-png-dir=/usr/local/libpng/ --with-freetype-dir=/usr/local/freetype/ --with-mcrypt=/usr/local/libmcrypt/ --with-mysqli=/usr/local/mysql/bin/mysql_config --enable-soap --enable-mbstring=all --enable-sockets --with-pdo-mysql=/usr/local/mysql --with-gd --without-pear
[root@server php-7.0.7]$ make && make install

选项详解:

--with-config-file-path=/usr/local/php/etc/     指定配置文件目录
--with-apxs2=/usr/local/apache2/bin/apxs        指定 apache 动态模块位置
--with-libxml-dir=/usr/local/libxml2/           指定 libxml 位置
--with-jpeg-dir=/usr/local/jpeg6/               指定 jpeg 位置
--with-png-dir=/usr/local/libpng/               指定 libpng 位置
--with-freetype-dir=/usr/local/freetype/        指定 freetype 位
--with-mcrypt=/usr/local/libmcrypt/             指定 libmcrypt 位置
--with-mysqli=/usr/local/mysql/bin/mysql_config 指定 mysqli 位置
--with-gd                                       启用 gd 库 --enable-soap 支持 soap 服务
--enable-mbstring=all                           支持多字节,字符串
--enable-sockets                                支持套接字
--with-pdo-mysql=/usr/local/mysql               启用 mysql 的 pdo 模块支持
--without-pear                                  不安装 pear(安装 pear  需要连接互联网)

PHP 安装后需要调整相应配置文件才能正常运行

5.2 生成配置文件

[root@server php-7.0.7]$ mkdir /usr/local/php/etc
[root@server php-7.0.7]$ cp -a php.ini-production /usr/local/php/etc/php.ini

5.3 修改 apache 配置文件

(使其能够识别 *.php 的文件,并能通过 PHP 模块调用 PHP 进行页面解析)

[root@server php-7.0.7]$ vim /usr/local/apache2/etc/httpd.conf
#添加下面两行
AddType application/x-httpd-php .php .phtml 
AddType application/x-httpd-php-source .phps
[root@server php-7.0.7]$ /usr/local/apache2/bin/apachectl restart
#重启 apache 服务
[root@server php-7.0.7]$ vim /usr/local/apache2/htdocs/1.php
<?php
        phpinfo();
?>
#生成php文件,解析测试

测试 PHP 页面能够正常解析(即 apache 与 php 的连通性)

在这里插入图片描述

5.4 为 PHP 安装 openssl 模块

[root@server php-7.0.7]$ cd ext/openssl/
[root@server openssl]$ mv config0.m4 config.m4
[root@server openssl]$ /usr/local/php/bin/phpize 
Configuring for:
PHP Api Version:         20151012
Zend Module Api No:      20151012
Zend Extension Api No:   320151012
[root@server openssl]$ ./configure --with-openssl --with-php-config=/usr/local/php/bin/php-config
[root@server openssl]$ make && make install

5.5 为 PHP 安装 memcache 模块

[root@server lamp]$ cd /lamp/
[root@server lamp]$ unzip pecl-memcache-php7.zip
[root@server lamp]$ cd pecl-memcache-php7
[root@server pecl-memcache-php7]$ /usr/local/php/bin/phpize 
[root@server pecl-memcache-php7]$ ./configure --with-php-config=/usr/local/php/bin/php-config
[root@server pecl-memcache-php7]$ make && make install

5.6 修改 php 配置文件

(使其能够识别并调用 openssl 和 memcache 模块)

[root@server pecl-memcache-php7]$ vim /usr/local/php/etc/php.ini 
#在; extension_dir = "./"后添加上路径,以及调用的库文件
extension_dir="/usr/local/php/lib/php/extensions/no-debug-zts-20151012/"
extension="openssl.so";
extension="memcache.so";
[root@server pecl-memcache-php7]$ /usr/local/apache2/bin/apachectl restart

5.7 安装 memcached 服务

[root@server pecl-memcache-php7]$ cd /lamp/memcached-1.4.17/
[root@server memcached-1.4.17]$ yum -y install libevent-devel
[root@server memcached-1.4.17]$ ./configure --prefix=/usr/local/memcache
[root@server memcached-1.4.17]$ useradd -r -s /sbin/nologin memcache
[root@server memcached-1.4.17]$ /usr/local/memcache/bin/memcached -umemcache &
[root@server memcached-1.4.17]$ netstat -antp |grep 11211

5.8 安装 phpMyAdmnin 管理页面

[root@server phpMyAdmin-4.1.4-all-languages]$ cd /lamp/
[root@server lamp]$ cp -a phpMyAdmin-4.1.4-all-languages /usr/local/apache2/htdocs/phpmyadmin
[root@server lamp]$ cd /usr/local/apache2/htdocs/phpmyadmin/
[root@server phpmyadmin]$ cp -a config.sample.inc.php config.inc.php
[root@server phpmyadmin]$ vim config.inc.php
$cfg['Servers'][$i]['auth_type'] = 'cookie';
#改为
$cfg['Servers'][$i]['auth_type'] = 'http';

浏览器访问 http://服务器IP地址/phpmyadmin/index.php
用户名 root 密码 为 MySQL 设置时的指定 root 密码 123
在这里插入图片描述

5.9 设置 apache、MySQL、memcache 开启自启动

[root@server phpmyadmin]$ vim /etc/rc.local 
/usr/local/apache2/bin/apachectl start
/usr/local/mysql/bin/mysqld_safe --user=mysql &
/usr/local/memcache/bin/memcached -umemcache &

六、项目迁移 (搭建个人博客)

6.1 上传文件到服务器上

[root@server ~]$ tar -xf 1.1-17.10.30-release.tar.gz 
[root@server ~]$ cp build/ /usr/local/apache2/htdocs/blog
[root@server ~]$ cd /usr/local/apache2/htdocs/
[root@server htdocs]$ setfacl -m u:daemon:rwx blog/
#给 daemon blog目录的权限,在安装时可以创建config。inc.php文件

6.2 创建数据库

访问 phpmyadmin 点击"New"创建 typecho 数据库
在这里插入图片描述

6.3 安装 blog

再访问 http://服务器IP地址/blog,点击"install.php"来进行安装
在这里插入图片描述

在这里插入图片描述

6.4 访问

http://192.168.154.10/blog/index.php
#前端网页地址
http://192.168.154.10/blog/admin/index.php
#后台页面地址(账户密码是在安装时设置的)

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值