十一期间把 环境 换成了 lamp,现在还在研究中,这篇日志记录下我所学到的东西!
首先让我很糊涂的是 apache 和 php 在 ubuntu 下的目录,感觉太多了,一会切换到这一会切换到那,切着切着就迷糊了,不过还好,从 phpinfo 里面 和 配置文件里找到些眉目,不过还得研究。
1. extension 和 module 在 linux 下 extension 和 module 都是 .so 文件 shared object
i. m odule 是 apache 的模块 。像 rewite, alias, php5 之类的。
a. apache 的 module 是放在 /usr/lib/apache2/modules/ 目录下
b. 启用的 module 的配置在 /etc/apache2/mods-enabled/ 目录下。
c. /etc/apache2/mods-enabled/ 目录下每个 module 有两个配置
1. php5.conf : 对 php5 module 的配置
2. php.load : LoadModule php6_module /usr/lib/apache2/modules/libphp5.so
d. /etc/apache2/mods-available/ 目录存放可用的 module
1. /etc/apache2/mods-enabled/ 下的每个文件都是到 /etc/apache2/mods-available/ 下的链接
e. 启用 apache 的 module:
1. 密令: a2enmod rewrite
f. 禁用 apache 的 module:
1. 命令: a2dismod rewrite
ii. e xtension 是 php 的扩展 。像 mysql, pdo, pdo-mysql, docblock, curl, docblock, xdebug 之类的
a. 扩展可以通过一下方式安装
1. sudo apt-get install php5-curl
2. sudo pecl install php5-curl
b. php 扩展放在 extension_dir 所在的目录:/usr/lib/php5/20060613+lfs
c. 每个扩展在 /etc/php5/apache2/conf.d/ 下有自己的配置文件。这个目录是在 /etc/apache2/apache2.conf 里面设定的
2. 虚拟主机
i. 绑定 域名& ip
a. windows 下是 C:/windows/system32/drivers/etc 目录下的 hosts 文件
b. ubuntu 下是 /etc/hosts 文件中绑定的
ii. 设置 虚拟主机
a. 加载虚拟主机配置文件是 /etc/apache2/sites-enabled/ 目录下的文件,这个是在 /etc/apache2/apache2.conf 中 Include /etc/apache2/sites-enabled/ 设定的
b. sites-enabled 是 sites-available 的链接。这个同 mods-enabled 和 mods-available 的关系一样
c. 启用 apache 的虚拟主机
1. 命令: sudo a2ensite vitual_host.httpd_conf
d. 禁用 apache 的虚拟主机
2. 命令: sudo a2dissite vitual_host.httpd_conf
e. 虚拟主机配置详细介绍:http://wiki.ubuntu.org.cn/Apache%E8%99%9A%E6%8B%9F%E4%B8%BB%E6%9C%BA%E6%8C%87%E5%8D%97
ii. 排错::[warn] NameVirtualHost *:80 has no VirtualHosts
a. 说明:这个 warn 是因为配置文件中多有个 NameVirtualHost 指令,而且这些指令使用的同一个 ip:ports
b. 因此解决的办法是:确认对同一个 ip:ports 在 所有配置文件中 NameVirtualHost 出现一次
c. 引用:
When the server, dedicated or virtual private server web host, has only one IP address, websites are hosted by Apache via name based virtual hosting. In this case, there should be only one NameVirtualHost been defined. For example,
The name of one or more virtual hosts (websites’ domain name) is defined by “servername” directive. So if you have more than one websites hosted on a single IP address, you will have one NameVirtualHost declaration and many VirtualHost sections to configure those domains.
-------
可以使用很多NameVirtualHost
指令来分别对应一套VirtualHost
指令, 但对于每个特定的IP:port对来说,只能使用一次NameVirtualHost
指令。
ii. 排错::pecl install apc->failure
---- 描述
Sorry, I was not able to successfully run APXS. Possible reasons:
1. Perl is not installed;
2. Apache was not compiled with DSO support (--enable-module=so);
3. 'apxs' is not in your path. Try to use --with-apxs=/path/to/apxs
The output of apxs follows
/tmp/tmpJQuZdD/APC-3.0.16/configure: line 3846: apxs: command not found
configure: error: Aborting
ERROR: `/tmp/tmpJQuZdD/APC-3.0.16/configure --with-apxs' failed
----
--------解决办法
Missing APache eXtenSion (APXS) tool for building and installing extension modules for the Apache HyperText Transfer Protocol (HTTP) server. APXS is found in apache2-threaded-dev package. The command apt-get install apache2-threaded-dev will also install a long chain of dependencies.
详细见:http://www.debian-administration.org/articles/574
--------
--------------------------------------------------------------------
现在发现还没解决的问题:
1. apche 加载 php.ini 的命令还没找到在哪?
2. extension_dir 和 include_path 找到了,但是都注释掉了,但是 phpinfo 显示正常加载,没找到在哪加载的?
(现在看来这些命令都是有他们的默认值的。)
--------------------------------------------------------------------
2. 其他
i.查看 Apache 进程使用什么组和用户来运行的。
a. ps axo user,fsgroup,command | grep apahce (查看 apache 的)
b. 这个也可以在 apahce 的配置文件里找到,配置文件中是命令:User
( The User directive sets the userid as which the server will answer requests. )
c. 还有一个命令:group
( The Group directive sets the group under which the server will answer requests. )
3. APT( Advanced Package Tool)
i. apt-get
ii. apt-cache search keywords keywords ...
( 在软件包的描述等信息中收缩指定的关键字;上面命令会列出所有描述中同时含有 keyword1 和 keywords2 等关键字的软件包。)
iii. apt-cache show package name
( 通过软件包名字搜索)
iiii. apt-file
( 通在 sources.lst 文件对应软件仓库中所有的软件包文件列表中搜索)
( 使用前先: apt-get install apt-file apt-file update )
// 一下开始使用代码格式写了。:)
// 1, Wine 介绍:Wine Is Not Emulator 的所写,所以他不是虚拟机。 他其实就是 linux/unix 环境下 windows 运行环境的实现,所以 他可以在 linux 上运行很多 windows 的软件。 // GNU is Not Unix // PHing Is Not GNU Make 官方介绍:Wine lets you run Windows software on other operating systems. With Wine, you can install and run these applications just like you would in Windows. Wine is still under active development. Not every program works yet, however there are already several million people using Wine to run their software. Wine will always be free software. 说明:使用 wine 安装程序的过程中容易出现的问题就是:缺少 windows 程序所需的 dll 库。 解决问题简单的办法是在 windows 下找到该 dll,然后复制到 wine 相应环境的对应目录下。 // 2, 几中开源的虚拟化技术: Xen,Qemu, Virtualbox // 这个以后用到在做笔记。:)