ubuntu12.04下编译安装lamp(apache2.2.26mysql5皇牌天下投

来源:http://www.prospettivedarte.com 作者:计算机教程 人气:108 发布时间:2019-06-28
摘要:1、安装 Apache 2和php5 apt-get install apache2 libapache2-mod-php5 php5-cli php5-dev php5-dev 有下面要用到的phpize工具,这是编译php扩展所需要的工具。 安装完成之后,在/var/www/目录下写一个phpinfo.php文

1、安装Apache2和php5 apt-get install apache2 libapache2-mod-php5 php5-cli php5-dev php5-dev 有下面要用到的phpize工具,这是编译php扩展所需要的工具。

安装完成之后,在/var/www/目录下写一个phpinfo.php文本文件,内容如下:
<?
phpinfo();
?>

保存之后,启动apache服务器,输入:
/etc/init.d/apache2 start

服务器启动成功之后,打开浏览器,在地址栏输入”http://127.0.0.1/phpinfo.php”,如果显示出php的信息,说明apache和php安装成功了。

sudo /etc/init.d/apache2 restart
OK之后,我们来查看一下是否生效了。

3、安装mysql
sudo apt-get install mysql-server
安装完成按提示设置root密

4、让apache、php支持mysql
sudo apt-get install libapache2-mod-auth-mysql
sudo apt-get install php5-mysqlsudo /etc/init.d/apache2 restart
至此apache2 php 5.2.4.2 mysql5.0.51的环境就完成了。

2、安装memcached

memcached需要使用libevent,所以在安装memcached之前,首先安装好libevent。memcached和libevent的安装过程用经典的三步就可以搞定。
./configure
make
make install

测试下memcached是否能够正常运行。
memcached -vv

此时能够看到很多显示信息,接下来telnet到服务器上。
ecy@ecy-geek:~$ telnet 127.0.0.1 11211
Trying 127.0.0.1…
Connected to 127.0.0.1.
Escape character is ‘^]’.
set foo 0 0 3
bar
STORED
get foo
VALUE foo 0 3
bar
END
测试memcached服务器运行正常。

3、安装memcache
http://pecl.php.net/package/memcache,从该链接下载php的memcache extension。将memcache-2.2.5.tgz下载到本地之后,解压,接下来输入以下命令:
root@ecy-geek:/home/ecy/memcache-2.2.5# phpize
Configuring for:
PHP Api Version: 20041225
Zend Module Api No: 20060613
Zend Extension Api No: 220060519
root@ecy-geek:/home/ecy/memcache-2.2.5# make
/bin/bash /home/ecy/memcache-2.2.5/libtool –mode=install cp ./memcache.la /
/ecy/memcache-2.2.5/modules
libtool: install: cp ./.libs/memcache.so /home/ecy/memcache-2.2.5/modules/me
he.so
libtool: install: cp ./.libs/memcache.lai /home/ecy/memcache-2.2.5/modules/m
che.la
libtool: finish: PATH=”/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sb
bin:/usr/games:/sbin” ldconfig -n /home/ecy/memcache-2.2.5/modules
———————————————————————-
………………………………….
root@ecy-geek:/home/ecy/memcache-2.2.5# make install
Installing shared extensions: /usr/lib/php5/20060613 lfs/

最后生成的扩展动态库文件会放在”/usr/lib/php5/20060613 lfs/”,不要去挪动它,php运行时会到”/usr/lib/php5/”目录下找这些扩展。为了使php能使用memcache,需要修改一个配置文件。

打开”/etc/php5/conf.d”目录,新建一个memcache.ini文件,在文件中输入”extension=memcache.so”,保存并退出,接下来重启apache服务器,然后再刷新下上面那个phpinfo.php页面,此时将能看到以下内容:
皇牌天下投注网 1
皇牌天下投注网 2

这就意味着memcache已经能正常工作了,接下来就是测试使用memcache是否能正常访问memcached服务器了。

在”/var/www”目录下新建一个testmemcache.php文本文件,输入以下内容:

