centos7搭建LAMP


 

 

 

 LAMP是Linux  Apache  MySQL  PHP的缩写,即把Apache、MySQL以及PHP安装在Linux系统上,组成一个环境来运行PHP的脚本语言。Apache是最常用的Web服务软件,而MySQL是比较小型的数据库软件。三个角色可以安装在一台机器上,也可以分开(但httpd和php要在一起的)

步骤一、安装Mysql

1)下载源码包到/usr/local/src/目录

[root@localhost lamp]# wget http://mirrors.sohu.com/mysql/MySQL-5.6/mysql-5.6.39-linux-glibc2.12-x86_64.tar.gz

2)解压源码包

[root@localhost lamp]# tar -zxvf mysql-5.6.39-linux-glibc2.12-x86_64.tar.gz

3)检测/usr/local/目录下有没有mysql这个文件夹,有的话修改名字为mysql_old

[root@localhost lamp]# [ -d /usr/local/mysql ] && mv /usr/local/mysql /usr/local/mysql_old

4)移动解压后的mysql到/usr/local目录下

[root@localhost lamp]# mv mysql-5.6.39-linux-glibc2.12-x86_64 /usr/local/mysql

5)创建MySQL用户,启动MySQL需要该用户

[root@localhost lamp]# useradd -s /sbin/nologin mysql

6)创建MySQL数据库文件存放目录/data/mysql并更改权限

[root@localhost ~]# mkdir -p /data/mysql
[root@localhost ~]# chown -R mysql:mysql /data/mysql/

7)进入/usr/local/mysql目录,初始化

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

报错

解决方法:yum install perl gcc kernel-devl

报错

解决方法:yum install -y perl-Module-Install

报错

解决方法:yum install libaio* -y

8)安装完成后执行echo $?  输出结果为0,则表示初始化成功

9)复制配置文件:cp support-files/my-default.cnf /etc/my.cnf;    (因为系统默认有my.cnf文件,所以会提示覆盖)

[root@localhost mysql]# cp support-files/my-default.cnf /etc/my.cnf

10)修改配置文件:vim /etc/my.cnf

11)复制启动脚本,并修改其属性

[root@localhost mysql]# cp support-files/mysql.server /etc/init.d/mysqld

[root@localhost mysql]# chmod 755 /etc/init.d/mysqld

12)修改启动脚本:vim /etc/init.d/mysqld

13)启动服务

[root@localhost mysql]# chkconfig --add mysqld    加入系统服务列表
[root@localhost mysql]# chkconfig  mysqld on        设置开机自启
[root@localhost mysql]# service mysqld start        启动服务
ln -s /usr/local/mysql/bin/mysql /usr/bin

14)检查是否启动成功

[root@localhost mysql]# ps aux | grep mysqld

 

步骤二、安装Apache

 1)下载源码包与两个必须的依赖包

[root@localhost lamp]# wget http://mirrors.sohu.com/apache/httpd-2.4.37.tar.gz              
[root@localhost lamp]# wget https://mirrors.tuna.tsinghua.edu.cn/apache/apr/apr-1.6.5.tar.gz
[root@localhost lamp]# wget https://mirrors.tuna.tsinghua.edu.cn/apache/apr/apr-util-1.6.1.tar.gz

2)解压三个包

[root@localhost lamp]# tar -zxvf apr-1.6.5.tar.gz
[root@localhost lamp]# tar -zxvf apr-util-1.6.1.tar.gz
[root@localhost lamp]# tar -zxvf httpd-2.4.37.tar.gz

3)安装apr(友情提示:安装软件时,最好每执行一步,就echo $?看看是否执行成功!)

[root@localhost apr-1.6.5]# cd apr-1.6.5
[root@localhost apr-1.6.5]# ./configure --prefix=/usr/local/apr
[root@localhost apr-1.6.5]# make &&make install
[root@localhost apr-1.6.5]# echo $?
0

4)安装apr-util

报错

解决方法:yum install -y expat-devel

[root@localhost apr-util-1.6.1]# cd apr-util-1.6.1
[root@localhost apr-util-1.6.1]# ./configure --prefix=/usr/local/apr-util --with-apr=/usr/local/apr
[root@localhost apr-util-1.6.1]# make && make install   

5)安装httpd

报错

 

解决方法:yum install -y pcre pcre-devel

报错

说明:缺少了xml相关的库,需要安装libxml2-devel包。直接安装并不能解决问题,因为httpd调用的apr-util已经安装好了,但是apr-util并没有libxml2-devel包支持

解决办法

  # 安装libxml2-devel包
    yum install -y libxml2-devel
    # 删除apr-util安装目录,并重新编译安装
    rm -rf /usr/local/apr-util   
    cd /usr/local/src/apr-util-1.6.1 
    # 这一步很重要,必须清除之前配置时的缓存
    make clean 
    ./configure --prefix=/usr/local/apr-util --with-apr=/usr/local/apr
    make && make install
    
    # 重新编译安装httpd
    cd /usr/local/src/httpd-2.4.29
    # 同样要清理之前的缓存十分重要
    make clean

重新安装httpd

[root@localhost httpd-2.4.37]# cd httpd-2.4.37
[root@localhost httpd-2.4.37]# ./configure --prefix=/usr/local/apache2.4  --with-apr=/usr/local/apr --with-apr-util=/usr/local/apr-util --enable-so --enable-mods-shared=most
[root@localhost httpd-2.4.37]# make && make install
[root@localhost httpd-2.4.37]# echo $?
0

 步骤三、安装PHP

1)下载源码包

[root@localhost lamp]# wget http://mirrors.sohu.com/php/php-5.6.9.tar.gz

