LAMP环境搭建

LAMP是Linux Apache MySQL PHP 的简写,即把Apache 、MySQL以及PHP安装在Linux系统上,组成一个环境来运行PHP的脚本语言,通常是网站。我们可以把Apache+PHP安装在一台机器上,再把MySQL安装在另外一台机器上,也可以把它们三个安装在一台机器上。但Apache和PHP需要在同一台机器上,这是因为PHP是作为Apache的一个模块存在的,它们必须在一起。

下面的执行过程如果遇到麻烦,欢迎交流。

1.安装MySQL

我们平时是通过源码包安装MySQL的,但是由于它的编译时间比较长,在这里我建议安装二进制免编译包。源码包都是可以更改的C或C++语言编写的源码文件,而免编译的二进制包就是已经编译过的文件再打包提供给我们。目前常用的mysql-5.6以上版本,所以这里使用mysql-5.6版本做演示。(我的系统是CentOS 7 64位)

建议以后把所有软件包都放在这个目录下面
#cd /usr/local/src/
下载源码包
#wget http://mirrors.163.com/mysql/Downloads/MySQL-5.6/mysql-5.6.39-linux-glibc2.12-x86_64.tar.gz

下面进行初始化:

 解压
# tar zxf mysql-5.6.39-linux-glibc2.12-x86_64.tar.gz移动位置,自己先确认移动之前mysql这个目录是空的或者不存的
# mv mysql-5.6.39-linux-glibc2.12-x86_64 /usr/local/mysql建立MySQL用户,因为启动MySQL需要该用户
# useradd -s /sbin/nologin mysql进入到移动后的mysql目录中
# cd /usr/local/mysql/创建datadir,数据库文件会放到这里面
# mkdir -p /data/mysql更改权限,不该的话后续操作会出问题
# chown -R mysql:mysql /data/mysql下面一条命令的--user表示数据库以哪个用户的身份进行运行,--datadir表示定义数据的安装目录
# ./scripts/mysql_install_db --user=mysql --datadir=/data/mysql

在执行上面最后一条命令可能会报下面的错误信息:

FATA ERROR: please install the following Perl modules before executing ./scripts/mysql_install_db:Data::Dumper

这是因为缺少perl-Module-Install,使用下面的命令进行安装:

yum install -y perl-Module-Install

配置MySQL

首先复制配置文件,如下所示:

# cp support-files/my-default.cnf /etc/my.cnf

因为系统中默认有my.cnf,所以会提示是否覆盖,这是我们选择直接按“y”即可。 接着使用vim进行修改配置文件

# vi /etc/my.cnf

修改成如下效果:

[mysqld]# Remove leading # and set to the amount of RAM for the most important data
# cache in MySQL. Start at 70% of total RAM for dedicated server, else 10%.innodb_buffer_pool_size = 128M# Remove leading # to turn on a very important data integrity option: logging
# changes to the binary log between backups.
log_bin = liu-server# These are commonly set, remove the # and set as required.basedir = /usr/local/mysql
datadir = /data/mysql
port = 3306
server_id = 128
socket = /tmp/mysql.sock# Remove leading # to set options mainly useful for reporting servers.
# The server defaults are faster for transactions and fast SELECTs.
# Adjust sizes as needed, experiment to find the optimal values.join_buffer_size = 128M
sort_buffer_size = 2M
read_rnd_buffer_size = 2Msql_mode=NO_ENGINE_SUBSTITUTION,STRICT_TRANS_TABLES

然后复制启动脚本文件并修改属性,如下所示:

# cp support-files/mysql.server /etc/init.d/mysqld
# chmod 755 /etc/init.d/mysqld

然后修改启动脚本,如下所示:

# vim /etc/init.d/mysqld

把datadir设置成datadir=/data/mysql(前面初始化数据库时定义的目录)。把启动脚本加入系统启动项,设定开机启动并启动MySQL,如下所示:

# chkconfig --add mysqld
# chkconfig mysqld on
# service mysqld start

如果启动不了,请到/data/mysql/目录下查看错误日志,这个日志的名字通常是主机名.err。 检查MySQL是否启动,如下所示:

# ps aux | grep mysqld
root      59075  0.0  0.0 112676   984 pts/0    R+   18:04   0:00 grep --color=auto mysqld# netstat -lnp | grep 3306
tcp6       0      0 :::3306                 :::*                    LISTEN      4088/mysqld

安装Apache

这里值得提醒的是人们说Apache的时候就是在说httpd。目前使用较多的版本是2.2或2.4,两个版本的安装大同小异,配置也差别不大。不过2.4版本有一个比较麻烦的事情就是需要手动编译安装apr以及apr-util包。

