当前位置: > CentOS > CentOS服务器 > webserver >

CentOS7源码编译搭建LAMP环境

时间:2015-03-20 00:41来源:blog.51cto.com 作者:从心开

1.为了方便与主机交换文件建立共享文件夹:点击对话框顶部“选项”,选择“共享文件夹”,右侧点击“总是启用”点击“添加”按提示添加自己想要添加的目录,然后点击“确认”,完成虚拟机设置。

 

2.按“Enter”建,选择“install CentOS 7”。选择“中文 Chinese”,“简体中文(中国)”,单击“继续(C)”

 

3.选择“最小化”,单击“安装位置”,选择“我要配置分区”,单击“完成(D)”,进入分区界面。
 4.点击“+”创建新分区,挂载点选择“SWAP”(注:相当于Windows的虚拟内存,大小一般为内存的2倍)填写容量(2GB),然后点击“添加挂载点(A)

 5.再点击“+”创建新分区,挂载点选择“/boot,填写容量(200MB),然后点击“添加挂载点(A)”,右侧“文件系统”选择“ext4

 6.再点击“+”创建新分区,挂载点选择“/,填写容量(8GB),然后点击“添加挂载点(A)”,侧“文件系统”选择“ext4

 7.再点击“+”创建新分区,挂载点选择“/usr”(注:用了安装软件),填写容量(20GB),然后点击“添加挂载点(A)”,右侧“文件系统”选择“ext4

 8.再点击“+”创建新分区,挂载点选择“/home,这里不填容量,从而把剩余容量分配给/home然后点击“添加挂载点(A)”,右侧“文件系统”选择“ext4如下图所示

 

9.单击左上角“完成(D)”,“接受更改”完成磁盘创建。

 10.点击“网路与主机名”,填写主机名。开启以太网连接。然后点击“完成(D)”

 

11.点击“开始安装(B)

 

12.设置ROOT密码

 

13.点击“重启”开机出现错误提示,任性不管,一会解决,按“Enter”键录入ROOT登入

 14.安装net-tools,这样才能使用“ifconfig”命令查看IP地址:

输入命令yum install net-tools -y 

查看ip地址并记下。

14.下面来解决网卡命名问题,看见eno16777736就烦

 

输入如下命令,进入对应目录,编辑文件:

vi /etc/sysconfig/grub  

然后,往这个文件中添加“net.ifnames=0 biosdevname=0”内容,如下图所示:

 

上图中,红框部分是我所添加的内容(注意它的位置)。紧接着,执行如下命令:

grub2-mkconfig -o /boot/grub2/grub.cfg  

然后重启虚拟机,网卡名就正常了。开机还是有错误不管。EnterROOT登入

 

15.解决开机问题dm-0: WRITE SAME failed. Manually zeroing

原因:硬件,一般是raid卡不支持WRITE SAME特性

解决方法:规避WRITE SAME,打开putty登入系统

1、创建disable-write-same脚本(可放在/usr/local/sbin)

#! /bin/sh
# Disable SCSI WRITE_SAME, which is not supported by underlying disk 
# emulation.  Run on boot from, eg, /etc/rc.local
#
# See http://www.it3.be/2013/10/16/write-same-failed/
#
# Written by Ewen McNeill <ewen@naos.co.nz>, 2014-07-17
#---------------------------------------------------------------------------
 
find /sys/devices -name max_write_same_blocks | 
    while read DISK; do
        echo 0 >"${DISK}"
    done

2、修改脚本为可执行权限

chmod a+x disable-write-same  

3、将脚本放入/etc/rc.local在开机时运行:<以后有什么开机就运行的就可以直接写到这里的尼!>

vi /etc/rc.local  加入

sudo /usr/local/sbin/disable-write-same  

19右击虚拟机标签,安装“VMware Tools.

(1)挂载VMware tools光盘

mount -t iso9660 -o loop /dev/cdrom /media  

