001_LAMP 环境搭建

LAMP 环境搭建

一、MySQL 部署安装

1. MySQL下载

官方下载地址:http://dev.mysql.com/downloads/mysql/#downloads

镜像文件下载:https://downloads.mysql.com/archives/community/

1.1 下载MySQL安装程序

cd /usr/local/src/
wget ftp://ftp.stu.edu.tw/pub/Unix/Database/Mysql/Downloads/MySQL-5.1/mysql-5.1.73-linux-i686-glibc23.tar.gz

1.2 初始化安装

#### 解压安装包
tar zxvf /usr/local/src/mysql-5.1.73-linux-i686-glibc23.tar.gz
#### 移动解压的安装文件到/usr/local 目录下,并修改名称为mysql
mv mysql-5.1.73-linux-i686-glibc23 /usr/local/mysql
#### 建立MySQL账户
useradd -s /sbin/nologin mysql
#### 创建数据存放目录
mkdir -p /data/mysql ; chown -R mysql:mysql /data/mysql
#### 初始化数据库
cd /usr/local/mysql
./scripts/mysql_install_db --user=mysql --datadir=/data/mysql
#### user 定义数据库的所属主,datadir 定义数据库数据存放位置,建议放到大空间的分区上,这个目录需要创建
#### 这一步骤很关键,出现两个“OK” 说明执行正确。

1.3 修改配置、启动文件等

#### 拷贝配置文件
cp support-files/my-large.cnf /etc/my.cnf

#### 拷贝启动脚本文件、并修改属性
cp support-files/mysql.server  /etc/init.d/mysqld
chmod 755 /etc/init.d/mysqld

#### 修改启动脚本文件
vim /etc/init.d/mysqld
修改以下参数修("basedir"MySQL的安装程序目录;"datadir"MySQL数据存放目录,前面初始化数据库时定义的目录)
basedir=/usr/local/mysql
datadir=/data/mysql

1.4 启动

将启动脚本加入系统服务项,设置开机启动、并开启服务
添加服务:chkconfig --add mysqld
设置开机启动:chkconfig mysqld on
启动MySQL:service mysqld start

如果启动不了,请到 /data/mysql/ 下查看错误日志,这个日志通常是主机名.err

检查MySQL是否启动:ps aux |grep mysqld

二、Apache 部署安装

1. Apache下载

Apache官网下载地址:http://httpd.apache.org/

下载Apache安装程序

cd /usr/local/src/

wget http://apache.fayea.com/httpd/httpd-2.4.37.tar.gz

解压:tar jvxf httpd-2.4.37.tar.bz2

2. 编译安装

2.1 安装依赖库

yum install -y pcre pcre-devel apr apr-devel zlib-devel gcc

2.2 配置编译参数

cd httpd-2.4.37

./configure \
--prefix=/usr/local/httpd \
--with-included-apr \
--enable-so \
--enable-deflate=shared \
--enable-expires=shared \
--enable-rewrite=shared \
--with-pcre

--prefix 指定安装位置;
--with-included-apr apache依赖包 能让httpd跨平台运行;
--enable-so 表示启用DSO;
--enable-deflate=shared 表示共享的方式编译deflate,后面的参数同理;
--with-pcre 正则相关的运行库。

编译安装:make && make install

以上操作可以使用 echo $? 来检查是否正确执行,返回值为‘0’为正常;否则需要根据错误提示去解决问题。

2.3 相关报错

  • 报错:
    configure: error: Bundled APR requested but not found at ./srclib/. Download and unpack the corresponding apr and apr-util packages to ./srclib/.

  • 解决方法:

 cd /usr/local/src/httpd-2.4.37/srclib
