迁向 ubuntu--未完待续

博主在十一期间将开发环境切换到Ubuntu LAMP,并记录了学习过程。主要涉及Apache模块和PHP扩展的管理和配置,包括module的启用与禁用、extension的安装以及虚拟主机设置。遇到的问题如NameVirtualHost警告和pecl安装apc失败,以及如何查看Apache运行用户和组。此外,还提及了APT工具和Wine在Linux中运行Windows软件的可能性。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

          十一期间把 环境 换成了 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 )

 

// 一下开始使用代码格式写了。:)

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值