cp /media/* ~  

tar zxf  VMwareTools-9.9.0-2304977.tar.gz  

cd vmware-tools-distrib/  

./vmware-install.pl  

提示没有安装perl编译器 那就安装perl:

yum install perl -y  

./vmware-install.pl  

一路Enter键。。。

(2)然后你就会发现你以前设置的虚拟机与主机的分享目录就会出现在/mnt/hgfs/目录下,为了方便访问你也可
     以再你root/目录下创建一个到你的共享目录的软连接

ln -s /mnt/hgfs/shared_file/ ~/shared  

 


Apache编译安装

一,需要软件:

1.apr-1.5.1.tar.gz

2.apr-util-1.5.4.tar.gz

3.pcre-8.20.tar.zip

4.httpd-2.4.10.tar.gz

二,安装apr

yum install gcc libtools -y   
tar zxf apache/apr-1.5.1.tar.gz  
cd ./apache/apr-1.5.1  
./configure --prefix=/usr/local/apr  
make && make install

三,安装apr-util

tar zxf apr-util-1.5.4.tar.gz  
cd  apr-util-1.5.4  
./configure --prefix=/usr/local/apr-util --with-apr=/usr/local/apr  
make && make install

四,安装pcre

yum install gcc-c++ -y 
tar zxf pcre-8.20.tar.gz  
cd pcre-8.20  
./configure --prefix=/usr/local/pcre
make && make install

五,安装Apache服务器

tar zxf  httpd-2.4.10.tar.gz  
cd httpd-2.4.10  
./configure--prefix=/usr/local/apache --with-apr=/usr/local/apr --with-apr-util=/usr/local/apr-util --with-pcre=/usr/local/pcre  
make && make install

六,配置Apache

cd /usr/local/usr/apache/conf/

修改条目如下:

1.搜索ServerName www.example.com:80 去掉前面的注释

2.修改DocumentRoot/home/htdocs,以及这一行下面的一句中的<Directory/home/htdocs

出错error:在主机输入虚拟机IP不能访问

原因:防火墙拦截了80端口

解决:firewall-cmd --permanent --add-port=80/tcp

设置ApacheLinux服务并实现开机自启动

添加ApacheLinux服务

cp /usr/local/apache/bin/apachectl  /etc/rc.d/init.d/

mv /etc/rc.d/init.d/apachectl /etc/rc.d/init.d/httpd

#vi httpd 

在第一行下添加如下两行文字

# Comments to support chkconfig on RedHat Linux

# chkconfig: 2345 90 90

# description:http server

注册该服务 

chkconfig --add httpd  #所有开机模式下自启动

chkconfig httpd on  #345开机模式下自启动

再输入地址发现可以了:

 

以后开启就用Apache/bin 目录下的./apachectl -k start,停止就用./apachectl -k stop.

当然你也可以把/usr/local/apahce/bin加入PATH,这样在任何目录下都可以使用了.

 

MySQL编译安装

一,软件包

MySQL-5.6.22-1.el7.src.rpm

二,编译安装MySQL(参考mysql官方:http://dev.mysql.com/doc/refman/5.6/en/installing-source-distribution.html 

rpm -i  MySQL-5.6.22-1.el7.src.rpm  
mv ./rpmbuild/SOURCES/mysql-5.6.22.tar.gz ./  
\rm -r MySQL-5.6.22-1.el7.src.rpm rpmbuild/  
tar zxf mysql-5.6.22.tar.gz  
cd mysql-5.6.22  
mkdir /home/data

 

2.安装辅助函数库

由于安装还要有用到ncurses-devel cmake,所以 yum install ncurses-devel cmake -y 

3.新增mysql用户组和用户

 

groupadd mysql    

useradd -r -g mysql mysql 

 

4.编译安装注意:由于从新的MySQL5.6开始编译采用CMake 编译参数见mysql源码安装手册:http://dev.mysql.com/doc/refman/5.6/en/mysql-install-db.html 

例如:

cmake  \  
-DCMAKE_INSTALL_PREFIX=/usr/local/mysql \  
-DMYSQL_UNIX_ADDR=/usr/local/mysql/mysql.sock \  
-DDEFAULT_CHARSET=utf8 \  
-DDEFAULT_COLLATION=utf8_general_ci \  
-DWITH_INNOBASE_STORAGE_ENGINE=1 \  
-DWITH_ARCHIVE_STORAGE_ENGINE=1 \  
-DWITH_BLACKHOLE_STORAGE_ENGINE=1 \  
-DMYSQL_DATADIR=/home/data/ \  
-DMYSQL_TCP_PORT=3306 \  
-DENABLE_DOWNLOADS=1
make  
make install

出错后重新运行配置,需要删除CMakeCache.txt文件   

rm CMakeCache.txt

 

5.配置

修改mysql安装目录

cd /usr/local/mysql   

chown -R mysql:mysql .  

修改mysql数据库文件目录

cd /data/mysqldb  

chown -R mysql:mysql .  

初始化MySQL数据库

cd /usr/local/mysql   

scripts/mysql_install_db --user=mysql --datadir=/home/data  

复制mysql服务启动配置文件

cp /usr/local/mysql/support-files/my-default.cnf /etc/my.cnf    

(注:如果/etc/my.cnf文件存在,则覆盖。)

复制mysql服务启动脚本及加入PATH路径

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

vi /etc/profile   
#在文件末尾加入  
      PATH=/usr/local/mysql/bin:/usr/local/mysql/lib:$PATH  
      export PATH  
#保存退出并运行  
source /etc/profile    
#重新加载该文件
启动mysql服务并加入开机自启动

service mysqld start   

chkconfig mysqld on  

检查mysql服务是否启动  netstat -tulnp | grep 3306   

设置root的初始密码

mysqladmin -uroot password ‘你的密码’  

 

PHP编译安装

一 软件包    

#libmcrypt-2.5.7.tar.gz

#curl-7.40.0.tar.gz     

#libpng-1.6.15.tar.gz

#freetype-2.5.4.tar.gz  

#libxml2-2.9.2.tar.gz

#gdbm-1.11.tar.gz       

#gettext-0.19.4.tar.gz  

#mhash-0.9.3.tar.gz

#jpegsrc.v9a.gz         

#libgd-2.1.0.tar.bz2  #最好用.bz2的用.gz的会在编译PHP时出错

#zlib-1.2.8.tar.gz

#libiconv-1.14.tar.gz

#php-5.6.4.tar.gz

 

二,编译安装zlib

tar zxf zlib-1.2.8.tar.gz  

cd zlib-1.2.8  

./configure #zlib不要制定安装路径了  

make && make install  

三,编译安装libjpeg

tar zxf jpegsrc.v9a.gz  

cd jpeg-9a/  

./configure --prefix=/usr/local/libjpeg --enable-shared --enable-static  

make && make install  

四,编译安装libpng

tar zxf libpng-1.6.15.tar.gz  

cd libpng-1.6.15  

./configure --prefix=/usr/local/libpng-1  

make && make install 

五,编译安装freetype

tar zxf  freetype-2.5.4.tar.gz  

cd freetype-2.5.4  

./configure=/usr/local/freetype  

make && make install  

六,编译安装libgd

yum install bzip2 -y  

tar jxf libgd-2.1.0.tar.bz2   

cd libgd-2.1.0  

#configure时不要指定prefix了,编译PHP时会出错  

./configure  --with-jpeg=/usr/local/libjpeg --with-png=/usr/local/libpng --with-freetype=/usr/local/freetype --with-zlib  

make && make install  

七,编译安装curl

tar zxf curl-7.40.0.tar.gz   

cd curl-7.40.0  

./configure --prefix=/usr/local/curl  

make && make install

八,编译安装gdbm

tar zxf  gdbm-1.11.tar.gz  

cd  gdbm-1.11  

./configure --prefix=/usr/local/gdbm  

make && make install  

九,编译安装libcrympt

tar zxf libmcrypt-2.5.7.tar.gz  

cd libmcrypt-2.5.7  

./configure --prefix=/usr/local/libmcrypt  

make && make install  

十,编译安装gettext

tar zxf  gettext-0.19.4.tar.gz   

cd gettext-0.19.4  

./configure --prefix=/usr/local/gettext  

make && make install  

十一,编译安装iconv

tar zxf  libiconv-1.14.tar.gz  

cd libiconv-1.14  

./iconv --prefix=/usr/local/libiconv  

make && make install  

make时候报下面错误:

./stdio.h:1010:1: 错误: ‘gets’未声明(不在函数内)
make[2]: *** [progname.o] 错误 1
make[2]:正在离开目录 `/home/lmos/libiconv-1.14/srclib'
make[1]: *** [all] 错误 2
make[1]:正在离开目录 `/home/lmos/libiconv-1.14/srclib'

make: *** [all] 错误 2

解决方法:进入srclib目录执行 sed -i -e '/gets is a security/d' ./stdio.in.h

 

十二,编译安装libxml2

yum install python-devel -y  

tar zxf libxml2-2.9.2.tar.gz  

cd libxml2-2.9.2  

./configure --prefix=/usr/local/libxml2  

make && make install  

十三,编译安装mhash

tar zxf mhash-0.9.3.tar.gz  

cd mhash-0.9.3  

./configure --prefix=/usr/local/mhash  

make && make install  

十四,编译安装php

tar zxf  php-5.6.4.tar.gz

cd  php-5.6.4

#对于默认安装即./configure没有带prefix参数的可以直接只写出--with-XXX不用赋值

#具体参数可通过./configure --help来查询

./configure  \  
--prefix=/usr/local/php \  
--with-apxs2=/usr/local/apache/bin/apxs \  
--enable-calendar \  
--with-mysql=/usr/local/mysql \  
--with-pdo-mysql=/usr/local/mysql/bin/mysql_config \  
--with-iconv=/usr/local/libiconv \  
--enable-mbstring \  
--with-curl=/usr/local/curl \  
--enable-exif \  
--with-gd \  
--with-zlib \  
--with-jpeg-dir=/usr/local/libjpeg \  
--with-png-dir=/usr/local/libpng \  
--with-freetype-dir=/usr/local/freetype \  
--with-gdbm=/usr/local/gdbm \  
--with-libxml-dir=/usr/local/libxml2 \  
--enable-gd-native-ttf \  
--enable-sockets \  
--with-mcrypt=/usr/local/libmcrypt \  
--with-gettext=/usr/local/gettext \  
--with-mhash=/usr/local/mhash \  
--enable-shmop  
make && make install

 

#php.ini的位置也可在编译时指定:----with-config-file-path=YOURPATH

 

十五,配置Apache httpd.conf

要改的有如下几处

1.# vi  /usr/local/apache/conf/httpd.conf

查找AddType application/x-gzip .gz .tgz

在其下加入 

AddType application/x-tar .tgz

AddType application/x-httpd-php .php

AddType image/x-icon .ico

 

2.修改DirectoryIndex 行,添加index.php

修改为DirectoryIndex  index.php  index.html

 

十六,修改php.ini

找到timezone,修改为timezone=Asia/Shanghai

 

十七,测试

#Apache服务器根路径新建index.php文件如下

cd /home/htdocs/

vi index.php

<?php

phpinfo();

?>

 

在主机输入地址虚拟机IP地址,查看模块是否加载.

本文出自 “从心开始” 博客,请务必保留此出处http://hao360.blog.51cto.com/5820068/1621329





(责任编辑:IT)
------分隔线----------------------------