#### 下载 apr
wget http://mirror.bit.edu.cn/apache/apr/apr-1.6.5.tar.gz
#### 解压、改名
tar -zxvf apr-1.6.5.tar.gz
mv apr-1.6.5 apr
#### 下载apr-util
wget http://mirror.bit.edu.cn/apache/apr/apr-util-1.6.1.tar.gz
#### 解压、改名
tar -zxvf apr-util-1.6.1.tar.gz
mv apr-util-1.6.1 apr-util
#### 参考网址:http://www.cnblogs.com/llius/p/5110628.html

3. Apache 相关参数

  • Apache模块

    • /usr/local/apache/bin/apachectl -M列出相关模块(-l 列出静态模块、-t查看配置文件是否有语法错误),

    • 显示的模块名(shared)为动态模块,显示的模块名(static)是静态模块;

  • 动态(shared)模块文件存放位置 /usr/local/apache/modules/

  • 动态模块文件为绿色.so结尾模块文件(动态文件为共享文件)
    如:httpd.exp libphp5.so mod_deflate.so mod_expires.so mod_rewrite.so

  • 静态(static)模块编译后文件存放位置/usr/local/apache/bin/httpd

4. 启动Apache

启动:/usr/local/httpd/bin/apachectl start
重启:/usr/local/httpd/bin/apachectl restart
停止:/usr/local/httpd/bin/apachectl stop
重新加载配置:/usr/local/httpd/bin/apachectl graceful(重新加载配置,没有重新启动进程)

DSO: 是Dynamic Shared Objects(动态共享目标)的缩写,它提供了一种在运行时将特殊格式的代码在程序运行需要时,将需要的部分从外存调入内存执行的方法。Apache 支持动态共享模块,也支持静态模块,静态的话,会把需要的目标直接编译进apache的可执行文件中,相比较动态,虽然省去了加载共享模块的步骤,但是也加大了二进制执行文件的空间,变得臃肿。

三、PHP 部署安装

1. 下载php

PHP官方下载地址:http://php.net/downloads.php

下载php安装程序
cd /usr/local/src
wget http://101.96.10.64/cn2.php.net/distributions/php-5.6.39.tar.gz
解压:tar zxf php-5.6.39.tar.gz

2. 编译安装

2.1 安装依赖库

yum install -y libxml2-devel openssl openssl-devel bzip2 bzip2-devel libjpeg libjpeg-devel libpng libpng-devel freetype freetype-devel

2.2 配置编译参数

cd php-5.6.39

./configure \
--prefix=/usr/local/php \
--with-apxs2=/usr/local/httpd/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

编译安装:make && make install

2.3 相关报错

报错内容:configure: error: mcrypt.h not found. Please reinstall libmcrypt.

解决:
rpm -ivh "https://mirrors.tuna.tsinghua.edu.cn/epel/6/i386/epel-release-6-8.noarch.rpm"
yum install -y libmcrypt libmcrypt-devel

因为centos6.x 默认的yum源没有libmcrypt-devel 这个包,所以需要借助第三方yum源。

3. 配置文件

  • PHP配置文件(php.ini) 在/usr/local/php/etc/目录下,默认这个配置文件是空的,需要在源文件中拷贝预配置文件然后进行配置修改;

  • 预配置文件目录:/usr/local/src/php-5.6.39 ,此目录下有两个预配置文件:
    • 开发使用:php.ini-development
    • 是生产使用php.ini-production
  • 正常Web服务器使用直接拷贝:php.ini-production文件并命名为php.ini
    cp /usr/local/src/php-5.6.39/php.ini-production /usr/local/php/etc/php.ini

  • 拷贝后重新加载Apache:/usr/local/httpd/bin/apachectl graceful

四、Apace结合PHP、验证 LAMP

1. Apache结合PHP

  • 编辑Apache主配置文件:
#### 修改主机名
#ServerName www.example.com:80 修改为:ServerName localhost:80
#### 添加PHP解析(AddType application/x-gzip .gz .tgz 在该行下面添加)
AddType application/x-httpd-php .php
#### 增加PHP默认页索引(增加index.php)
<IfModule dir_module>
DirectoryIndex index.html index.php
</IfModule>