[codesyntax lang="php"]

<?php   $memcache = new Memcache;   $memcache->connect('127.0.0.1', 11211) or die ("Could not connect");     $version = $memcache->getVersion();     echo "Server's version: ".$version;   echo "<br>";     $memcache->set('foo', 'bar');Ok,这就搞定了       echo "<br>";     $get_result = $memcache->get('foo');     echo "Data from the cache:";   echo "<br>";     var_dump($get_result);     $memcache->close();  ?>

[/codesyntax]

首先启动memcached服务器,然后在浏览器地址栏输入”http://127.0.0.1/testmemcache.php”,结果显示如下:
Server’s version: 1.2.8
Data from the cache:
string(3) “bar”

4、使用php操作MySQL数据库

要使用php操作MySQL数据库,首先必须安装php5-mysql这个包,否则连接时会提示无法找到mysql_connect这些函数。安装成功之后,在”/var/www/”目录下创建一个文本文件-testmysql.php,输入以下内容:

[codesyntax lang="php"]

<?php   $username='root';    //输入正确的用户名和密码   $passwd='dandan';     //连接数据库   $link_mess=mysql_connect('localhost', $username, $passwd);     //显示数据库连接的返回信息   if (!$link_mess){    echo "failed to connect the server  "; echo "<br>";    exit();   }   else   {    echo "connect the server successfully  ";  echo "<br>";   }     //选择数据库   mysql_select_db("test", $link_mess);     //创建一个新表   $createtable="create table students(     stu_no char(9) not null primary key,     stu_name char(10) not null,     stu_age int)";     mysql_query($createtable, $link_mess);     //插入数据   $insertrec="insert into students (stu_no, stu_name, stu_age) values ('1000', 'ecy fu', 24)";   mysql_query($insertrec, $link_mess);     //查询数据   $result=mysql_query("select stu_no, stu_name, stu_age from students", $link_mess);     $row=mysql_fetch_row($result);   echo "No: "; echo $row[0]; echo "<br>";   echo  "Name: " ; echo $row[2]; echo "<br>";   echo  "Age: "; echo $row[1]; echo "<br>";  ?>

[/codesyntax]

在浏览器中输入”http://127.0.0.1/testmysql.php”,此时能看见如下内容:
connect the server successfully 皇牌天下投注网 3
No: 1000
Name: 24
Age: ecy fu
ok,又搞定一件事情了。

5、将数据缓存在memcache中。

在网上找到一个非常棒非常棒的例子,这个例子中使用了上面的数据库。

[codesyntax lang="php"]

