Linux下Apache+mysql+PHP运行环境搭建教程

环境:

lamp服务器:

RHEL5.2kernel2.6.18,iptables stop .selinuxdisabled.lamp主机IP地址是192.168.0.21.已经在DNS服务器上做好APTR记录,域名为ccc.dns.com。(注:编译PHP时使用了YUMYUM服务器IP地址为192.168.0.19

 

lamp客户机:

一台windowsserver 2003.一台rhel5.0(防火墙已关,selinux=disabled

注:(提前配置服务器与客户机IP地址之间能够互相PING通。域名ccc.dns.com也能正常PING通。)

 

准备:

1、源码安装mysql  (解压mysql.XXXXXtar.gz./configure  &   make  &makeinstall)源码下载网址:http://mysql.borsen.dk/Downloads/MySQL-5.0/mysql-5.0.84.tar.gz

2、源码安装apache  (解压apache..XXXXXtar.gz./configure  &   make  &make install

3、源码安装php     (解压php.XXXXXtar.gz./configure  &   make  &makeinstallhttp://cn.php.net/downloads.php源码下载点、

 

一、mysql源码安装步骤:

编译前步骤:

牢记:

安装mysql以前呢,需要先安装几个包。少一个后面configure或者make都会出问题。

需先安装:gccgcc-c++ncureses-devel、安装gcc时有一个依赖。需要先安装glibc-headerslibgompglibc-devel才能安装成功gcc安装gcc-c++时亦有一个依赖libstdc++-devel此包安装上即可成功安装gcc-c++

rpm-e  mysql 删除的所有的安装mysqlRPM包,如果不删除完,源码安装的文件与RPM安装的文件极有可能混淆

注:编译时亦可使用2》把错误输出到一个文档中,如果编译出错方便查看。

 

解压缩:

[ root@localhost ~]# tar -zxvf /var/ftp/nm/mysql-5.0.84.tar.gz  -C/usr/local/src/

tar解压指令

z解开tar

x解开gz文件

v进度条

f文件输出到默认设备

C指定路径

/var/ftp/nm/mysql-5.0.84.tar.gz 这个文件是我预先使用FTP上传进来的mysql源码包。

/usr/local/src/这条路径是使用tar-zxvf命令把mysql.XXXXX.gz解压到的路径。cd/usr/local/src查看肯定有一个mysql-5.0.84的文件夹而不是mysql-5.0.84.tar.gz

 

编译:

[ root@localhost ~]# cd /usr/local/src/mysql-5.0.84

[ root@localhost mysql5.0.84]# ls    查看一下目录。应该有一个文件configure此文件是检查编译前的环境。

[ root@localhost mysql5.0.84]# ./configure --prefix=/usr/local/mysql \         ###--prefix指源码要安装的路径。

>--with-extra-charsets=all\                  ###支持所有的字符串

>--sysconfdir=/etc  \                            ###配置文件路径

>--enable-assembler\                          ###使用一些字符函数的汇编版本

>--with-mysqld-ldflags=-all-static\        ###以静态方式编译服务器

>--with-charset=utf8 \                         ###添加对UTF8的支持

##### --localstatedir=/usr/local/mysql/data \    ###存放数据库文件的路径,如果没有这条默认就在/usr/local/mysql/var/目录下。后面呢。也会设定这个文件夹是myql这个帐户的家目录。我是没有加这条路径的。默认的就可以了。

>--with-plugins=all                              ###默认安装时是没有INNODE存储引擎。但很多需要安全交易数据的时候就经常使用到这个INNODB,虽然速度有些慢。但比较可靠。加上这条参数,mysql就会支持innodB存储引擎。

安装好以后进入到数据库以后使用showengines这条命令查看mysql所支持的所有引擎。支持的就是YES。不支持就是NO,下图是我加上这条命令并且已经编译好后,进入数据库查看到的内容:

1

前面介绍完毕,接下来按回车。进入编译第一步:检查

检查成功后的提示,如下图:

2

Thank youfor choosing MySQL!出来这句话呢,就是检查成功。可以进行下一步了:

编译第二步:使用make命令编译源文件。

[root@localhost mysql-5.0.84]#make 2>log.txt

编译源文件,如果有什么错误信息就会使用2>重定向到当前的log.txt文件中。

编译无误的话,最后几行不会出现什么乱码,只有[makeXX]。。。。。。YES or NO的字样

编译第三步:makeinstall

[root@localhost mysql-5.0.84]#make install 2>logs.txt

这一步是安装make编译好的程序.



检查编译安装的mysql是否完全无误

[root@localhost ~]#cd /usr/local/mysql/

[root@localhost mysql]# ls ########查看一下安装了哪些目录,安装正常的情况如下图:

3

以上几个文件都有的话安装基本无误。

如果编译安装错误,以上文件极有可能不会全部存在。

再查看mysql源码中support-files中的文件.如果编译的有问题则是下图:

[root@localhost ~]#ls /usr/local/src/mysql-5.0.84/supports-files

4

以上的文件多数是以.cnf.sh结尾。正常情况下呢,编译OK的文件不止这些。还有一部分.cnf结尾的文件,如下图:

5

这些.cnf的文件中,有一个是我后面需要复制到/etc/下做为mysql的配置文件模板,也就是后面的把my-large.cnf复制为/etc/my.cnf。如果这些.cnf文件编译的不正常,那么生成基础数据库及启动数据库的时候就会有一堆的乱七八槽的问题出现。



注:编译时间可能在25分钟左右。如果只有10分钟左右就可能有问题出现了。查看一下log.txt或者是logs.txt看看是不是有什么错误提示在里面而自己没有发现的。

权限:

[root@localhost ~]#useradd mysql

[root@localhost ~]#vi /etc/password #####找到mysql用户。把家目录/home/mysql改为/usr/lcoal/mysql/var

[root@localhost ~]#chown –R mysql:mysql /usr/local/mysql ###########使mysql的所有者组都属于mysql。只有用户及超级管理员可以对var进行操作。



权限设置好了,这个时候还没有var目录。也就是数据库文件目录还没有创建。

创建基础基础数据库文件:(var

[root@localhost ~]#su – mysql

-bash-3.1#cd/usr/local/mysql/bin

-bash-3.1#./mysql_install_db #######这条命令执行完以后,就会创建var文件夹。Var文件夹内有二个子文件夹及一个错误日志文件一个mysql进程文件还有几个不认识的。这二个子文件夹一个是mysql一个是testMysql是保存数据库用户或者数据库表的一些信息。Test是做为测试用。

这条命令执行完正确的提示如下:

正确的var目录如下图:

现在数据库的安装就算全部完成了。

接下来就可以登陆数据库

登陆数据库以前需要

启动数据库。命令如下

[root@localhost ~]#/usr/local/mysql/bin/mysqld_safe --user=mysql & ####开启mysql服务。并且后台运行。如下图:

关闭服务:

[root@localhost ~]#/usr/local/mysql/bin/mysqladmin shutdown --user=root--password=888888

有二种方法可以查看mysql的状态。

查看状态1mysqladmin查看mysql 的服务状态是开启还是关闭的。如下图:

查看状态2

[root@localhost ~]#ps –aux |grep mysql

更改密码:给root更改密码,更改密码前需要使用-p旧密码登陆才能正确的更改。否则是一条拒绝提示。

[root@localhost ~]#/usr/local/mysql/bin/mysqladmin -u root –poldpassword password newpassword

如图:

登陆MYSQL

[root@localhost ~]#mysql –u root –p

Enterpassword :

如下图:

SHELL>use mysql;切换到mysql这个库

SHELL>show tables; 查看所有的表

如下图:



下面总结一下源码安装的MYSQL数据库的目录结构:

不提定路径默认安装在/usr/local

目錄名稱

用途

bin

MySQLClient 執行檔(mysql)、系統创建及維護用腳本

libexec

MySQLServer 執行檔(mysqld)

var

資料庫本體所在地、错误日誌文件、进程文件

Mysql-test

这个不知道是什么耶

include/mysql

C語言專用引入檔所在地

lib/mysql

函式庫

share/mysql或者share/info或者 share/man

錯誤訊息檔 、说明文件


sql-bench

效能測試元件



下面总结几个MYSQL安装途中的一系列问题:

问题一、

编译前没有安装ncureses提示错误:

解决办法:安装ncursesncurses-devel

问题二、

编译好后,查看MYSQL安装目录下的文件。只有四个。

Bin lib share include

而正常情况下的文件夹数据为

Bin includelib libexec mysql-test share sql-bench.

虽然以前装过MYSQL,但也早忘光了,并不知道这四个文件夹是不正常的。

问题三、

启动服务提示mysqld这个文件。

当然,少了几个主要的文件,服务启动的时候总是提示少这文件少那文件,我记得的就是/libexec/mysqld这个文件少了。提示出来的。还有几个文件少了。当时我又没有删除RPM安装的MYSQL。使用find/ -namemysqld/usr/libexec/mysqld找到缺少的文件了。这是RPM默认安装的服务器主程序。复制到/usr/local/mysql/。还是有其它的错误提示。说是少什么文件已经记不清楚了。思前想后。看来是我安装的MYSQL有问题。

解决办法:重新编译安装。把RPM安装的MYSQL全部卸载掉。并且在编译前安装gcc-c++。再次进行编译。编译出来后。

问题四、

resolveip这个文件。因为这个resolveipmysql/bin下。但是没有安装上。也能从RPM安装的程序中找到。就把RPM的这个文件复制到/mysql/bin下。这个问题算搞定了。

又有问题出现了

问题四、

创建基础数据库时执行mysql_install_db出下现列错误

现在我知道是编译的源有问题。当然安装出来的也是有问题的.mysql的配置文件是从源码包的supports-files中复制的。编译正常的情况下这个supports-files文件中有一部分文件是以.cnf结尾。但事实却是以.cnf.sh结尾。也就是说我编译的这个源有问题。但在不知道的情况下把my-large.cnf.sh也给考贝到/etc/my.cnf做为配置文件使用。

因为编译的有问题。所以出现以上提示。解决办法打开/etc/my.cnf。把’MYSQL_TCP_PORT@’=port更改为port= 3306.clientmysqld选项都需要更改。就可以解决。

正确的配置文件参见下图:

问题五、

Mysqlamdinping 查看系统服务是否开启时,权限拒绝

解决办法:命令行加上有权限的用户名 ./mysqladminping –user=mysql问题解决

问题六:

Mysqladminshutdown关闭服务时提示拒绝信息

解决办法:./mysqladminshutdown --user=root--password=XXXXX因为root超级管理员权限。所以用mysqlroot帐户关闭就OK

问题七:

进入数据库时无法登陆。并且提示找不到/tmp/mysql.sock路径:

解决办法:服务压根都没有开起来。当然不能进入。开启服务:/usr/local/mysql/bin/mysqld_safe–user &

问题八:

MYSQL登陆不进去。并且提示权限拒绝:

有二种办法解决此类问题:

第一种:你还记得旧密码,直接输入。要么使用mysqladmin uroot –poldpass passworkd newpass直接更改新密码。

第二种:

把服务关闭(使用mysqladmin需要用到root旧密码,你都已经忘了,肯定用这种方法无法关闭)

[root@localhost ~]#ps –aux |grep mysql ######查看已经开起来的mysql进程号

[root@localhost ~]#skill -9 进程号 ######强制结束二个进程。再次使用ps–aux |grep msyql查看已经没有mysql的进程启动。

开启服务

[root@localhost ~]#/usr/local/mysql/bin/mysqld_safe --user=mysql--skip-grant-tables --skip-networking & ###############有这么二条参数跟着。进入数据库root就是空密码了。

[root@localhost ~]#mysql –u root –p

空密码进入以后:

SHELL>UPDATEuser SET Password=PASSWORD(‘新密码’) where USER=’这个密码附给哪个用户’;

SHELL>FLUSHPRIVILEGES;

SHELL>EXIT

密码更改成功。重新启动服务。这个新密码才会生效。

注:也可以在正常(启动服务没有使用—skip-grant-tables)进入数据库以后。使用updateuser set 更改密码,不一定非得使用mysqladmin

到此mysql基本完成





二、安装apache步骤

基础步骤与上面的编译相同。只是参数不同,到参数祥细解释

#tar -zxvfhttpd-2.2.11.tar.gz -C /usr/local/src(解压源码包)

#cd/usr/local/src/httpd-2.2.11(进入解压后的包准备下一步的编译)

#./configure--prefix=/usr/local/apache2 --enable-so--enable-rewrite(编译并且指定安装的路径为/usr/local/apache2,后面的二个参数是为了mysql.php而启用的。--enable-so是启用插件·--enable-rewriteurl路径重定向·可以根据设置。将不同的regex将请求重定向.)­

#make 编译源

#makeinstall 安装

#/usr/local/apache2/bin/apachect1stop/start/restart(服务启动成功)

测试一下:

WIN2003IE浏览器中输ccc.dns.com。访问到itworks

Apache正常。





三、安装PHP步骤:

安装前准备:

牢记:支持PHP的库文件。

  1. zlibzlib-devel

  2. libxml2libxml5-devel

  3. libjpeglibjpeg-devel

  4. libpnglibpng-devel

  5. Freetype-devel

  6. gdgd-devel

以上五种都可以使用RPM手动安装。第6种安装GD的时候呢,需要先安装gd-devel。安装gd-devel的时候呢有12RPM包是互相依赖循环。手动是无法成功的安装的。所以呢。安装第6种需要YUM来安装。就OK了。

解压:

#tar –zxvfphp-5.3.0.tar.gz -C /usr/local/src/

#cd /usr/local/src/php-5.3.0

# cdphp-5.3.0/
[root@localhost php-5.3.0]# ./configure--prefix=/usr/local/php5 \ PHP
安装目录
>--with-apxs2=/usr/local/apache2/bin/apxs \ PHP
apache服务器提供的模块位置,PHP解析后的东西如何交给apache就通过这个模块.
>--with-config-file-path=/usr/local/php5 \ PHP
的配置文件所以路径

>--with-mysql=/usr/local/mysql/ \ PHPMYSQL服务器提供的模块位置



> --with-gd \ 激活GD库扩展功能(因为是RPM安装。GD的程序gd.h, libgd.a,libgd.so等,都在/usr下的不同目录之中,所以就不写目录让系统自动去找安装的路径。如果GD是使用源码编译后的。就要在—with-gd后写上源码编译的路径

> --enable-gd-native-ttf\ 激活对本地TrueType字符串函数的支持
>--with-ttf \ 
激活对FreeType1.x 的支持

> --enable-gd-jis-conv \
> --with-libxml-dir
告诉PHP,支持的libxml库在什么地方

> --with-zlib-dir 告诉PHP支持的zlib库在什么地方

> --with-zlib 激活zlib压缩库

>--with-freetype-dir=/usr/local/freetype \ 激活对FreeType2.x 的支持

>--with-jpeg-dir=/usr/local/libjpeg 激活对jpeg-6b的支持

>--with-png-dir=/usr/local/libpng 激活对png的支持

> --enable-xml 激活xml

> --enable-sockets 激活socket通讯特性

#make

#makeinstall



接着从源码中复制一个配置文件:

#cp/usr/local/src/php-5.3.0/php.ini-development /usr/local/php/php.ini



更改apache配置文件,使用apache支持PHP

# vi/usr/local/apache2/conf/httpd.conf

需要改三处地方:

1、找到DirectoryIndex 配置文件第167.

默认是DirectoryIndex index.html

DirectoryIndex后面添加index.php 不用删除index.html ###这样做的目的是访问到apache的时候默认显示主页为index.php这个主页。

2、找到AddType application/x-gzip .gz .tgz 配置文件第309

在这一行后面添加二行,如下:

AddType application/x-httpd-php .php .php3 .php4 ######这一行的意思是apache支持解析的PHP格式

AddType application/x-httpd-php-soruce .phps

3、找到LoadModule php5_module modules/libphp5.so 在配置文件第53

这一行告诉apache加载的PHP模块。这个模块在/usr/local/php/modules/下。可以查看是libphp5.so还是libphp4.so。因为我安装的是php5.3.0。所以肯定是libphp5.so不会有错。这行主要看的是LoadModule后面的PHP模块。如果模块是5.0。就是上面那样写。如果PHP模块是4.0就要把上面的php5_modulemodules/libphp5.so的数字5都改成4.才能正常解析。



重启apache服务

#/usr/local/apache2/bin/apachectlrestart

编译PHP主页

#vi/usr/local/apache2/htdocs/index.php

<?php phpinfo ?> ###############这句话可以显示PHP的安装信息及模块信息

:wq

LINUX的火狐浏览器上访问ccc.dns.com。查以看到php的安装信息及版本信息。如下图:

WIN2003IE浏览器上访问ccc.dns.com查看PHP的信息:

自己写一段代码到index.php解析一下:

<html>
 <head>
  <title>PHP 
测试</title>
 </head>
 <body>
 <?php echo '<p>Hello World</p>'?>
注意绿点的不是冒号,是分号。
 </body>
</html>

解析出来的效果应该是helloworld

实际上也是可以解析成功。



开始不能解析。情况如下:

index.php里面写了

<?php phpinfo ?>

<html>
 <head>
  <title>PHP 
测试</title>
 </head>
 <body>
 <?php echo '<p>Hello World</p>'?>
注意绿点的不是冒号,是分号。
 </body>
</html>

WINDOWS2003上访问是一片空白:

又在LINUX上访问。只出现了一堆源码:如下

<?php phpinfo ?>

<html>
 <head>
  <title>PHP 
测试</title>
 </head>
 <body>
 <?php echo '<p>Hello World</p>'?>
 </body>
</html>

。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。

我就纳闷了。在网上查啊查啊。查了6个小时。还是个没有头绪。网上说的index.php没有执行权限啊。我改了。还是空白还是源码。网上又有的说是php.ini没有权限我又改成了755还是空白还是源码。问题不能解决。。我就纳闷。这个破LAMP我都弄几天了还没弄出来。一年多以前没有弄出来那是没有用心。现在这么用心还是没搞定。我就气啊。跑apache的配置文件里面再一看。是没有看出来什么。我就看着发起呆来了。

看到这AddType application/x-httpd-php .php.php3.php4 我瞧这行,把.php .php3 .php4用空格空起来。开始是粘一起的。没有分开。

再把apache服务一重启。

OY。成功了。。哈哈哈。二个空格找了一上午的错误。。哦耶耶~~~~~~~~


LAMP初始安装成功了















  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
搭建 Web 服务器需要以下步骤: 1. 安装 Apache HTTP 服务器:在 Linux 系统上,可以使用软件包管理器来安装 Apache HTTP 服务器。例如,在 Ubuntu 系统上,可以使用以下命令安装 Apache: ``` sudo apt-get install apache2 ``` 2. 安装 MySQL 数据库:同样地,在 Linux 系统上,可以使用软件包管理器来安装 MySQL 数据库。例如,在 Ubuntu 系统上,可以使用以下命令安装 MySQL: ``` sudo apt-get install mysql-server ``` 3. 安装 PHPPHP 是一种服务器端脚本语言,用于动态内容生成。可以使用以下命令在 Linux 系统上安装 PHP: ``` sudo apt-get install php libapache2-mod-php php-mysql ``` 4. 配置 Apache:可以使用 Apache配置文件来配置服务器。在 Ubuntu 系统上,配置文件位于 /etc/apache2/apache2.conf。可以编辑此文件来添加虚拟主机、配置目录和文件权限等。 5. 启动服务:在安装和配置 ApacheMySQLPHP 后,可以使用以下命令启动 ApacheMySQL 服务: ``` sudo systemctl start apache2 sudo systemctl start mysql ``` 现在,Web 服务器已经搭建好了。如果您想从外部访问服务器,还需要进行以下步骤: 1. 配置防火墙:在服务器上打开防火墙端口,以便外部网络可以访问您的 Web 服务器。例如,在 Ubuntu 系统上,可以使用以下命令允许 HTTP 流量: ``` sudo ufw allow http ``` 2. 配置路由器:如果您使用的是家庭网络,可能需要在路由器上配置端口转发,以便从外部网络访问您的 Web 服务器。具体步骤因路由器型号而异,可以参考路由器的用户手册。 完成上述步骤后,您应该可以从外部网络访问您的 Web 服务器了。可以通过在 Web 浏览器中输入服务器的公共 IP 地址来测试访问。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值