2. 测试LAMP

2.1 启动Apache

  • 检查配置文件是否正确:/usr/local/httpd/bin/apachectl -t如果有错误,继续修改httpd.conf, 如果是正确的则显示为 Syntax OK

  • 启动apache:/usr/local/httpd/bin/apachectl start

  • 查看是否启动:
    netstat -lnp |grep httpd 如果有显示下列信息,则启动成功
    tcp 0 0 :::80 :::* LISTEN 7667/httpd

2.2 测试WBE界面解析

  • 使用curl命令简单测试: curl localhost 显示以下字样,配置正确
    <html><body><h1>It works!</h1></body></html>[root@CentOS-1 ~]#

  • 测试是否正确解析PHP,按照下面内容创建PHP页面;
    然后使用curl localhost/1.php测试; 显示php解析正常[root@localhost ~]#配置正确

#### 创建PHP页面
vim /usr/local/httpd/htdocs/1.php
#### PHP页面内容
<?php
echo "php解析正常";
?>

初次使用浏览器访问我们的web服务的时候,你可能无法访问,这是因为防火墙的缘故。请运行下面的命令:
[root@localhost ~]# iptables -F这样就可以清除系统默认的防火墙规则,放行80端口。

LAMP环境是搭建好了,这其实仅仅是安装上了软件而已,而具体的配置还是有很多工作要做的呢?也就是说,你虽然搭建出来了环境,但是如果不会配置细节的东西,相当于没有任何工作经验,所以还是多配置配置apache或者php

五、示例:安装 Discuz 论坛

1. 下载、解压安装

#### 创建安装目录
[root@CentOS-1 ~]#mkdir /data/www
[root@CentOS-1 ~]#cd /data/www
#### 下载Discuz安装程序包
[root@CentOS-1 www]#wget http://download.comsenz.com/DiscuzX/3.2/Discuz_X3.2_SC_GBK.zip
[root@CentOS-1 www]#upzip Discuz_X3.2_SC_GBK.zip
[root@CentOS-1 www]# mv upload/* ./
[root@CentOS-1 www]#rm -rf readme/ uploal/ utility/ Discuz_X3.2_SC_GBK.zip
编辑apache配置文件
[root@CentOS-1 www]# vim /usr/local/httpd/conf/httpd.conf
#### 启用(删除 # ) Include conf/extra/httpd-vhosts.conf
#### 修改配置参数
<Directory />
    AllowOverride none
    Require all denied #改为Require all granted
</Directory>

2. 修改配置文件

[root@CentOS-1 www]# vim /usr/local/httpd/conf/extra/httpd-vhosts.conf
#### 默认有两个样例,删除一个
<VirtualHost *:80>
    ServerAdmin [email protected] #管理员邮箱,这里删除
    DocumentRoot "/data/www" #创建的安装目录位置,这里修改成 /data/www
    ServerName www.chenyue.com #域名地址
    ServerAlias www.123qwe.com #别名(第二域名)
    ErrorLog "logs/dummy-host.example.com-error_log" #错误日志
    CustomLog "logs/dummy-host.example.com-access_log" common #访问日志(这里两个个日志线先用#注释掉,不用)
</VirtualHost>
#### 查看修改的配置是否有错误(Syntax OK 配置正确)
/usr/local/httpd/bin/apachectl -t
#### 启动、重新加载apache
/usr/local/httpd/bin/apachectl start

3. WEB 安装界面

浏览器访问,www.chenyue.com/www.123qwe.com (前提需要在电脑的host文件中,指定域名指向服务器地址)

打开浏览器按照提示安装,出现如图提示;修改对应文件夹权限即可

先看一下apache的进程是什么用户