<?php      # Connect to memcache:      global $memcache;      $memcache = new Memcache;        $memcache->connect('127.0.0.1', 11211) or die ("Could not connect");        $version = $memcache->getVersion();      echo "Server's version: ".$version;      echo "<br>";        //下面两个函数首先都会判断是否有使用memcache,如果有使用,就会调用memcached的set/get命令来保存和获取数据      //否则简单地返回false      # Gets key / value pair into memcache … called by mysql_query_cache()      function getCache($key) {          global $memcache;          return ($memcache) ? $memcache->get($key) : false;      }        # Puts key / value pair into memcache … called by mysql_query_cache()      function setCache($key, $object, $timeout = 60) {          global $memcache;          return ($memcache) ? $memcache->set($key,$object,MEMCACHE_COMPRESSED,$timeout) : false;      }        # Caching version of mysql_query()      function mysql_query_cache($sql, $linkIdentifier = false,$timeout = 60) {      //首先调用上面的getCache函数,如果返回值不为false的话,就说明是从memcached服务器获取的数据    //如果返回false,此时就需要直接从数据库中获取数据了。    //需要注意的是这里使用操作的命令加上sql语句的md5码作为一个特定的key,可能大家觉得使用数据项的    //名称作为key会比较自然一点。运行memcached加上"-vv"参数,并且不作为daemon运行的话,可以看见    //memcached处理时输出的相关信息          if (!($cache = getCache(md5("mysql_query" . $sql)))) {                $cache = false;                $r = ($linkIdentifier !== false) ? mysql_query($sql,$linkIdentifier) : mysql_query($sql);       //读取数据库,并将结果放入$cache数组中              if (is_resource($r) && (($rows = mysql_num_rows($r)) != 0)) {                  for ($i=0;$i<$rows;$i  ) {                      $fields = mysql_num_fields($r);                      $row = mysql_fetch_array($r);                      for ($j=0;$j<$fields;$j  ) {                          if ($i == 0) {                              $columns[$j] = mysql_field_name($r,$j);                          }                          $cache[$i][$columns[$j]] = $row[$j];                      }                  }        //将数据放入memcached服务器中,如果memcached服务器没有开的话,此语句什么也不会做      //如果开启了服务器的话,数据将会被缓存到memcached服务器中                  if (!setCache(md5("mysql_query" . $sql), $cache, $timeout)) {                      # If we get here, there isn’t a memcache daemon running or responding                  }                }          }          return $cache;      }  ?>    <?php      $username='root';    //输入正确的用户名和密码      $passwd='dandan';        //连接数据库      $link_mess=mysql_connect('localhost', $username, $passwd);        //显示数据库连接的返回信息      if (!$link_mess){          echo "failed to connect the server  "; echo "<br>";          exit();      }      else      {          echo "connect the server successfully  ";  echo "<br>";      }        //选择数据库      mysql_select_db("test", $link_mess);        $sql = "select * from students;";        //这里是没有使用memcached时的操作,将其注释掉了,它运行不会有问题的      # Before: [without memcache]      /*$rSlowQuery = mysql_query($sql);        $row=mysql_fetch_row($rSlowQuery);      echo "No: "; echo $row[0]; echo "<br>";      echo  "Name: " ; echo $row[2]; echo "<br>";      echo  "Age: "; echo $row[1]; echo "<br>";*/        //这里是使用memcached时的操作      # After: [with memcache]      $rSlowQuery = mysql_query_cache($sql);        # $rSlowQuery is an array      $rows = count($rSlowQuery);        for ($i=0; $i<$rows; $i  ) {    $stu_no = $rSlowQuery[$i]["stu_no"];    $stu_name = $rSlowQuery[$i]["stu_name"];    $stu_age = intval($rSlowQuery[$i]["stu_age"]);      echo "No: "; echo $stu_no; echo "<br>";    echo  "Name: " ; echo $stu_name; echo "<br>";    echo  "Age: "; echo $stu_age; echo "<br>";      }  ?>

[/codesyntax]

memcached服务器输出以下信息:
<10 version >10 VERSION 1.2.8
<10 get a72ce670d58c49583ae9817a40dabda7 >10 sending key a72ce670d58c49583ae9817a40dabda7
>10 END

浏览器显示如下信息:
Server’s version: 1.2.8
connect the server successfully 皇牌天下投注网 4
No: 1000
Name: ecy fu
Age: 24

恩,基本上搞定了 皇牌天下投注网 5

为了您的安全,请只打开来源可靠的网址

打开网站    取消

来自: http://hi.baidu.com/mbaer/blog/item/e9dbf2ef0af20ee2cf1b3e68.html


这段时间尝试安装lamp,来做oa2013的迁移尝试,也是走了很多弯路,把其中一些记录下来,可能很乱,但是都是自己在其中遇到的一些不好解决的,以作记录备查。

使用vmware workstation 来安装ubuntu 12.04 lts版本,地址设置为192.168.131.130

安装winxp 来做oa的加密服务器,地址为192.168.131.10

创建/myoa /myoa/apache /myoa/mysql /myoa/tmp /myoa/attach /myoa/attachment /myoa/attach/cache /myoa/attach/bak /myoa/bak

首先安装公用依赖包

安装gcc make gcc-c /g libxml2 libxml2-dev libjpeg62 libjpeg62-dev libjpeg-dev libpng12-dev libfreetype6-dev slapd ldap-utils libssl-dev libmysql -dev libcurl3-openssl-dev libmhash-dev libmcrypt-dev libldap-2.4-2 libsasl2-2 libsasl2-dev libtool patch

