Chinaunix首页 | 论坛 | 博客
  • 博客访问: 133974
  • 博文数量: 27
  • 博客积分: 531
  • 博客等级: 一等列兵
  • 技术积分: 332
  • 用 户 组: 普通用户
  • 注册时间: 2012-02-25 18:31
文章分类

全部博文(27)

文章存档

2015年(4)

2014年(3)

2013年(6)

2012年(14)

我的朋友

分类: LINUX

2013-01-03 18:16:42

这几天放假,除了和几个同学唠唠倒没有别的事儿,而且外面太冷也不想出去。这好有点时间来看看LAMP这个
东西。作为第一步当然是搭建整个的环境,跑一个最基本的demo。

首先,linux一直在使用,至少基本操作不是问题,作为一个喜欢c++的人,在linux下面编译一点东西还是比较
轻松的。自己使用的ubuntu,其实装整体安装这些东西是很简单的,但是作为学习,从源码开始编译定制安装
还是比较好的方式。

二者,apache,先从官方下载了源码包:httpd-2.4.3.tar.gz
在配置编译的时候还需要两个源码包:apr-1.4.6.tar.gz apr-util-1.5.1.tar.gz
先解压 httpd-2.4.3.tar.gz,然后将 apr-1.4.6.tar.gz apr-util-1.5.1.tar.gz 分别解压到 httpd-2.4.3/srclib
下的 apr 和 apr-util 中
下载并编译 pcre:
然后执行 configure --prefix=/home/long/bin/apache2 --with-pcre=/home/long/bin/pcre,
其中 /home/long/bin/pcre为pcre的安装目录
然后 make; make install

三者,mysql,我下载的是直接编译好的包(因为之前使用mysql的时候没有并不是这个目的,为了方便暂且
直接使用编译好的可用包)。目前再搭建这个环境的时候并没有体现mysql的应用,但是下面是使用mysql时
的一些配置心得:
------------------------------------------------------------------------------------------------------------------------------------
1. mysqlserver的启动使用 mysqld 或者 mysqld_safe 其中myqsld_safe是一个启动的脚本,据说有侦测,安全等效果。

2. mysqld的help输出:
/home/long/bin/mysql/bin/mysqld --verbose --help

3. mysqld的启动中需要有配置文件,当然系统回去一些默认的地方找配置文件,当然也会有参数可以指定自己的配置文件。
./bin/mysqld_safe --defaults-file=my.cnf
配置文件内容:
[mysqld]
basedir=/home/long/bin/mysql/
character-sets-dir=/home/long/bin/mysql/share/charsets/
pid-file=/home/long/bin/mysql/data/long.pid
plugin_dir=/home/long/bin/mysql/lib/plugin

目前这只是一个可用的配置文件,不清楚是不是有一些功能没有被配置正确,有待后期继续研究

4. 遇到一个问题:在使用上述的配置文件和命令行启动的时候出现 mysql.host table not exist的问题,最终在网上找到的解决方式如下:
./scripts/mysql_install_db --basedir=/home/long/bin/mysql/ --user=long --ldata=/home/long/bin/mysql/data/

其中 mysql_install_db 是一个脚本,在mysql的home目录下的 scripts目录。

5. 以上使用的是直接下载的mysql的gz包,并没有安装的过程。估计安装侯回自动生存 my.cnf 配置文件。

6. 停止mysql service:
./mysqladmin --socket=/tmp/mysql.sock -uroot shutdown

7. 登录mysql service:
/home/long/bin/mysql/bin/mysql --socket=/tmp/mysql.sock
------------------------------------------------------------------------------------------------------------------------------------

最后,PHP,apache只能提供静态页面的加载,而使用php的特定的服务器脚本语言可以在服务器边动态的处理
请求,生成页面给浏览器。
下载 php:php-5.5.0alpha2
同时下载并编译安转 libxml2:
php config命令:./configure --prefix=/home/long/bin/php --with-mysql=/home/long/bin/mysql --with-libxml-dir=/home/long/bin/xml_config --with-apxs2=/home/long/bin/apache2/bin/apxs
这里牵扯到mysql和apache的安装目录,注意设置。
然后 make;make install

配置:
进入apache的安装目录,再conf目录下新建文件php.conf,内容如下:
------------------------------------------------------------------------------------------------------------------------------------
#
# PHP is an HTML-embedded scripting language which attempts to make it
# easy for developers to write dynamically generated webpages.
#
 
LoadModule php5_module modules/libphp5.so
 
#
# Cause the PHP interpreter to handle files with a .php extension.
#
 
AddHandler php5-script .php
AddType text/html .php
 
#
# Add index.php to the list of files that will be served as directory
# indexes.
#
DirectoryIndex index.php
 
#
# Uncomment the following line to allow PHP to pretty-print .phps
# files as PHP source code:
#
AddType application/x-httpd-php-source .phps
------------------------------------------------------------------------------------------------------------------------------------
在conf目录下有 httpd.conf文件,增加内容:Include conf/php.conf

将 libphp5.so 文件copy到 modules 目录中,该文件在php的编译目录中 lib下可以找到,按理应该在安装目录
下也有,但是没有找到,应该是在编译时生成的可执行文件使用静态库的原因。

最后在htdocs目录中创建文件 index.php 内容

启动apache,bin/apachectl start
访问: 即可看到php的信息页面,注意,我再httpd.conf中修改了启动端口为 8080

好了目前就写写到这里,还有很多不明了的地方,而且mysql也没有使用(主要是我还不会使用 php -_-!)
还有可能有一些地方是错的,至少 ssl 我还没有配置。
但是至少是一个可用的简单环境,路还很长,加油!

参考的一篇文章:
阅读(1337) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~