[root@CentOS-1 www]# ps aux |grep http
root      1444  0.0  1.5  30492 12096 ?        Ss   21:49   0:00 /usr/local/apache/bin/httpd -k start
daemon    1511  0.0  1.3  30624 10312 ?        S    22:05   0:00 /usr/local/apache/bin/httpd -k start
daemon    1512  0.0  1.4  31432 11160 ?        S    22:05   0:00 /usr/local/apache/bin/httpd -k start
daemon    1513  0.0  1.3  30624 10312 ?        S    22:05   0:00 /usr/local/apache/bin/httpd -k start
daemon    1514  0.0  1.4  31472 11224 ?        S    22:05   0:00 /usr/local/apache/bin/httpd -k start
daemon    1515  0.0  1.3  30624 10312 ?        S    22:05   0:00 /usr/local/apache/bin/httpd -k start
daemon    1516  0.0  1.2  30492  9784 ?        S    22:05   0:00 /usr/local/apache/bin/httpd -k start
daemon    1517  0.0  1.2  30492  9784 ?        S    22:05   0:00 /usr/local/apache/bin/httpd -k start
daemon    1518  0.0  1.2  30492  9784 ?        S    22:05   0:00 /usr/local/apache/bin/httpd -k start
daemon    1519  0.0  1.2  30492  9784 ?        S    22:05   0:00 /usr/local/apache/bin/httpd -k start
daemon    1520  0.0  1.2  30492  9784 ?        S    22:05   0:00 /usr/local/apache/bin/httpd -k start
root      1522  0.0  0.0   5980   740 pts/0    S+   22:27   0:00 grep http

这里apache的进程是daemon用户在运行;我们需要将上图中提示的文件夹设置成daemon用户(或者修改文件夹权限是可以的,但是修改后文件夹权限较大不安全;这里修改所属主)
[root@CentOS-1 www]# chown -R daemon config data uc_client/data uc_server/data

刷新浏览器,选择全新安装

出现mysql配置界面,我们先不配置,先将服务器中的mysql配置好,在到这边操作;

4. 配置Mysql

先设置一下Linux MySQL 配置命令mysql(原配置命令:/usr/local/mysql/bin/mysql)

[root@CentOS-1 www]# which mysql                //查看mysql绝对路径
/usr/bin/mysql                                  //这里的mysql是系统自带的rpm包安装的
[root@CentOS-1 www]# rpm -qf /usr/bin/mysql     //查看mysql安装包名
mysql-5.1.71-1.el6.i686
[root@CentOS-1 www]# yum remove mysql           //卸载自带的mysql,自带与我们安装的会有冲突,

mysql被删除,配置的话;可以使用绝对路径/usr/local/mysql/bin/mysql
或重新指定mysql命令绝对路径,写一个path.sh文件

[root@CentOS-1 www]# vim /etc/profile.d/path.sh
#!/bin/bash
export PATH=$PATH:/usr/local/mysql/bin
~
~
~
[root@CentOS-1 www]# source /etc/profile.d/path.sh  //或source !$

现在使用mysql的配置文件,就是之前自己安装的mysql的配置

[root@CentOS-1 www]# which mysql
/usr/local/mysql/bin/mysql        //现在的mysql的绝对路径,是之前自己安装的位置

创建一个库

[root@CentOS-1 www]# mysql
Welcome to the MySQL monitor.  Commands end with ; or \g.
Your MySQL connection id is 5
Server version: 5.1.73-log MySQL Community Server (GPL)

Copyright (c) 2000, 2013, 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> create database discuz;                                                 //创建数据库的语句
Query OK, 1 row affected (0.00 sec)
mysql> grant all on discuz.* to 'discuz'@'localhost' identified by '1234qwer'; //创建用户名:discuz,密码:1234qwer
Query OK, 0 rows affected (0.00 sec)

mysql> Ctrl-C -- exit!
Aborted

WEB界面输入MySQL配置账户等信息,点击“下一步” 安装即可;

猜你喜欢

转载自www.cnblogs.com/cy-8593/p/12333021.html