首先确保系统可以联网。设置IP地址以及虚拟机安装linux在此略过。本文采用centos6.7 64位minimal版、php5.6.16、httpd-2.4.18、mysql-5.5.47版搭建lamp环境。默认设置软件下载目录/usr/local/src,软件安装目录/app/local/下,安装顺序是apache→mysql→php。通过搜狐镜像获取apache、mysql、php
搜狐镜像:http://mirrors.sohu.com/
wget http://mirrors.sohu.com/apache/httpd-2.4.18.tar.gz#若是提示没有wget命令则yum -y install wget
wget http://mirrors.sohu.com/mysql/MySQL-5.5/mysql-5.5.47.tar.gz
wget http://mirrors.sohu.com/php/php-5.6.12.tar.bz2
wget http://www.apache.org/dist/apr/apr-1.5.2.tar.gz
wget http://www.apache.org/dist/apr/apr-util-1.5.4.tar.gz
wget https://sourceforge.net/projects/pcre/files/pcre/8.10/pcre-8.10.tar.gz
wget http://xmlsoft.org/sources/libxml2-2.7.4.tar.gz
wget ftp://mcrypt.hellug.gr/pub/crypto/mcrypt/libmcrypt/libmcrypt-2.5.7.tar.gz
wget ftp://ftp.cn.debian.org/gentoo/distfiles/zlib-1.2.5.1.tar.gz
wget http://zlib.net/zlib-1.2.8.tar.gz
wget https://sourceforge.net/projects/libpng/files/libpng12/1.2.56/libpng-1.2.56.tar.xz
wget http://www.ijg.org/files/jpegsrc.v9b.tar.gz
wget https://sourceforge.net/projects/freetype/files/freetype2/2.4.12/freetype-2.4.12.tar.bz2
wget https://github.com/libgd/libgd/archive/gd-2.1.1.tar.gz
wget http://ftp.ntu.edu.tw/gnu/autoconf/autoconf-2.53.tar.gz
wget https://github.com/libgd/libgd/releases/download/gd-2.1.1/libgd-2.1.1.tar.bz2
wget https://cmake.org/files/v3.1/cmake-3.1.3.tar.gz
首先安装相应的库文件:
yum -y install xz libXpm-devel lua-devel libxslt-devel gcc gcc-c++libjpeg libjpeg-devel glibc glibc-devel glib2 glib2-devel bzip2 bzip2-devel ncurses ncurses-devel curl curl-devel e2fsprogs e2fsprogs-devel krb5 krb5-devel libidn libidn-devel openssl openssl-devel openldap openldap-devel nss_ldap openldap-clients openldap-servers
新建相应的目录和用户和用户组:
mkdir -p /app/local/{php,apache,mysql,data}
groupadd -g 500 www
useradd -u 500 -g 500 -G 500 -s /sbin/nologin www
groupadd mysql
useradd -g mysql mysql -s /bin/false
#cd /usr/local/src/
#tar zxvf apr-1.5.2.tar.gz
#cd apr-1.5.2
#./configure --prefix=/usr/local/apr
报错提示:cannot remove `libtoolT’: No such file or directory ,
解决办法:编辑 configure文件,查找 $RM "$cfgfile" 这个地方,用#注释掉,然后就可以了
#./configure --prefix=/usr/local/apr
#make && make install
#cd ../
#tar zxvf apr-util-1.5.4.tar.gz
#cd apr-util-1.5.4
#./configure --prefix=/usr/local/apr-util --with-apr=/usr/local/apr/bin/apr-1-config
#make && make install
#cd../
#tar zxvf pcre-8.10.tar.gz
#cd pcre-8.10
#./configure --prefix=/usr/local/pcre
#make && make install
#cd ../
安装Apache
#tar zxvf httpd-2.4.18.tar.gz
#cd httpd-2.4.18
#./configure --prefix=/app/local/apache --enable-mods-shared=all --enable-so --enable-proxy-ajp --enable-rewrite --with-apr=/usr/local/apr --with-apr-util=/usr/local/apr-util --with-pcre=/usr/local/pcre
#make && make install
#cd ../
#chown -R www:www /app/local/apache/htdocs/
#chmod 755 /app/local/apache/htdocs/
先配置一下httpd.conf
找到;ServerName www.example.com:80
改为ServerName localhost:80
#/app/local/apache/bin/apachectl -k start
在浏览器下输入ip地址查看apache是否成功启动
如果没有的话 可能是selinux和防火墙没有做相应设置
vi /etc/sysconfig/iptables
在端口22下一行加入80 3306端口配置(分别是apache和mysql的端口)
-A INPUT -m state --state NEW -m tcp -p tcp --dport 80 -j ACCEPT
-A INPUT -m state --state NEW -m tcp -p tcp --dport 3306 -j ACCEPT
:wq保存退出
service iptables restart #重启防火墙使配置生效
然后在关闭selinux
vi /etc/sysconfig/selinux
改为SELINUX=disabled
:wq#保存退出
setenforce 0 #使配置立即生效
然后安装mysql,首先安装cmake
#tar zxvf cmake-3.1.3.tar.gz
#cd cmake-3.1.3
#./configure
#make && make install
#cd ../
#tar zxvf mysql-5.5.47.tar.gz
#cd mysql-5.5.47
#cmake -DCMAKE_INSTALL_PREFIX=/app/local/mysql -DMYSQL_DATADIR=/app/local/data -DSYSCONFDIR=/etc
#make && make install
#cd ../
#chown -R mysql:mysql /app/local/data
# cp /app/local/mysql/support-files/my-innodb-heavy-4G.cnf /etc/my.cnf
#ln -s /app/local/mysql/my.cnf /etc/my.cnf
#cd /app/local/mysql/
#./scripts/mysql_install_db --user=mysql --basedir=/app/local/mysql --datadir=/app/local/data
#cp support-files/mysql.server /etc/init.d/mysql
#chkconfig mysql on
#service mysql start
#cd /usr/local/src
最后安装php
#tar zxvf libxml2-2.7.4.tar.gz
#cd libxml2-2.7.4
#./configure --prefix=/usr/local/libxml2
报错提示:cannot remove `libtoolT’: No such file or directory ,
解决办法:编辑 configure文件,查找 $RM "$cfgfile" 这个地方,用#注释掉,然后就可以了
#./configure --prefix=/usr/local/libxml2
#make && make install
#cd ../
#tar zxvf libmcrypt-2.5.7.tar.gz
#cd libmcrypt-2.5.7
#./configure --prefix=/usr/local/libmcrypt
#make && make install
#cd ../
#tar zxvf zlib-1.2.8.tar.gz
#cd zlib-1.2.8
#./configure
#make && make install
#cd ../
#xz -d libpng-1.2.56.tar.xz
#tar -xvf libpng-1.2.56.tar
#cd libpng-1.2.56
#./configure --prefix=/usr/local/libpng
#make && make install
#cd ../
#mkdir -p /usr/local/jpeg6/{bin,lib,include,man}
#mkdir /usr/local/jpeg6/man/man1
#tar zxvf jpegsrc.v9b.tar.gz
#cd jpeg-9b/
#./configure --prefix=/usr/local/jpeg6/ --enable-shared --enable-static
#make && make install
#cd ../
#tar jxvf freetype-2.4.12.tar.bz2
#cd freetype-2.4.12
#./configure -prefix=/usr/local/freetype
#make && make install
#cd ../
#tar zxvf autoconf-2.53.tar.gz
#cd autoconf-2.53
#./configure
#make && make install
#cd ../
#tar jxvf libgd-2.1.1.tar.bz2
#cd libgd-2.1.1
#./configure --prefix=/usr/local/gd2 --with-zlib=/usr/local/zlib --with-jpeg=/usr/local/jpeg6 --with-png=/usr/local/libpng --with-freetype=/usr/local/freetype/
#make && make install
#cd ../
#tar jxvf php-5.6.12.tar.bz2
#cd php-5.6.12
#./configure --prefix=/app/local/php --with-config-file-path=/app/local/php/etc --with-apxs2=/app/local/apache/bin/apxs --with-mysql --with-libxml-dir=/usr/local/libxml2 --with-png-dir=/usr/local/libpng --with-jpeg-dir=/usr/local/jpeg6 --with-freetype-dir=/usr/local/freetype --with-gd=/usr/local/gd2 --with-zlib-dir=/usr/local/zlib --with-mcrypt=/usr/local/libmcrypt --with-mysqli --with-xpm-dir=/usr/lib64 --enable-soap --enable-mbstring=all --enable-sockets
#make && make install
#cd ../
#cp /usr/local/src/php-5.6.12/php.ini-production /app/local/php/etc/php.ini
#vi /app/local/php/etc/php.ini
找到;date.timezone
改为date.timezone=PRC
保存退出
配置apache解析php:
#vi /app/local/apache/conf/httpd.conf
找到;ServerName www.example.com:80
改为ServerName localhost:80
找到:AddType application/x-gzip .gz .tgz
在该行下面添加:AddType application/x-httpd-php .php
找到DirectoryIndex index.html
改为:DirectoryIndex index.html index.htm index.php
找到User daemon Group daemon
注释后添加:User www
Group www
找到: Options Indexes FollowSymLinks
修改为:Options FollowSymLinks
找到:AllowOverride None
修改为:AllowOverride All
equire all granted
最后保存退出#/app/local/apache/bin/apachectl -t#测试httpd.conf 如果有错误,会有提示, 如果是正确的则显示为 “Syntax OK”
#/app/local/apache/bin/apachectl start
#ps -ef|grep httpd
root 12130 1259 0 15:49 pts/0 00:00:00 grep httpd
root 23172 1 0 14:13 ? 00:00:00 /app/local/apache/bin/httpd -k start
www 23173 23172 0 14:13 ? 00:00:02 /app/local/apache/bin/httpd -k start
www 23174 23172 0 14:13 ? 00:00:02 /app/local/apache/bin/httpd -k start
www 23175 23172 0 14:13 ? 00:00:02 /app/local/apache/bin/httpd -k start
说明已经启动
#vi /app/local/apache/htdocs/info.php
<?php
phpinfo();
?>
保存退出后在浏览器输入ip地址/info.php后检测是否成功
如图所示