linux下Apache+PHP+mysql+phpMyAdmin源码包安装配置

时间:2021-05-11 20:37:51


1.    安装apache2.4.9


1、 下载,在官网:http://httpd.apache.org/download.cgi上下载


2、 解压,

    命令:tar –zxvf httpd-2.4.9.tar.gz


3、 配置,

    配置命令:./configure--prefix=/usr/local/apache2 --with-apr=/usr/local/apr--with-apr-util=/usr/local/apr-util --enable-modules=shared


4、 编译,

    命令:make


5、 安装,

    命令:sudo make install


6、 启动,重启和停止,

    先切换到安装目录/usr/loca/apache2/bin

./apachectl -k start

./apachectl -k restart
./apachectl -k stop   

出现如下问题:

AH00558: httpd:Could not reliably determine the server's fully qualified domain name, using127.0.1.1. Set the 'ServerName' directive globally to suppress this message

(13)Permissiondenied: AH00072: make_sock: could not bind to address 0.0.0.0:80

no listeningsockets available, shutting down

AH00015: Unableto open logs

解决方法:

需要修改/usr/local/apache2/conf/httpd.conf  

将ServerName localhost:8080 注释去掉并修改端口 。

将文件中Listen 80将它改为Listen 8080

 

7. 配置文件(满足最基本的配置)

   编辑/usr/local/apache2/conf/httpd.conf文件     
   
找到:
    AddType  application/x-compress .Z
    AddType application/x-gzip .gz .tgz
   

   在后面添加:
   AddType application/x-httpd-php .php
(使Apcche支持PHP
   AddType application/x-httpd-php-source .phps   
   

    找到:
    <IfModule dir_module>
    DirectoryIndex index.html
    </IfModule>
    

   添加:
    <IfModule dir_module>
    DirectoryIndex index.html index.php
    </IfModule>    
    

   找到:

    ServerName www.example.com:80
   
修改为:
    ServerName 127.0.0.1:8080
或者ServerName localhost:8080
   
记得要去掉前面的“#”

   找到:

    #Listen 80

   修改为:

    Listen 8080


8. 测试
   
在浏览器里输入http://127.0.0.1:8080
   
如果出现It Works!说明成功。


9. 修改默认的Web站点目录

 默认的目录为 "/usr/local/apache2/htdocs",修改apache的配置文件httpd.conf,比如在新建一个"/home/fantasy/LAMP/website"的目录作为apache的站点目录

10.  找到DocumentRoot这一行修改为:

DocumentRoot " Directory"/home/fantasy/LAMP/website"

11.  找到 <Directory>这一行修改为:<Directory "/home/fantasy/LAMP/website">

  

2.    PHP安装

1.    下载,官网:http://www.php.net/downloads.php


2.    解压
命令:tar -jxf php-5.5.10.tar.bz2


3.    建立目标文件夹
mkdir /usr/local/php5

也就是说等下安装的php5要安装到这个文件夹里面


4.    配置

回到原来解压后的文件夹

./configure --prefix=/usr/local/php5 --with-apxs2=/usr/local/apache/bin/apxs

注:

这里有一个-with-apxs2=/usr/local/apache/bin/apxs选项,其中apxs是在安装Apache时产生的,apxs是一个为Apache HTTP服务器编译和安装扩展模块的工具,使之可以用由mod_so提供的LoadModule指令在运行时加载到Apache服务器中。我的理解是通过这个工具把PHP模块动态加载到Apache中


出现如下问题:

configure: error: xml2-config notfound. Please check your libxml2 installation.

解决方法:

在Ubuntu下下载libxml2-2.7.8.tar.gz

#sh autogen.sh

#make

#sudo make install


5.    编译

命令:make


6.    测试编译

命令:make test  


7.    安装

命令:make install


8.    配置文件

cp /usr/local/src/php-5.5.10/php.ini-development  /usr/local/php5/lib/php.ini

  把原来位于源代码里面的php.ini-development拷贝到/usr/local/php5/lib/php.ini下,并且重命名为php.ini

9.    重启apache


10.  测试

在apache的htdocs下建立一个php文件test.php,里面的内容如下:
<?php

       phpinfo();

?>

然后在浏览器里输入http://127.0.0.1:8080/test.php

如果出现php的相关配置,成功,如果什么都没有输入,说明失败,重新以上步骤或者查找原因

如果决定在安装后改变配置选项,只需重复最后的三步configure, make,以及 make install,然后需要重新启动Apache 使新模块生效。Apache不需要重新编译。

 

3.    安装MySql

1. 下载

    到官网下载mysql-5.6.17.tar.gz(注意是源码包


2. 解压

   tar -zxvf mysql-5.6.17.tar.gz


   安装MySQL需要cmake,因此先安装cmake。

   cmake下载地址:http://www.cmake.org/cmake/resources/software.html

   解压:tar -zxvf cmake-2.8.12.2.tar.gz

   配置:./configure--prefix=/usr/local/cmake

   #./bootstrap

   #make

   #sudo make install


3. # Preconfiguration setup

shell>groupadd mysql

shell>useradd -r -g mysql mysql

#Beginning of source-build specific instructions

shell>tar zxvf mysql-VERSION.tar.gz

shell>cd mysql-VERSION

shell>cmake .

shell>make

shell> make install


4. Postinstallation setup

shell>cd /usr/local/mysql

shell>chown -R mysql .

shell>chgrp -R mysql .

shell>scripts/mysql_install_db--basedir=/usr/local/mysql --datadir=/usr/local/mysql/data --user=mysql

shell>chown -R root .

shell>chown -R mysql data

shell>bin/mysqld_safe --user=mysql &

# Nextcommand is optional

shell> cp support-files/mysql.server /etc/init.d/mysql.server


5. 启动

MySQL服务并不会自动启动,还需要先初始化MySQL数据库,操作如下:

cd /usr/local/mysql/bin

sudo ./mysql_install_db --user=root

注意,这里最后的root是指可以操作数据库的用户,可以是当前用户,也可以新建用户,与linux上的root用户是两回事,可以自己取一个名字

./mysqld_safe --user=root & 这条命令负责启动mysql服务的守护进程,此外最后的&时必须的,因为希望守护进程在后台运行

这里的root就是刚才的那个


6. 为根用户创建密码

./mysqladmin -u root password ‘123456’

如果root已经设置过密码,采用如下方法

./mysqladmin -u root passwordoldpass ‘root’        

7. 测试

mysql -u root –p

会提示输入密码,就用刚才设置的密码

root

如果出现mysql>,说明连接成功了,下面通过命令 创建一个数据库、建一个表,增加一条记录,为后面的测试准备

  mysql> create database my_test;
  mysql> use my_test;

  mysql> create table student(id int(4) not null primary key auto_increment,stuname char(20));

  mysql> insert into student(stuname) values('Fantasy');

  注意每条命令后面有个分号,如果上面的都成功,后面就可以用这个测试。

 

4 结合PHP与MySql

1.重新配置PHP,改变配置选项,只需重复PHP安装时的最后的三步configure, make, 以及 make install,然后需要重新启动 Apache 使新模块生效,Apache不需要重新编译。


2.配置

./configure --prefix=/usr/local/php5  --with-apxs2=/usr/local/apache2/bin/apxs --with-mysqli=/usr/local/mysql/bin/mysql_config  注意mysql_config 的路径
3、编译 make

4、安装 make install

5、测试 写一个页面test.php,放在apache的web目录下,测试上面用命令创建的数据库

     <?php 
  $mysqli=new mysqli();
  $mysqli->connect('localhost','root','root','my_test');
   // 创建查询
   $sqlstr='select * from student';
  //发送查询给MySql
   $result=$mysqli->query($sqlstr);
    while($row=$result->fetch_object())
    { 
      $name=$row->stuname;
       echo $name;
    }
?>

得到输出结果:fantasty 。证明PHP与Mysql协作配置正确。


五、安装phpMyAdmin,一个客户端管理工具

1.到官网下载phpMyAdmin-4.1.13-all-languages.tar.gzz

2.解压

    tar -zxvf phpMyAdmin-4.1.13-all-languages.tar.gz 

3.将解压后的文件夹重命名为phpMyAdmin,放到apache的站点目录下

4.在浏览器中输入http://localhost/phpMyAdmin/index.php即可看到管理界面了。



在安装上述程序时可能会出现如下问题:

1)问题1:

checking for APR... no

configure: error: APR not found.  Please read the documentation.

 

解决方法:

 安装ARP

 

2)问题2:

rm: cannot remove `libtoolT': No such fileor directory

解决方法一:

Edit your configure file

Change the line


$RM "$cfgfile]"

to 

$RM -f "$cfgfile"

 

This will resolve the error

rm: cannot remove `libtoolT': No such fileor directory

Then try run configure. Let us know if thathelped you :)

 

解决方法二:直接忽略


不知是否会有隐患;

 

3)问题三:

checking for APR-util... no

configure: error: APR-util not found.  Please read the documentation.

解决方法:

 

./configure仍提示APR-util not found,增加--with-apr=/usr/local/apr --with-apr-util=/usr/local/apr-util

 

解决方法参考:http://www.51testing.com/html/18/311318-832068.html

 

 

4)问题4:

fantasy@fantasy:/usr/local/apache2/bin$./apachectl -k restart

httpd not running, trying to start

(98)Address already in use: AH00072:make_sock: could not bind to address 0.0.0.0:8080

no listening sockets available, shuttingdown

AH00015: Unable to open logs


解决方法:

在root权限下键入命令:

# netstat -lnp | grep 80

发现居然已经有一个apache进程了

kill [pid]后重新启动apache即可


5)问题5:

Fatal error: Call to undefined function mb_detect_encoding() in /home/fantasy/LAMP/website/phpMyAdmin/libraries/php-gettext/gettext.inc on line 177

解决方法:

参考:http://*.com/questions/13351635/php-fatal-error-when-trying-to-access-phpmyadmin-mb-detect-encoding/17481196#17481196?newreg=45143615342d42568d2c345db47a3619

由于是客户的服务器没有安装mbstring扩展, 所以只能添加mbstring这个扩展,网上查找了很多,多数都是以下方法(php版本5.5.10,安装目录/usr/local/php5,源代码目录/home/fantasy/LAMP/php-5.5.10):

  • cd命令进入php的源代码目录下的/ext/mbstring目录下,即“/home/fantasy/LAMP/php-5.5.10/ext/mbstring”
  • 执行
    #/usr/local/php5/bin/phpize 

  • 执行
   #./configure --with-php5-config=/usr/local/php5/bin/php-config
  • 执行make && make install
  • 之后系统提示mbstring.so文件所在的目录。根据php.ini中指示的extension_dir指向的目录中,将其复制过去
  • 修改php.ini,添加一句extension=mbstring.so


LAMP搭建参考网站

1、 http://www.cnblogs.com/guoyuanwei/archive/2012/08/25/2655880.html

2、 http://www.51testing.com/html/18/311318-832068.html

3、 http://blog.csdn.net/musicrabbit/article/details/7516560