#cd /usr/local/src/下载源码包# wget http://mirrors.cnnic.cn/apache/httpd/httpd-2.4.34.tar.gz
# wget http://mirrors.cnnic.cn/apache/apr/apr-1.6.3.tar.gz
# wget http://mirrors.cnnic.cn/apache/apr/apr-util-1.6.1.tar.gz

解压下载好的源码包:

# tar zxvf httpd-2.4.34.tar.gz
# tar zxvf apr-1.6.3.tar.gz
# tar zxvf apr-util-1.6.1.tar.gz

其中apr可以理解成一个通用的函数库,主要为上层应用提供支持。

接着编译安装

# cd /usr/local/src/apr-1.6.3
# ./config --prefix=/usr/local/apr
# make && make install
# cd /usr/local/src/apr-util-1.6.1
# ./config --prefix=/usr/local/apr-util --with-apr=/usr/local/apr
# make && make install

如果出现在安装apr-util时出现如下错误:

# make: ***[libaprutil-1.la] error 1

解决办法是:

yum install -y expat-devel

安装完a后重新编译安装,再继续安装httpd:

# cd /usr/local/src/httpd-2.4.34# yum install -y pcre pcre-devel# ./configure --prefix=/usr/local/apache2 --with-apr=/usr/local/apr --with-apr-util=/usr/local/apr-util --with-pcre=/usr/local/pcre --enable-mods-shared=most --enable-so --with-included-apr

如果在执行上面的命令出现下面的错误命令:

make[2]: *** [htpasswd] Error 1
make[2]: Leaving directory `/usr/local/httpd-2.4.34/support'
make[1]: *** [all-recursive] Error 1
make[1]: Leaving directory `/usr/local/httpd-2.4.34/support'
make: *** [all-recursive] Error 1

可以通过下面的办法解决: 把解压好的apr和apr-util 复制到 /httpd-2.4.34/srclib/ 中去

# cp -r apr-1.6.1 /usr/local/src/httpd-2.4.34/srclib/apr
# cp -r apr-util-1.6.3 /usr/local/src/httpd-2.4.34/srclib/apr-util# make
# make install

因为我的CENTOS 是 64bit的,如果在编译配置没有指定 —with-included-apr的具体引用路径,导致找不到相应的库文件,而 —with-included-apr 默认是查找/usr/lib下的库文件,而,正确的引用应该是/usr/lib64下的。这类情况在64bit下非常常见,请大家多注意!

检验是否成功:

# ls /usr/local/apache2.4/modules/

出现许多以.so结尾的文件,代表成功。

安装PHP

# cd /usr/local/src
# wget http://cn2.php.net/distributions/php-5.6.32.tar.bz2解压下载后的源码包# bzip2 -d php-5.6.32.tar.bz2
# tar xf php-5.6.32.tar
./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-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
错误1:configure: error: xml2-config not found. Please check your libxml2 installation.
解决方法:yum install -y libxml2-devel错误2:configure: error: Cannot found Openssl's <evp.h>
解决方法:yum install -y openssl openssl-devel错误3:configure: error: jpeglib.h not found.
解决方法: yum install -y libjpeg libjpeg-devel  错误4:configure: error: png.h not found.
解决方法:yum install -y libpng libpng-devel错误5:configure: error: freetype-config not found.
解决方法:yum install -y freetype freetype-devel错误6:configure: error: mcrypt.h not found. Please reinstall libmcrypt.
解决方法:yum install -y epel-release
          yum install -y libmcrypt-devel
 # make && make install

这时候请耐心等待,需要几分钟的时间。

复制配置文件

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

配置httpd支持PHP

httpd的主配置文件为 /usr/local/apache2.4/conf/httpd.conf,编辑这个文件

 # vim /usr/local/apache2.4/conf/httpd.conf

搜索Servername,把#ServerName www.example.com:80前面的#号删除。找到如下内容:

 <Directory />
   AllowOverride none
   Require all denied
</Directory>

修改成:

 <Directory />
   AllowOverride none
   Require all granted
</Directory>

修改该行的目的是,允许所有的请求。再继续搜索下面这一行:

#AddType application/x-gzip .tgz

删除前面的#,并在该行的下面添加一行:

AddType application/x-httpd-php .php

接着找到下面这一段:

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

将该行修改为:

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

测试LAMP是否搭建成功

启动httpd之前需要检验配置文件是否正确,如下所示:

 #/usr/local/apache2.4/bin/apachectl -t

如果配置正确则会显示“Syntax OK”。否则继续修改配置文件httpd.conf。启动httpd的命令如下:

 #/usr/local/apache2.4/bin/apachectl start

查看是否启动的命令如下:

# netstat -lnp | grep httpd
tcp6       0      0 :::80                   :::*                    LISTEN      58352/httpd

若显示上面的结果则表示启动成功!

原文发布于微信公众号 - 奕知伴解(yzbjchat)

原文发表时间:2018-09-02

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

扫码关注云+社区

领取腾讯云代金券