1、安装mysql5.5.36的依赖包:

sudo apt-get install cmake bzr bison libncurses5-dev libaio1 build-essential -y 我是一个个来安装的,有基础的可以看懂。

2、解压 tar zxvf mysql-5.5.36.tar.gz

3、进入目录 cd mysql-5.5.36

3、添加mysql用户

groupadd mysql

useradd -r -g mysql mysql

更改所有权 sudo chown mysql:mysql /myoa/mysql/

4、sudo cmake -DCMAKE_INSTALL_PREFIX=/myoa/mysql -DMYSQL_UNIX_ADDR=/myoa/mysql/mysql.sock -DDEFAULT_CHARSET=gbk -DDEFAULT_COLLATION=gbk_chinese_ci -DWITH_EXTRA_CHARSETS:STRING=all -DWITH_INNOBASE_STORAGE_ENGINE=1 -DWITH_READLINE=1 -DENABLED_LOCAL_INFILE=1 -DMYSQL_DATADIR=/myoa/mysql/data -DWITH_DEBUG=0 -DMYSQL_TCP_PORT=3306 编译文件

5、编译安装 sudo make

sudo make install

6、sudo mkdir /etc/mysql

7、cp support-files/my-medium.cnf /etc/mysql/my.cnf

8、修改my.cnf sudo /etc/mysql/my.cnf

[mysqld]
socket = /myoa/mysql/mysql.sock
basedir = /myoa/mysql
datadir = /myoa/mysql/data
log-error = /myoa/mysql/mysql_error.log
pid-file = /myoa/mysql/mysql.pid

9、sudo cp mysql.server /etc/init.d/mysql
要给/etc/init.d/mysql一个可执行的权限
sudo chmod x /etc/init.d/mysql
修改一下这个文件
sudo nano /etc/init.d/mysql

basedir=/myoa/mysql/ datadir=/myoa/mysql/data/ 10、sudo scripts/mysql_install_db --user=mysql --basedir=/myoa/mysql --datadir=/myoa/mysql/data 11、sudo /etc/init.d/mysql start 启动服务 可能权限会导致出现一个错误 the server quit without updating pid file 此时 执行下 sudo chmod 777 -R /myoa/mysql/
修改数据库root用户的密码 sudo /usr/local/mysql/bin/mysqladmin -u root password 'root' 12、

sudo ln -s /myoa/mysql/bin/mysqld_safe /usr/bin/

sudo ln -s /myoa/mysql/bin/mysqladmin /usr/bin/

sudo ln -s /myoa/mysql/bin/mysql /usr/bin/

13、注意 可以把win下的my.ini修改下存储路径,然后放到/etc/mysql/my.cnf 加上lower_case_table_names=1即可

13.1 设置远程连接 (根据需要设置)

sudo mysql -uroot -p 输入设置的密码

进入 执行

grant all privileges on *.* to [email protected]"%" identified by "password" with grant option;

flush privileges;

13.2 使用远程工具恢复td_oa数据库 必须要修改完lower_case_names,且重启mysql sudo service mysql restart再导入数据库

13.3导入后修改td_oa.sys_para表中para_name中含有host的para_value为192.168.131.10即可

14、apache2.2.26的安装 sudo tar zxvf httpd2.2.26.tar.gz

sudo ./configure --prefix=/myoa/apache --enable-so --enable-mods-shared=most --with-mpm=worker

sudo make

sudo make install

sudo ln -s /myoa/apache/bin/apachectl /usr/bin/

sudo apachectl start即可启动服务

与php合并时 使用的是/etc/apache2/apache2.conf

15、php的安装

本文由皇牌天下投注网发布于计算机教程,转载请注明出处:ubuntu12.04下编译安装lamp(apache2.2.26mysql5皇牌天下投

关键词:

上一篇:golang做md5加密

下一篇:没有了

最火资讯