2)解压源码包

[root@localhost lamp]# tar -zxvf php-5.6.9.tar.gz

3)编译安装

[root@localhost php-5.6.9]#  ./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-pdo-mysql=/usr/local/mysql --with-mysqli=/usr/local/mysql/bin/mysql_config --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
[root@localhost php-5.6.9]# make && make install

 

报错

解决方法

:yum install -y openssl openssl-devel

报错

解决方法:yum install -y bzip2 bzip2-devel

报错

解决方法:yum install -y libjpeg libjpeg-devel

报错

解决方法:yum install -y libpng libpng-devel

报错

解决方法:yum install -y lfreetype freetype-devel

报错

解决方法:yum install -y epel-release       yum install -y libmcrypt-devel 两个必须分开装,因为centosyum源里没有libmcrypt-devel这个包

4)复制配置文件

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

 

步骤四、让http支持php

1)修改httpd主配置文件/usr/local/apache2.4/conf/httpd.conf

搜索ServerName,删除前面的 '#'

找到<Directory />,修改成

在AddType增加一行:

定义默认首页

 

步骤五、测试LAMP是否成功

1)测试配置文件是否正确

[root@localhost conf]# /usr/local/apache2.4/bin/apachectl -t
Syntax OK

2)启动服务

[root@localhost conf]# /usr/local/apache2.4/bin/apachectl start

3)客户端测试是否成功解析php代码

 

HTTP配置:

(1)配置虚拟主机

编辑httpd配置文件httpd.conf:vim /usr/local/apache2.4/conf/httpd.conf

在末尾加入

#Virtual hosts
Include conf/extra/httpd-vhosts.conf      导入这个配置文件

然后编辑虚拟主机的配置文件:vim /usr/local/apache2.4/conf/extra/httpd-vhosts.conf

<VirtualHost *:80>
    DocumentRoot "/usr/local/apache2.4/htdocs/aa"   //定义网站的位置
    ServerName defaule.com      //网站的域名
    ServerAlias www.defaule.com
    ErrorLog "logs/dummy-host.example.com-error_log"   //错误日志
    CustomLog "logs/dummy-host.example.com-access_log" common  //访问日志
</VirtualHost>

这样一个<VirtualHost>***</VirtualHost>就是一个虚拟主机了

重启httpd服务

[root@localhost aa]# /usr/local/apache2.4/bin/apachectl restart

创建虚拟网站,客户端测试访问

 

2)配置用户认证

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

 接下来就是创建密码文件:(-c为create, -m为MD5加密;第二次就不用-c了,否则会清空密码文件)

[root@localhost aa]# /usr/local/apache2.4/bin/htpasswd -cm /usr/local/apache2.4/htdocs/aa/.htpasswd admin
New password:
Re-type new password:
Adding password for user admin
[root@localhost aa]# /usr/local/apache2.4/bin/apachectl -t 检测配置文件是否正确
Syntax OK  
[root@localhost aa]# /usr/local/apache2.4/bin/apachectl graceful 动态加载配置文件

 

3)配置域名跳转

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

 在<VirtualHost>站点加入下面的代码

 

 编辑httpd配置文件httpd.conf:vim /usr/local/apache2.4/conf/httpd.conf

打开rewrite模块

 

4)配置访问日志

定义访问日志的格式在主配置文件httpd.conf

这里为日志的输出格式

再修改虚拟主机配置文件

修改之后日志会详细很多

 日志过滤掉图片、js、css等静态文件,节约磁盘容量,并且做日志切割,一天一个文件! 在站点的配置文件vhost中加入过滤代码:

 

5)配置静态文件过期时间

在虚拟主机配置文件中添加

 

PHP配置:

    (1)查看php配置文件所在路径:/usr/local/php/bin/php -i |grep -i "loaded configaration file"

image.png

        设置时区:vim /usr/local/php/etc/php.ini

        image.png

        (2)禁用一些php内置的危险函数

     image.png

        (3)配置日志error_log

            打开php配置文件php.ini:vim /usr/local/php/etc/php.ini

        # 修改一下的设置项 log_errors = On error_log = /var/log/php/php_errors.log error_reporting = E_ALL & ~E_NOTICE display_errors = Off
 

            然后创建错误日志存放目录,并修改权限

            image.png

        (4)配置open_basedir

            open_basedir的作用是将网站限定在指定的目录里,万一一个站点被黑了,也不会影响其他的站点。

            如果直接在php配置文件设置open_basedir参数的,就是所有的站点都定义在一起了,起不到open_basedir的作用。

            下面介绍在每个站点的独立虚拟主机上配置open_absedir:

            image.png

        (5)PHP动态扩展模块安装

            查看php加载了哪些功能模块:

            /usr/local/php/bin/php -m

            安装php的redis扩展模块:

            ①下载模块:wget https://codeload.github.com/phpredis/phpredis/zip/develop

            ②重命名:mv develop phpredis-develop.zip; 解压:unzip phpredis-develop.zip

            ③生成可执行文件:cd phpredis-develop/ ;   /usr/local/php/bin/phpize

                报错:image.png

                安装:yum install -y autoconf

            ④编译安装 三部曲:./configure    make   make install 

        ./configure --with-php-config=/usr/local/php/bin/php-config make && make install
 

            ⑤查看安装的模块文件:ls /usr/local/php/lib/php/extensions/no-debug-zts-20131226/

            ⑥编辑php配置文件:echo "extension = redis.so" >> /usr/local/php/etc/php.ini

            ⑦检验:/usr/local/php/bin/php -m|grep redis


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM