Linux lamp搭建
一、安装mysql
1、把mysql的包下载到这个目录下
cd /usr/local/src/
2、下载包
wget http://syslab.comsenz.com/downloads/linux/mysql-5.1.40-linux-i686-icc-glibc23.tar.gz
注意:上面的地址是32位机器用的,如果你的机器是64位,下载这个包(http://syslab.comsenz.com/downloads/linux/mysql-5.1.40-linux-x86_64-icc-glibc23.tar.gz)安装方法是一样的。
需要安装wget包,默认没有安装
[root@mysql src]# yum install -y wget
3、解压包
tar zxvf /usr/local/src/mysql-5.1.40-linux-i686-icc-glibc23.tar.gz
4、把解压出来的文件移动到/usr/local/目录下,并且改名为mysql,这一步需要注意,在移动的时候要确保/usr/local/目录下没有mysql这个名称,
如果有,就会把文件移动到mysql目下了,这样子是错误的
[root@mysql src]# mv mysql-5.1.40-linux-x86_64-icc-glibc23 /usr/local/mysql
5、创建一个mysql用户,并且禁止登陆
useradd -s /sbin/nologin mysql
6、进入到/usr/local/mysql下,好像不进入这个目录也是可以的
cd /usr/local/mysql
7、创建 /data/mysql 目录
mkdir -p /data/mysql
8、更改/data/mysql 目录的属主和属组
chown -R mysql:mysql /data/mysql
9、在当前目录下初始化(当前目录指的上就是/usr/local/mysql目录)
./scripts/mysql_install_db --user=mysql --datadir=/data/mysql
这一步做的是出错了,原来是没有安装共享库,所以这一步如果出错,查看下是否有安装共享库
安装共享库:yum install compat-libstdc++-33
完成之后查看/date/mysql下回生成两个目录:mysql和test目录
10、在当前目录下(/usr/local/mysql目录)拷贝模板到/etc/目录下,并且改名为my.cnf
cp support-files/my-large.cnf /etc/my.cnf
使用vim进入my.cnf文件中关闭以下功能:
log-bin=mysql-bin
binlog_format=mixed
server-id = 1
11、拷贝启动文件到/etc/init.d/下命名为mysqld(也是在/usr/local/mysql目录下)
cp support-files/mysql.server /etc/init.d/mysqld
chmod 755 /etc/init.d/mysqld (这一步不做好像也可以)
12、修改/etc/init.d/mysqld文件
vim /etc/init.d/mysqld #修改datadir
修改以下配置:
basedir=/usr/local/mysql #定义了mysql所在的路径
datadir=/data/mysql #数据存放路径
13、加入到系统列表
chkconfig --add mysqld
14、设定开机启动
chkconfig mysqld on
15、重启mysql
/etc/init.d/mysql start
[root@mysql mysql]# /etc/init.d/mysqld start
Starting MySQL... SUCCESS! #这个提示表示mysql已经启动成功
16、使用ps aux |grep mysql来检测看看是否有mysql进程
使用netstat -lnp来查看是否有3306端口
二、安装apache
1、下载apache(也是下载到/usr/local/src/目录下)
wget http://syslab.comsenz.com/downloads/linux/httpd-2.2.16.tar.gz
2、解压apache包
tar zvxf httpd-2.2.16.tar.gz
3、进入到httpd-2.2.16目录
cd httpd-2.2.16
[root@mysql src]# cd httpd-2.2.16
4、开始编译,如果没有文档,进入到INSTALL文件中看看帮助(此文档在/usr/local/src/httpd-2.2.16目录下)
INSTALL文件中需要查看的信息:
$ ./configure --prefix=PREFIX #指定安装的目录在哪里
$ make
$ make install
$ PREFIX/bin/apachectl startt
5、配置编译参数(/usr/local/src/httpd-2.2.16目录下)
./configure --prefix=/usr/local/apache2 --enable-mods-shared=most --enable-so
--prefix=:安装路径
--enable-mods-shared=most:安装的模块大多是以共享的方式去安装的,并且是动态的,因为使用
静态的耗费内存
--enable-so :启用DOS
这一步时报错,信息如下:提示需要安装gcc
configure: error: in `/usr/local/src/httpd-2.2.16/srclib/apr':
configure: error: no acceptable C compiler found in $PATH
See `config.log' for more details.
configure failed for srclib/apr
需要安装gcc
安装gcc:yum install gcc-c++
6、编译
make && make install 可以写在同一行,但是要使用两个&&符号隔开。也可以分开写
make install
7、编译完成之后进入/usr/local/apache2/目录查看
进入/usr/local/apache2/目录之后,使用/bin/ls 查看modules目录,这个目录存放的是模块
8、检查
[root@mysql httpd-2.2.16]# /usr/local/apache2/bin/httpd -t :检查配置文件是否有错误
[root@mysql httpd-2.2.16]# /usr/local/apache2/bin/httpd -l :查看核心的
[root@mysql httpd-2.2.16]# /usr/local/apache2/bin/httpd -M :显示所有加载的模块
[root@mysql httpd-2.2.16]# cat /usr/local/apache2/build/config.nice :查看历史编译配置
9、启动apache
[root@mysql httpd-2.2.16]# /usr/local/apache2/bin/apachectl start
/usr/local/apache2/bin/apachectl start/stop/restart
/usr/local/apache2/bin/apachectl graceful/graceful-stop
start :用于启动apache服务,首先检查apache的配置文件是否有误,没有错误启动服务,如有误则输出错误信息;
stop :用于停止apache服务器,如果已经停止了apache服务器则会报错;
restart :重新启动apache服务器,如果apache没有启动则启动它;
graceful :和start参数一样,区别在于它不会中断正在处理的连接,也不会关闭日志。推荐使用。
graceful-stop :和stop参数一样,区别在于它不会中断正在处理的连接,也不会关闭日志,推荐使用。
10、查看是否启动了
[root@mysql apache2]# ps aux |grep httpd root 58464 0.0 0.2 124448 2524 ? Ss 20:35 0:00 /usr/local/apache2/bin/httpd -k start daemon 58465 0.0 0.1 124448 1736 ? S 20:35 0:00 /usr/local/apache2/bin/httpd -k start daemon 58466 0.0 0.1 124448 1736 ? S 20:35 0:00 /usr/local/apache2/bin/httpd -k start daemon 58467 0.0 0.1 124448 1736 ? S 20:35 0:00 /usr/local/apache2/bin/httpd -k start daemon 58468 0.0 0.1 124448 1736 ? S 20:35 0:00 /usr/local/apache2/bin/httpd -k start daemon 58469 0.0 0.1 124448 1736 ? S 20:35 0:00 /usr/local/apache2/bin/httpd -k start root 58479 0.0 0.0 103248 872 pts/0 S+ 20:37 0:00 grep httpd
11、启动时出现的 类似于错误信息之类的
需要修改配置文件:conf/httpd.conf
配置文件:[root@mysql apache2]# vim conf/httpd.conf
在配置文件中把ServerName www.example.com:80前面的#号去掉
在重新启动,就不会在有提示了
12、测试
在Linux中测试是否工作了
[root@mysql apache2]# curl localhost
<html><body><h1>It works!</h1></body></html>[root@mysql apache2]#
在浏览器中输入IP地址来测试,如下图:
出此It works就表示配置成功了
./bin/apachectl -t:检测配置文件和 /usr/local/apache2/bin/httpd -t效果一样
./bin/apachectl start:重启
[root@mysql apache2]# ./bin/apachectl graceful:在不杀死进程的情况下调度配置文件
13、如果需要开机自动启动Apache服务,需要把这一行命令:
/usr/local/apache2/bin/apachectl start加入到/etc/rc.local文件中才可以
三、安装php
1、进入/usr/local/src/目录下,下载PHP包
下载包
wget http://cn2.php.net/distributions/php-5.3.28.tar.gz
2、解压包
tar zxvf php-5.3.28.tar.gz
3、进入到php-5.3.28目录,编译配置PHP
[root@mysql src]# cd php-5.3.28
./configure --prefix=/usr/local/php --with-apxs2=/usr/local/apache2/bin/apxs --with-config-file-path=/usr/local/php/etc --with-mysql=/usr/local/mysql --with-libxml-dir --with-gd --with-jpeg-dir --with-png-dir --with-freetype-dir --with-iconv-dir --with-zlib-dir --with-bz2 --with-openssl --with-mcrypt --enable-soap --enable-gd-native-ttf --enable-mbstring --enable-sockets --enable-exif --disable-ipv6
这一步会出现各种错误,根据提示来安装所需要的库文件,如果不知道的就使用yum list来搜,
错误信息如下:参考文档:http://sxct168.blog.51cto.com/824373/1640316
1、configure: error: xml2-config not found. Please check your libxml2 installation.
# yum install -y libxml2-devel
2、configure: error: Cannot find OpenSSL's <evp.h>
# yum install -y openssl-devel
3、checking for BZip2 in default path... not found
configure: error: Please reinstall the BZip2 distribution
# yum install -y bzip2-devel
4、configure: error: jpeglib.h not found.
# yum install -y libjpeg-devel
5、configure: error: png.h not found.
# yum install -y libpng libpng-devel
6、configure: error: freetype.h not found.
# yum install -y freetype-devel
7、configure: error: mcrypt.h not found. Please reinstall libmcrypt.
# yum install -y libmcrypt-devel
语法:
yum list |grep -i 报错的名称
如果没有yum源搜索不到,需要安装yum扩展源
安装yum扩展源:yum install -y epel-release
4、编译
make
make install
安装完成之后,可以在/bin/ls /usr/local/php下看到一些文件
/usr/local/php/bin/hph
php的可执行文件位置
5、最后复制配置文件/usr/local/php/etc/目录下,并且改名为php.ini
[root@mysql php-5.3.28]# cp php.ini-production /usr/local/php/etc/php.ini
/usr/local/php/bin/php -m :查看php都安装了哪些模块
/usr/local/php/bin/php -i:查看php的参数
四、配置apache结合php
apache的主配置文件为:/usr/local/apache2/conf/httpd.conf
1、编辑配置文件
vim /usr/local/apache2/conf/httpd.conf
找到:
AddType application/x-gzip .gz .tgz
在该行下面添加:
AddType application/x-httpd-php .php
然后再找到:
<IfModule dir_module>
DirectoryIndex index.html
</IfModule>
将该行改为:
<IfModule dir_module>
DirectoryIndex index.html index.htm index.php
</IfModule>
找到:
#ServerName www.example.com:80
修改为:
ServerName localhost:80
2、检查配置文件是否正确
[root@mysql php-5.3.28]# /usr/local/apache2/bin/apachectl -t
Syntax OK #出先这个就表示是正确的
3、启动Apache
/usr/local/apache2/bin/apachectl start
五、测试解析php
1、写一个php脚本
vim /usr/local/apache2/htdocs/1.php
写入:
<?php
echo "php解析正常";
?>
保存后,继续测试:
2、解析报错
[root@mysql php-5.3.28]# curl localhost/1.php <?php echo "php解析正常"; ?>
/usr/local/apache2/bin//apachectl -M |grep -i php:检查php模块是否加载
检查配置文件的时候,原来是配置文件写错了,修改了一下,重启之后正常
重启命令:/usr/local/apache2/bin/apachectl graceful
3、解析
curl localhost/1.php
[root@mysql php-5.3.28]# curl localhost/1.php php解析正常 #出现这个就表示解析成功了
4、但是在浏览器中解析的时候,中文出现了乱码,具体如图:
解决办法:更改1.php脚本测试文件
保存退出后重启服务
/usr/local/apache2/bin/apachectl graceful
在测试就正常显示了
实验中如果有错误的地方,希望各位大神能够指正,如果过后发现文档中有错误的地方,我也会修真。