本方案描述了如何在ubuntu搭建LAMP运行环境,及其所需的各种软件的版本信息、免费下载地址、配置步骤等,具体所需软件包括:Ubuntu7.10 操作系统、apache2.2.6、php5.2.5、mysql5.0.45等。
以下软件都下载到/home/fafa211/Download中.
操作系统
版本:Ubuntu 7.1.0
(安装方法与下载地址请查看文档:ubuntu硬盘安装详解.doc)
Apache2.2.6
下载地址:http://apache.mirror.phpchina.com/httpd/httpd-2.2.6.tar.bz2
Php5.2.5
下载地址:http://cn2.php.net/distributions/php-5.2.5.tar.bz2
Mysql5.0.45
下载地址:http://ftp.stu.edu.tw/pub/Unix/Database/Mysql/Downloads/MySQL-5.0/mysql-5.0.45-linux-i686.tar.gz
php编译所需部分模块
1)、gd-2.0.35源码下载地址
http://www.libgd.org/releases/gd-2.0.35.tar.gz
(另gd-2.0.33下载地址 http://www.boutell.com/gd/http/gd-2.0.33.tar.gz)
2)、jpegsrc.v6b源码地址
http://www.ijg.org/files/jpegsrc.v6b.tar.gz (地址已失效)
地址改为:http://down1.chinaunix.net/distfiles/jpegsrc.v6b.tar.gz
3)、zlib-1.2.3源码地址
http://www.zlib.net/zlib-1.2.3.tar.gz
4)、freetype-2.1.3源码地址
http://easynews.dl.sourceforge.net/sourceforge/freetype/freetype-2.1.3.tar.bz2
5)、libpng-1.2.8源码地址
http://prdownloads.sourceforge.net/libpng/libpng-1.2.8-config.tar.gz?download
安装软件总目录为:/usr/install
则 apache的安装目录为:/usr/install/apache2
mysql的安装目录为:/usr/install/mysql5
php的安装目录为:/usr/install/php5
php相关模块安装在:/usr/install/modules 目录下。
1)解压缩:
cd /home/fafa211/Download
tar zxvf mysql-5.0.45-linux-i686.tar.gz
2)把解压缩后的mysql目录移到安装目录/usr/install下
sudo mv mysql-5.0.45-linux-i686 /usr/install/
cd /usr/install/
sudo mv mysql-5.0.45-linux-i686 mysql5
3)修改配置文件
sudo cp /usr/install/mysql5/support-files/my-medium.cnf /etc/my.cnf
sudo vim /etc/my.cnf
对配置文件进行修改。
主要修改配置选项:
a) default-character-set=UTF8 (注意:客户端和服务器端编码根据需要设置,如网站采用utf-8格式数据,可以统统设置为default-character-set=UTF8 )。
b) ##解决Apache服务器和数据库服务器分开速度过慢的问题,需要
##使用下面选现
skip-name-resolve
##防止客户端程序改变编码
skip-character-set-client-handshake
##The default character set that will be used when a new schema or table is
##created and no character set is defined
default-character-set=utf8
##The default storage engine that will be used when create new tables when
default-storage-engine=MYISAM
##Set the SQL mode to strict
#sql-mode="STRICT_TRANS_TABLES,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION"
sql-mode选项出现在mysql5.0以后的版本,为了兼容以前的数据与程序,需要屏蔽之。
max_connections = 1000
log-slow-queries
long_query_time = 5
(注: max_connections 为允许的最大连接数
log-slow-queries 打开低速查询日志
long_query_time 低速查询的秒数(运行一句sql达到此时间记录在日志里 )
[myisamchk]
key_buffer = 20M
sort_buffer_size = 20M
read_buffer = 2M
write_buffer = 2M
根据优化需要进行测试修改。
4) 添加mysql用户和用户组
# sudo groupadd mysql
# sudo useradd -g mysql mysql
修改mysql目录权限
# sudo chown -R root /usr/install/mysql5
# sudo chgrp -R mysql /usr/ install/mysql5
# sudo chown -R mysql /usr/install/mysql5/data
生成mysql系统数据库
#sudo /usr/install/mysql5/scripts/mysql_install_db –user=mysql&
启动mysql服务
sudo /usr/install/mysql5/bin/mysqld_safe --user=mysql &
启动mysql存在的问题:因mysql没有安装在默认目录(/usr/local/mysql)中,在mysql启动的时候会出现无法启动的问题,解决方法如下:
需要修改 两个脚本: mysqld_safe 和 mysql.server
其中mysqld_safe位于mysql安装目录下的 bin目录下,
mysql.server位于mysql安装目录下的support-files目录下,
当然最好把mysql.server拷贝到你需要防止的目录下,以方便
管理mysql,下面说下如何修改这两个脚本:
非常简单,你可使用任意一种编辑器打开这两个脚本,然后把脚本中的
/usr/local/mysql/
替换成你的 mysql所安装的目录即可。在这里应替换为/usr/install/mysql5
如果这个已经修改完毕,启动mysql仍然存在问题,则可能是文件目录权限的问题!建议把/usr/install/mysql5/data中的所有文件权限都设置为所有者和组均为mysql
修改mysql的root密码
# /usr/install/mysql5/bin/mysqladmin -u root -p password 123456
回车出现 Enter password: 最开始密码默认为空 继续回车即可 123456 即为你的新密码. 也可执行 /usr/install/mysql5/bin/mysql -uroot 进入mysql
客户端。
mysql> use mysql
mysql> update user set `Password`=password('123456') where `User`='root' and `Host`='localhost';
ctrl+c
设置完毕。
关闭mysql服务。
sudo /usr/install/mysql5/bin/mysqladmin -uroot -p123456 shutdown
或者: sudo killall -9 mysqld
把mysql服务写入开机执行服务。
编辑rc.local, sudo vim /etc/rc.local
把/usr/install/mysql5/bin/mysqld_safe --user=mysql & 加进去就OK了。
1)、解压缩apache安装包
# cd /home/fafa211/Download
# tar jxvf httpd-2.2.6.tar.bz2
# cd httpd-2.2.6
2)、编译安装apache
# sudo ./configure --prefix=/usr/install/apache2 --enable-rewrite=shared --enable-track-vars --enable-cgi --enable-so --enable-mods-shared=all --with-config-file-path=/usr/install/apache2/conf --with-mpm=worker
# make
# make install
若在编译apache的时候碰到configure: error: C compiler cannot create executables
这个问题, 只要安装基础包就可
sudo apt-get install build-essential
再重新编译一下即可通过。
下面是对上述Configure命令的解释:
--prefix=/usr/install/apache2 指定把apahce安装到/usr/install/apache2目录中;
--enable-rewrite 支持重写规则;
--enable-track-vars 为启动cookie的get/post等追踪功能;
--enable-cgi 支持CGI;
--enable-so DSO功能
--enable-mods-shared=all 包含所有的模块为DSO
--with-config-file-path=/usr/install/apache2/conf 指定把apache的配制文件放在/usr/install/apache2/conf 中;比如httpd.conf配制文件就在这个目录中;
--with-mpm=worker 让apache以 worker方式运行。
3)、apache启动与关闭
启动:sudo /usr/install/apache2/bin/apachectl start
重启:sudo /usr/install/apache2/bin/apachectl restart
关闭:sudo /usr/install/apache2/bin/apachectl stop
4)、把apache写入开机运行服务中。
# sudo vim /etc/rc.local
把/usr/install/apache2/bin/apachectl start这行写入即可。
5)、修改apache配置文件httpd.conf
DocumentRoot "/usr/install/apache2/htdocs"
<Directory "/usr/install/apache2/htdocs">
把 /usr/install/apache2/htdocs修改为你需要设置的脚本文件根目录。
使apache支持.shtml
#AddType text/html .shtml
#AddOutputFilter INCLUDES .shtml
把配置文件中这两行的 “#”去掉,然后在 Options Indexes FollowSymLinks 后加上 Includes即可,重启apache.
1)、安装支持包(注意安装顺序)
建立初始目录:
$ cd /usr/install
$ sudo mkdir modules
$ cd modules
$ sudo mkdir jpeg6
$ sudo mkdir jpeg6/bin
$ sudo mkdir jpeg6/lib
$ sudo mkdir jpeg6/include
$ sudo mkdir jpeg6/man
$ sudo mkdir jpeg6/man/man1
a)、安装jpeg6
$ cd /home/fafa211/Download
$ tar zxvf jpegsrc.v6b.tar.gz
$ cd jpeg-6b/
$ ./configure --prefix=/usr/install/modules/jpeg6/ --enable-shared –enable-static
$ make
$ sudo make install
b)、安装libpng
$ tar zxvf libpng-1.2.8-config.tar.gz
$ cd libpng-1.2.8-config/
$ cp scripts/makefile.std makefile
$ make
$sudo make install
c)、安装freetype
$ tar jxvf freetype-2.1.3.tar.bz2
$ cd freetype-2.1.3
$ ./configure –prefix=/usr/install/modules/freetype
$ make
$ sudo make install
d)、安装zlib
$ tar zxvf zlib-1.2.3.tar.gz
$ cd zlib-1.2.3
$ ./configue
$ make
$ sudo make install
###zlib不要用--prefix自定义安装目录,影响gd的安装
e)、安装gd
$ tar zxvf gd-2.0.35.tar.gz
$ cd gd-2.0.35
$ ./configure --prefix=/usr/install/modules/gd --with-jpeg=/usr/install/modules/jpeg6 --with-png --with-zlib –with-freetype=/usr/install/modules/freetype
$ make
$make install
2)、开始安装PHP
$ tar jxvf php-5.2.5.tar.bz2
$ cd php-5.2.5
$ ./configure --prefix=/usr/install/php5 --with-gd=/usr/install/modules/gd --with-jpeg-dir=/usr/install/modules/jpeg6 --with-zlib --with-png-dir=/usr/lib --with-freetype-dir=/usr/install/modules/freetype --with-mysql=/usr/install/mysql5 --with-pdo-mysql=/usr/install/mysql5 --with-iconv --enable-mbstring --with-pear --with-apxs2=/usr/install/apache2/bin/apxs --with-config-file-path=/usr/install/php5/etc –with-libxml-dir=/usr/lib
$ make
$ sudo make install
下面为对configue命令选项的解析:
--prefix=/usr/install/php5 指定php的安装目录;
--with-gd=/usr/install/modules/gd 指定gd库的位置;
--with-jpeg-dir=/usr/install/modules/jpeg6 指定jpeg的位置;
--with-zlib 包含zlib模块;
--with-png-dir=/usr/lib 指定png的位置;
-with-freetype-dir=/usr/install/modules/freetype 指定freetype的位置;
--with-mysql=/usr/install/mysql5 指定mysql数据服务器安装的位置;
--with-pdo-mysql=/usr/install/mysql5 支持pdo_mysql;/usr/install/mysql5为数据库服务器安装目录;
--with-iconv 支持iconv库;
--enable-mbstring 支持mbstring模块;
--with-pear 支持pear;
--with-apxs2=/usr/install/apache2/bin/apxs 这是加入apache中为DSO模块的位置;
--with-config-file-path=/usr/install/php5/etc 指定php的配置文件存放位置;
with-libxml-dir=/usr/lib 指定libxml2的安装位置,ubuntu7.1.0已安装libxml2,若未安装可使用 sudo apt-get install libxml2 进行安装;
$ sudo cp php.ini-dist /usr/install/php5/etc/
注:php.ini-dist在php的解压缩目录中,把它拷贝到php编译时指定的配置文件存放处。
3)、使apache支持php脚本
编辑httpd.conf脚本,在AddType application/x-gzip .gz .tgz后面加上下面两句:
AddType application/x-httpd-php .php
AddType application/x-httpd-php-source .phps
然后找到
<IfModule dir_module>
DirectoryIndex index.html
</IfModule>
把其中的 DirectoryIndex index.html 改为:DirectoryIndex index.html index.php
这样就可以把index.php作为服务器默认查找的页面了。
重启apache即可。
4)、修改PHP配置文件
$ cd /usr/install/php5/etc
$ sudo mv php.ini-dist php.ini
$ sudo vim php.ini
进行php.ini文件的配置工作(下面的配置可以暂时省略,优化时再进行配置,优化时要注意根据自己服务器来进行相应的配置,下面的配置只是作为一种参考)
查找safe_mode=Off,更改为safe_mode=On
(1)查找max_execution_time = 30,更改为max_execution_time = 600
(2)查找max_input_time = 60,更改为max_input_time = 600
(3)查找memory_limit = 8M ,更改为memory_limit = 20M
(4)查找display_errors = On,更改为display_errors = Off
(5)查找register_globals = Off,更改为register_globals = On
(6)查找post_max_size = 8M,更改为post_max_size = 20M
(7)查找upload_max_filesize = 2M,更改为upload_max_filesize = 20M
保存后退出,从而完成了php.ini文件的配置工作。