Linux lamp搭建php
1、安装mysqlhtml
一、把mysql的包下载到这个目录下mysql
cd /usr/local/src/ linux
二、下载包c++
wget http://syslab.comsenz.com/downloads/linux/mysql-5.1.40-linux-i686-icc-glibc23.tar.gzsql
注意:上面的地址是32位机器用的,若是你的机器是64位,下载这个包(http://syslab.comsenz.com/downloads/linux/mysql-5.1.40-linux-x86_64-icc-glibc23.tar.gz)安装方法是同样的。apache
须要安装wget包,默认没有安装vim
[root@mysql src]# yum install -y wget浏览器
三、解压包bash
tar zxvf /usr/local/src/mysql-5.1.40-linux-i686-icc-glibc23.tar.gz
四、把解压出来的文件移动到/usr/local/目录下,而且更名为mysql,这一步须要注意,在移动的时候要确保/usr/local/目录下没有mysql这个名称,
若是有,就会把文件移动到mysql目下了,这样子是错误的
[root@mysql src]# mv mysql-5.1.40-linux-x86_64-icc-glibc23 /usr/local/mysql
五、建立一个mysql用户,而且禁止登录
useradd -s /sbin/nologin mysql
六、进入到/usr/local/mysql下,好像不进入这个目录也是能够的
cd /usr/local/mysql
七、建立 /data/mysql 目录
mkdir -p /data/mysql
八、更改/data/mysql 目录的属主和属组
chown -R mysql:mysql /data/mysql
九、在当前目录下初始化(当前目录指的上就是/usr/local/mysql目录)
./scripts/mysql_install_db --user=mysql --datadir=/data/mysql
这一步作的是出错了,原来是没有安装共享库,因此这一步若是出错,查看下是否有安装共享库
安装共享库:yum install compat-libstdc++-33
完成以后查看/date/mysql下回生成两个目录:mysql和test目录
十、在当前目录下(/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
十一、拷贝启动文件到/etc/init.d/下命名为mysqld(也是在/usr/local/mysql目录下)
cp support-files/mysql.server /etc/init.d/mysqld
chmod 755 /etc/init.d/mysqld (这一步不作好像也能够)
十二、修改/etc/init.d/mysqld文件
vim /etc/init.d/mysqld #修改datadir
修改如下配置:
basedir=/usr/local/mysql #定义了mysql所在的路径
datadir=/data/mysql #数据存放路径
1三、加入到系统列表
chkconfig --add mysqld
1四、设定开机启动
chkconfig mysqld on
1五、重启mysql
/etc/init.d/mysql start
[root@mysql mysql]# /etc/init.d/mysqld start
Starting MySQL... SUCCESS! #这个提示表示mysql已经启动成功
1六、使用ps aux |grep mysql来检测看看是否有mysql进程
使用netstat -lnp来查看是否有3306端口
2、安装apache
一、下载apache(也是下载到/usr/local/src/目录下)
wget http://syslab.comsenz.com/downloads/linux/httpd-2.2.16.tar.gz
二、解压apache包
tar zvxf httpd-2.2.16.tar.gz
三、进入到httpd-2.2.16目录
cd httpd-2.2.16
[root@mysql src]# cd httpd-2.2.16
四、开始编译,若是没有文档,进入到INSTALL文件中看看帮助(此文档在/usr/local/src/httpd-2.2.16目录下)
INSTALL文件中须要查看的信息:
$ ./configure --prefix=PREFIX #指定安装的目录在哪里
$ make
$ make install
$ PREFIX/bin/apachectl startt
五、配置编译参数(/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++
报错信息:
checking whether to enable mod_deflate... configure: error: mod_deflate has been requested but can not be built due to prerequisite failures
解决办法,安装如下包:
yum install -y zlib-devel
六、编译
make && make install 能够写在同一行,可是要使用两个&&符号隔开。也能够分开写
make install
七、编译完成以后进入/usr/local/apache2/目录查看
进入/usr/local/apache2/目录以后,使用/bin/ls 查看modules目录,这个目录存放的是模块
八、检查
[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 :查看历史编译配置
九、启动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参数同样,区别在于它不会中断正在处理的链接,也不会关闭日志,推荐使用。
十、查看是否启动了
[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
十一、启动时出现的 相似于错误信息之类的
须要修改配置文件:conf/httpd.conf
配置文件:[root@mysql apache2]# vim conf/httpd.conf
在配置文件中把ServerName www.example.com:80前面的#号去掉
在从新启动,就不会在有提示了
十二、测试
在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:在不杀死进程的状况下调度配置文件
1三、若是须要开机自动启动Apache服务,须要把这一行命令:
/usr/local/apache2/bin/apachectl start加入到/etc/rc.local文件中才能够
3、安装php
一、进入/usr/local/src/目录下,下载PHP包
下载包
wget http://cn2.php.net/distributions/php-5.3.28.tar.gz
二、解压包
tar zxvf php-5.3.28.tar.gz
三、进入到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
一、configure: error: xml2-config not found. Please check your libxml2 installation.
# yum install -y libxml2-devel
二、configure: error: Cannot find OpenSSL's <evp.h>
# yum install -y openssl-devel
三、checking for BZip2 in default path... not found
configure: error: Please reinstall the BZip2 distribution
# yum install -y bzip2-devel
四、configure: error: jpeglib.h not found.
# yum install -y libjpeg-devel
五、configure: error: png.h not found.
# yum install -y libpng libpng-devel
六、configure: error: freetype.h not found.
# yum install -y freetype-devel
七、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
四、编译
make
make install
安装完成以后,能够在/bin/ls /usr/local/php下看到一些文件
/usr/local/php/bin/hph
php的可执行文件位置
五、最后复制配置文件/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的参数
4、配置apache结合php
apache的主配置文件为:/usr/local/apache2/conf/httpd.conf
一、编辑配置文件
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
二、检查配置文件是否正确
[root@mysql php-5.3.28]# /usr/local/apache2/bin/apachectl -t
Syntax OK #出先这个就表示是正确的
三、启动Apache
/usr/local/apache2/bin/apachectl start
5、测试解析php
一、写一个php脚本
vim /usr/local/apache2/htdocs/1.php
写入:
<?php
echo "php解析正常";
?>
保存后,继续测试:
二、解析报错
[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
三、解析
curl localhost/1.php
[root@mysql php-5.3.28]# curl localhost/1.php php解析正常 #出现这个就表示解析成功了
四、可是在浏览器中解析的时候,中文出现了乱码,具体如图:
解决办法:更改1.php脚本测试文件
保存退出后重启服务
/usr/local/apache2/bin/apachectl graceful
在测试就正常显示了
实验中若是有错误的地方,但愿各位大神可以指正,若是事后发现文档中有错误的地方,我也会修真。