【0】写在最前
由于准备实习原因,今天又重温了Lamp的搭建过程,之前一直是看燕十八老师2012年的教程学习,因此今天也是拿了十八哥的lamp搭建笔记作参考。但这次按照笔记重新搭建,发现了很多问题,由于该笔记已时隔多年,部分软件已经更新几代,网上也少有部分问题的解决方法,因此趁刚搭建好lamp环境,于此整理一下步骤。
【0.1】本人操作环境
ubuntu 15.04
软件存放路径 /root/lamp_need/
安装路径 /usr/local/
【0.2】软件准备
【0.2】基本解压命令
//tar.gz格式
tar -zxvf xxx//tar.bz2格式
tar -jxvf xxx
【1】安装Mysql
1 groupadd mysql2 useradd -r -g mysql mysql3 cd /usr/local4 tar -zxvf /root/lamp_need/mysql-5.5.40-linux2.6-i686.tar.gz-C ./mysql5.55 ln -s /usr/local/mysql5.5mysql6 cd mysql7 chown -R mysql .8 chgrp -R mysql .9 scripts/mysql_install_db --user=mysql10
11
12 #如果提示error while loading shared libraries: libaio.so.1等错误13 #是缺少了libaio 安装即可14 #sudo apt-get install libaio-dev15
16
17 chown -R root .18 chown -R mysql data19 #可选
20 cp support-files/my-medium.cnf /etc/my.cnf21 bin/mysqld_safe --user=mysql &
22 #可选
23 cp support-files/mysql.server /etc/init.d/mysql.server
【1.1】以下是手册中的说明:
如果想开机启动mysqld,可以复制support-files/mysql.server文件到你系统的正确位置(按照手册翻译,具体位置不清楚)
你可以用下面方法设置mysql密码:
./bin/mysqladmin -u root password 'new-password'
./bin/mysqladmin -u root -h ubuntu password 'new-password'
或者也可以运行:
./bin/mysql_secure_installation
你也可以删除测试数据库和匿名用户,作为产品服务时,强烈推荐此做法
使用下面命令启动mysql进程:
cd . ; ./bin/mysqld_safe &
可以使用下面命令测试mysql进程:
cd ./mysql-test ; perl mysql-test-run.pl
【1.2】测试登录mysql,修改登录密码
#登录mysql
./bin/mysql -uroot -p#显示数据库,当你看到此表,则mysql已经安装成功
mysql>show databases;+--------------------+
| Database |
+--------------------+
| information_schema |
| mysql |
| performance_schema |
| test |
+--------------------+
#用户名和登录密码都存储在mysql数据库中
#因此可以通过update直接修改登录密码
#切换数据库
mysql> usemysql;#展示所需的列
mysql> select Host,User,Password from user;+-----------+------+-------------------------------------------+
| Host | User | Password |
+-----------+------+-------------------------------------------+
| localhost | root | *6BB4837EB74329105EE4568DDA7DC67ED2CA2AD9 |
| ubuntu | root | |
| 127.0.0.1 | root | |
| ::1 | root | |
| localhost | | |
| ubuntu | | |
+-----------+------+-------------------------------------------+
#修改密码
mysql> update user set Password=password('123') where Host='localhost' and User='root';#刷新权限
mysql> flush privileges;
#重新登录即可
至此Mysql 暂告一段落。
【2】安装apache
【2.1】编译安装 zlib压缩库
cd /root/lamp_needtar -zxvf zlib-1.2.7.tar.gz
cd zlib-1.2.7./configure #这个配置编译命令不要加目录参数
make && make install
【2.2】编译安装httpd2(apache)
cd /root/lamp_needtar -zxvf httpd-2.2.29.tar.gz
cd httpd-2.2.29./configure --prefix=/usr/local/httpd2 \--enable-modules=all \--enable-rewrite \--enable-mods-shared=all \--enable-somake && make install
【2.3】启动apache
/usr/local/httpd2/bin/apachectl start
默认使用127.0.0.1
【2.4】测试apache
浏览器打开: http://虚拟机IP
看到 "it works!",即为成功
至此Apache暂告一段落
【3】安装图形库
【3.1】libxml2
cd /root/lamp_needtar -zxvf libxml2-2.7.8.tar.gz
cd libxml2-2.7.8./configure --prefix=/usr/local/libxml2make && make install
【3.2】jpeg7
cd /root/lamp_needtar -zxvf jpegsrc.v7.tar.gz
cd jpeg-7./configure --prefix=/usr/local/jpeg7/ --enable-shared --enable-staticmake && make install
【3.3】libpng
cd /root/lamp_needtar -jvxf libpng-1.4.3.tar.bz2
cd libpng-1.4.3./configure #和zlib一样不要带参数,让它默认安装到相应目录make && make install
【3.4】freetype
cd /root/lamp_needtar -jvxf freetype-2.3.5.tar.bz2
cd freetype-2.3.5
mkdir -p /usr/local/freetype
./configure --prefix=/usr/local/freetypemake && make install
上面几个基本都是一气呵成。
【3.5】编译安装GD库
cd /root/lamp_needtar -jvxf libgd-2.1.1.tar.bz2
cd libgd-2.1.1
mkdir -p /usr/local/gd
./configure --prefix=/usr/local/gd \--with-jpeg=/usr/local/jpeg7/ \--with-png --with-zlib \--with-freetype=/usr/local/freetypemake && make install
至此,图形库基本安装完成。
【4】编译安装PHP
cd /root/lamp_needtar -jxvf php-5.6.8.tar.bz2
cd php-5.6.8./configure --prefix=/usr/local/php5.6\--with-apxs2=/usr/local/httpd2/bin/apxs \--with-mysql=mysqlnd \--with-pdo-mysql=mysqlnd \--with-mysqli=mysqlnd \--with-freetype-dir=/usr/local/freetype \--with-gd=/usr/local/gd \--with-zlib --with-llsibxml-dir=/usr/local/libxml2 \--with-jpeg-dir=/usr/local/jpeg7 \--with-png-dir\--enable-mbstring=all \--enable-mbregex \--enable-sharedmake && make install
【4.1注】遇到问题了。在./configure没有提示错误警告的下 make install 中途提示:
ext/gd/.libs/gd.o: In function `zm_info_gd':
/root/phpneed/php-5.6.8/ext/gd/gd.c:1345: undefined reference to `XpmLibraryVersion'
collect2: error: ld returned 1 exit status
Makefile:255: recipe for target 'sapi/cli/php' failed
make: *** [sapi/cli/php] Error 1
【4.2】安装libXpm后再编译安装PHP
无奈,只能安装libXpm
apt-get install libXpm-dev
查找出libXpm的安装位置
shell>dpkg -L libxpm-dev/./usr/usr/lib/usr/lib/i386-linux-gnu/usr/lib/i386-linux-gnu/pkgconfig/usr/lib/i386-linux-gnu/pkgconfig/xpm.pc/usr/lib/i386-linux-gnu/libXpm.a/usr/include/usr/include/X11/usr/include/X11/xpm.h/usr/share/usr/share/lintian/usr/share/lintian/overrides/usr/share/lintian/overrides/libxpm-dev/usr/share/doc/usr/share/doc/libxpm-dev #此处就是安装位置(以你的系统查找出的目录为准)/usr/share/doc/libxpm-dev/copyright/usr/share/doc/libxpm-dev/xpm.PS.gz/usr/lib/i386-linux-gnu/libXpm.so/usr/share/doc/libxpm-dev/changelog.Debian.gz
于是make clean,再重新configure
cd /root/lamp_needtar -jxvf php-5.6.8.tar.bz2
cd php-5.6.8./configure --prefix=/usr/local/php5.6\--with-apxs2=/usr/local/httpd2/bin/apxs \--with-mysql=mysqlnd \--with-pdo-mysql=mysqlnd \--with-mysqli=mysqlnd \--with-freetype-dir=/usr/local/freetype \--with-gd=/usr/local/gd \--with-zlib --with-llsibxml-dir=/usr/local/libxml2 \--with-jpeg-dir=/usr/local/jpeg7 \--with-png-dir\--enable-mbstring=all \--enable-mbregex \--enable-shared \
#------------加上下面这句------------------with-xpm-dir=/usr/share/doc/libxpm-devmake && make install
OK,一顿饭时间,完成。
【4.3】复制php.ini到安装目录
#复制后缀为development的php.ini文件到php的etc目录cp /root/lamp_need/php-5.6.8/php.ini-development /usr/local/php5.6/etc/php.ini
#有的教程说是放到lib目录,鉴于此,我都复制到这两个目录下cp /root/lamp_need/php-5.6.8/php.ini-development /usr/local/php5.6/lib/php.ini
【4.4】检查PHP是否安装完成
cd /usr/local/php5.6./bin/php -v
正常显示:
PHP 5.6.8 (cli) (built: Mar 6 2016 04:53:35)
Copyright (c) 1997-2015 The PHP Group
Zend Engine v2.6.0, Copyright (c) 1998-2015 Zend Technologies
如果正常显示php版本信息,则安装成功。
【5】配置Apache的httpd.conf使其支持PHP
vi /usr/local/httpd2/conf/httpd.conf
【5.1】在httpd.conf(Apache主配置文件)中增加:
AddType application/x-httpd-php .php
【5.2】找到下面这段话:
DirectoryIndex index.html
在index.html 前面添加index.php
【5.3】建立php测试网页
vi /usr/local/httpd2/htdocs/index.php
输入如下内容:
phpinfo();
?>
【5.4】重启apache
/usr/local/httpd2/bin/apachectl restart
【5.5】再次浏览器查看http://虚拟机IP
如果看到php信息,工作就完成了!