LAMP环境源码包安装
决心自己搭建一个lamp环境,记录下来,当做学习笔记。
我是在虚拟机(vmware15)里搭建的。
如果你跟我一样,是初学的朋友,也想用比较新的源码包的方式搭建一个自己的lamp环境,跟着我这个做,说不定能帮到你。
VMware搭建lamp环境(centos6.5) 安装好centos后,需要进行网络环境配置 三种网络连接方式: 1桥接,使用真实网卡和你的计算机通信,ip配置成和真实机配置成相同的网段,就可以和你的计算机以及局域网内的其它计算机通信,相当于局域网里的一台真实计算机。 2NAT,虚拟机通过VMnet8这块假网卡和你的j计算机进行通信。(只能和你的计算机通信,不占用局域网ip) 3Host-only,虚拟机通过VMnet1这块假网卡和你的计算机进行通信。(只能和你的计算机通信,不占用局域网ip)
为了局域网里其他计算机可以访问我的虚拟服务器,故我使用桥接方式 虚拟机的ip网段必须和使用的网卡的网段一样(使用哪种网络连接方式,就会使用哪个网卡)。
安装之前
- 建立目录
cd /
mkdir -p /lamp/sh /lamp/tar_gz /lamp/backup
/lamp/tar_gz放置源码包 /lamp/sh 放置sh脚本 /lamp/backup放置编译安装日志。
- 编译环境安装
yum -y install gcc gcc-c++
安装gcc和c++编译环境。
- 关闭SELinux模块
vim /etc/sysconfig/selinux
/*里面的值对应编辑成*/
SELINUX=disabled
- 上传源码
把下载到自己电脑的所有源码包上传到/lamp/tar_gz
开始安装
- 安装apache版本2.4.29
#需要先安装apache所需的apr,apr-util,pcre,zlib
这里我选择了apr-1.6.2, apr-util-1.6.0, pcre-8.41, zlib-1.2.8
cd /lamp/tar_gz/apr-1.6.2
./configure --prefix=/usr/local/apr/
make
make install > /lamp/backup/apr.install.log
cd /lamp/tar_gz/apr-util-1.6.0
./configure --prefix=/usr/local/apr-util/ --with-apr=/usr/local/apr/
make
make install > /lamp/backup/apr-util.install.log
cd /lamp/tar_gz/pcre-8.41
./configure --prefix=/usr/local/pcre/
make
make install > /lamp/backup/pcre.install.log
cd /lamp/tar_gz/zlib-1.2.8
./configure
make
make install > /lamp/backup/zlib.install.log
cd /lamp/tar_gz/httpd-2.4.29
./configure --prefix=/usr/local/apache2 --enable-so --with-apr=/usr/local/apr --with-apr-util=/usr/local/apr-util/ --with-pcre=/usr/local/pcre --enable-modules=most
make
make install > /lamp/backup/apache2.install.log
- 安装mysql版本5.6.26
#MySQL自5.5版本以后,就开始使用cmake编译工具了
#mysql安装前所需包 cmake,ncurses,bison
这里我选择了cmake-2.8.5, ncurses-5.7 ,bison-2.7.9
cd /lamp/tar_gz/cmake-2.8.5
./configure --prefix=/usr/local/cmake/
make
make install > /lamp/backup/cmake.install.log
#执行此步骤,否则会提示-bash: cmake: command not found
export PATH=/usr/local/cmake/bin:$PATH
cd /lamp/tar_gz/ncurses-5.7
./configure --with-shared --without-debug --without-ada --enable-overwrite
make
make install > /lamp/backup/ncurses.install.log
cd /lamp/tar_gz/bison-2.7.9
./configure
make
make install > /lamp/backup/bison.install.log
groupadd mysql
useradd -g mysql mysql
cd /lamp/tar_gz/mysql-5.6.26
cmake -DCMAKE_INSTALL_PREFIX=/usr/local/mysql \
-DMYSQL_UNIX_ADDR=/tmp/mysql.sock \
-DDEFAULT_CHARSET=utf8 \
-DDEFAULT_COLLATION=utf8_general_ci \
-DWITH_EXTRA_CHARSETS:STRING=utf8,gbk \
-DWITH_MYISAM_STORAGE_ENGINE=1 \
-DWITH_INNOBASE_STORAGE_ENGINE=1 \
-DWITH_READLINE=1 \
-DENABLED_LOCAL_INFILE=1 \
-DMYSQL_DATADIR=/usr/local/mysql \
-DMYSQL_TCP_PORT=3306
make
make install > /lamp/backup/mysql.install.log
- 安装php版本5.6.11
php安装前所需包libxml2,libmcrypt,libpng ,jpeg-9a, freetype, autoconf, gd2,
我这里选择了libml2-2.6.26, libmcrypt-2.5.8, libpng-1.6.16, jpegsrc-v9a, freetype-2.5.5, autoconf-2.69, gd-2.0.35.
cd /lamp/tar_gz/libxml2-2.6.26
./configure --prefix=/usr/local/libxml2/ --without-zlib
make && make install > /lamp/backup/libxml2.install.log
cd /lamp/tar_gz/libmcrypt-2.5.8
./configure --prefix=/usr/local/libmcrypt/
make
make install > /lamp/backup/libmcrypt.install.log
cd /lamp/tar_gz//libpng-1.6.16
./configure --prefix=/usr/local/libpng/
make
make install > /lamp/backup/libpng.install.log
cd /lamp/tar_gz/jpeg-9a
./configure --prefix=/usr/local/jpeg --enable-shared --enable-static
make
make install > /lamp/backup/jpeg.install.log
cd /lamp/tar_gz/freetype-2.5.5
./configure --prefix=/usr/local/freetype/
make
make install > /lamp/backup/freetype.install.log
cd /lamp/tar_gz/autoconf-2.69
./configure
make
make install > /lamp/backup/autoconf.install.log
cd /lamp/tar_gz/gd-2.0.35
./configure --prefix=/usr/local/gd2/ --with-jpeg=/usr/local/jpeg/ --with-freetype=/usr/local/freetype/
make
make install > /lamp/backup/gd2.install.log
cd /lamp/tar_gz/php-5.6.11
#不要写成这样:--with-apxs2=/usr/local/apache2/bin/apxs/最后多了一个斜杠就表示目录,会出错
./configure --prefix=/usr/local/php/ --with-libxml-dir=/usr/local/libxml2/ --with-mysql=/usr/local/mysql/ --with-apxs2=/usr/local/apache2/bin/apxs --with-config-file-path=/usr/local/php/etc
make
make install > /lamp/backup/php.install.log
开始配置
- 配置apache
#开机启动
echo "/usr/local/apache2/bin/apachectl start" >> /etc/rc.d/rc.local
#编辑配置文件
#httpd.conf如果在安装apache的时候,没有指定配置文件的路径,那么就使用默认的配置文件,此处根据情况使用
vim /usr/local/apache2/conf/httpd.conf
#去掉注释并改为
ServerName localhost:80
#在搜索AddType,在适当位置增加
AddType application/x-httpd-php .php .phtml
#以下处,增加一个index.php,
<IfModule dir_module>
DirectoryIndex index.html index.php
</IfModule>
#路径,根据个人情况决定是否修改
DocumentRoot "/usr/local/apache2/htdocs"
:wq保存退出
#启动看看
/usr/local/apache2/bin/apachectl start
或/usr/local/apache2/bin/service httpd start
- 配置mysql
#改变mysql目录所有者,所属组,以及所属组增加w权限
chown -R mysql:mysql /usr/local/mysql
chmod +w /usr/local/mysql
#初始化mysql表、test表、infomation表等。
cd /usr/local/mysql
scripts/mysql_install_db --user=mysql --basedir=/usr/local/mysql --datadir=/usr/local/mysql/data
#拷贝覆盖配置文件
\cp -f my.cnf /etc/my.cnf
#编辑配置
vim /etc/my.cnf
#查找并修改
basedir = /usr/local/mysql
datadir = /usr/local/mysql/data
socket = /tmp/mysql.sock
port = 3306
server_id = 1
:wq保存退出
#复制启动文件到启动目录,并且编辑启动文件
cp support-files/mysql.server /etc/init.d/mysqld
vim /etc/init.d/mysqld
#查找并修改
basedir=/usr/local/mysql
datadir=/usr/local/mysql/data
:wq保存退出
#把启动mysql控制台的命令,生成一个软连接,放到/usr/bin目录下,这样我们只要输入mysql就可以启动mysql控制台了
ln -s /usr/local/mysql/bin/mysql /usr/bin
#开启mysql服务
/usr/local/mysql/service mysqld start
- php配置
cd /lamp/tar_gz/php-5.6.11/
cp php.ini-development /usr/local/php/etc/php.ini
- 最后
重启apache。
最后在vim /usr/local/apache2/htdocs/phpinfo.php 写入<?php echo phpinfo(); ?> 保存并浏览看看吧。
关闭防火墙,在浏览器地址栏中输入服务器的ip就会出现网页。
注意
由于php默认配置中不支持mysqli模块,所以这里我们需要手动安装。
生成 mysqli.so
(phpize是用来扩展php扩展模块的,通过phpize可以建立php的外挂模块,详细的讲解网上有的,有兴趣了解可以去度娘)
使用find / -name phpize命令查一下phpize的位置,如下图:
然后使用/usr/local/php/bin/phpize,如下图:
具体代码如下:
1. cd /lamp/tar_gz/php5.6.11/include/ext #源码解压包的扩展目录
2. cd mysql #进入mysql扩展
3. /usr/local/php/bin/phpize
4./configure --with-php-config=/usr/local/php/bin/php-config --with-mysqli=/usr/local/lmysql/bin/mysql_config
5.make
6.make install
make install会生成一个目录文件,如图:
使用ls查看该目录可以看到会有一个.so结尾的文件 mysqli.so,相当于windows下的.dll文件,如图:
最后修改php.ini配置文件:
加入或者去掉注释 extension = “mysqli.so” (如果extension_dir 不对,此处需要写全路径)
然后重启web服务器
然后出现如下图就表示安装mysqli成功。
如果你的系统自带mysql,需要先卸载系统自带的mysql。可参考如下链接:
Linux 环境编译安装mysql (源码安装包)