查看“Apache”的源代码
来自Ubuntu中文
←
Apache
跳到导航
跳到搜索
因为以下原因,您没有权限编辑该页面:
您请求的操作仅限属于该用户组的用户执行:
用户
您可以查看和复制此页面的源代码。
或许你想看的是:[[Apache虚拟主机指南]] ==基础== LAMP的概念: Linux+Apache+Mysql+Perl/PHP/Python一组常用来搭建动态网站或者服务器的开源软件,本身都是各自独立的程序,但是因为常被放在一起使用,拥有了越来越高的兼容度,共同组成了一个强大的Web应用程序平台。 安装LAMP就已经安装了 网页服务器 数据库 Perl/PHP/Python语音环境。 如果你是安装到本机上测试的话,最好确保hosts的内容为这样 <pre>username@ubuntu:~$ cat /etc/hosts 127.0.0.1 localhost </pre> == 安装 == ===安装LAMP === #套件一次性安装 sudo tasksel 用空格选中LAMP,回车即可。(不过要小心别修改其他的选项,否则会安装或删除该服务!) #仔细手动安装法(最小组件) <pre>sudo apt-get install apache2 php5-mysql libapache2-mod-php5 mysql-server</pre> 有些是因为依赖关系会自动安装的,但是为了保险,所以多打了一些。开始安装时sudo会问您密码(只是有可能),这是系统管理员的密码。'''<u>安装途中MySQL要求设定账户有密码,这是与操作系统没关系的账户与密码。</u>''' #图形安装法<br /> 在新立得软件包管理器中选择 '''编辑--使用任务分组标记软件包''' 在打开的窗口中 '''勾选 LAMP SERVER''' 然后确定。 在主窗口中 '''点击绿色的对号 <u>应用</u> 按钮''' 好了 。接下来就是等待...等待新立得 自动下载安装完。 '''注意:''' '''<u>安装途中MySQL要求设定账户有密码,这是与操作系统没关系的账户与密码。</u>''' 打开 http://localhost 或 http://127.0.0.1 {| |[[Image:Apachedefault.png|thumb|center|500px|Apache默认页面]] |} === 图形化管理软件(可选) === ==== 安装webmin ==== 这是一个系统管理软件,管理包含LAMP组件在内的大部分系统服务。同时能进行安装、进程管理等多种系统功能。 先到webmin官方下载软件 在该软件包存放位置下,打开终端。(你也可以用命令切换到该位置) sudo dpkg -i 软件包名(用Tab可以少输点字) 如果提示缺少依赖,那差什么就装什么 访问地址(注意是加密安全链接):https://127.0.0.1:10000 ====安装phpmyadmin ==== 这是一个数据库管理软件,管理mysql. 其实这也是个安全隐患,建议通过openssh来管理服务器。 方案一:终端中运行命令 (不推荐) <pre>sudo apt-get install phpmyadmin </pre> 方案二:<br> 强烈建议不要从源里安装<br>在phpmyadmin网站上下载软件包,解压缩到本地目录/var/www/phpmyadmin<br> tips:如果你请直接解压到/var/www/phpmyadmin,如果不存在phpmyadmin,请自行创建 <br> 在终端下执行 <pre>sudo cp /var/www/phpmyadmin/config.sample.inc.php /var/www/phpmyadmin/config.inc.php</pre><pre>sudo gedit /var/www/phpmyadmin/config.inc.php </pre> 找到“blowfish_secret”在后面填上任意字母 <pre>$cfg['Servers'][$i]['auth_type']='cookie'; $cfg['Servers'][$i]['host']='localhost'; $cfg['Servers'][$i]['connect_type']='tcp'; $cfg['Servers'][$i]['compress']='false'; $cfg['Servers'][$i]['extension']='mysql';</pre> <br>保存,退出 <br>安装php5-mcrypt <pre>sudo apt-get install php5-mcrypt </pre> 编辑php配置文件<br> <pre>sudo gedit /etc/php5/apache2/php.ini </pre> 在extension下面加上(任何独立一行就行) <pre>extension=php_mcrypt.so (原来的php5-mcrypt.so无效) </pre> <br> 保存,重启apache2<br> <pre>sudo /etc/init.d/apache2 restart </pre> 在浏览器里输入http://localhost/phpmyadmin <br> 注:如果进入phpmyadmin出现配置文件引用失败则删除刚自己添加的 <pre>$cfg['Servers'][$i]['auth_type']='cookie'; $cfg['Servers'][$i]['host']='localhost'; $cfg['Servers'][$i]['connect_type']='tcp'; $cfg['Servers'][$i]['compress']='false'; $cfg['Servers'][$i]['extension']='mysql';</pre> <br>保存,退出 <br> 然后再重启apache2 <pre>sudo /etc/init.d/apache2 restart </pre> 在浏览器里输入http://localhost/phpmyadmin <br> == 配置文件路径 == 1>apache 的配置文件路径 /etc/apache2/apache2.conf 2>apache 网站字符编码配置路径 /etc/apache2/conf.d/charset 3>php.ini 路径 /etc/php5/apache2/php.ini 4>mysql配置文件 路径 /etc/mysql/my.cnf '''一般不要使用,尤其是新手''' 5>phpmyadmin配置文件路径 /etc/phpmyadmin/apache.conf 6>默认网站根目录 /var/www<br> ===常用命令=== 1.重启apache <pre>sudo /etc/init.d/apache2 restart </pre> 2.重启mysql <pre>sudo /etc/init.d/mysql restart </pre> === 配置apache=== 1.更改默认字符集 <br> 终端中使用命令 <pre>sudo nano /etc/apache2/conf.d/charset </pre> 将其中的 <pre># AddDefaultCharset </pre> 的井号去掉,后面字段改成UTF-8(如果您的网站是这样了话) <pre>AddDefaultCharset UTF-8 </pre> 中间的空格数并不重要,但一定要有。 2.添加支持文件类型(一般不需要),与网站地址(需要) 终端中使用命令 <br> <pre>sudo nano /etc/apache2/apache2.conf </pre> 在配置文件最后面加入下面几行: 添加文件类型支持<br> <pre>AddType application/x-httpd-php .php .htm .html</pre> <br> 添加首页文件 三个的顺序可以换 前面的访问优先 (当然你也可以加别的 比如default.php)<br> <pre><IfModule dir_module> DirectoryIndex index.htm index.html index.php </IfModule> </pre> 更改服务器地址(这里改为本机),您可以凭您喜好修改,就是必须一致<br> <pre>ServerName 127.0.0.1 </pre> 修改apache的根目录DocumentRoot: <pre>sudo nano /etc/apache2/sites-enabled/000-default </pre> 将其中的 DocumentRoot /var/www 改成您想要的目录比如 DocumentRoot /var/www/htdocs/ 以上Apache2就基本配置完成了。重启Apache2服务即可。 下面的是参考,一般不需要改变,除非有特殊需求。 <pre> sudo nano /etc/apache2/ports.conf #修改端口号,把 NameVirtualHost *:80 改为NameVirtualHost 127.0.0.1:80 , 修改 Listen 80 </pre> 再修改site的配置文件 <pre>/etc/apache2/sites-available/default</pre> 80是端口号 <pre><VirtualHost *:80></pre> <pre> sudo a2enmod rewrite #开启apache 的rewrite功能 </pre> ====Apache模块==== <pre>sudo a2enmod #启用模块</pre> <pre>sudo a2dismod #禁用模块</pre> ===配置PHP5 === 这个没什么好说的 根据个人自己需要<br> 建议将安全模块开启(注意!开启后phpmyadmin会不能用) <pre>sudo nano /etc/php5/conf.d/php.ini</pre> '''注意:'''你可能需要敲入命令 <pre>php --ini</pre> 或 <pre>php -i | grep php.ini</pre> 来获取你的php cli加载的php.ini路径(Loaded Configuration File,比如 /etc/php5/cli/php.ini 而非 /etc/php5/conf.d/php.ini)。但此文件并不一定是apache php5模块加载的php.ini文件,如果要获得apache php5模块加载的php.ini,请参见[[Apache#测试_phpinfo();_(根据需要,自己选择,可不做)|测试_phpinfo()]] nano可以用Ctrl+w来搜索将 safe_mode = off safe_mode = 设置为 safe_mode = on safe_mode = /var/www/htdocs/ 以上 /var/www/htdocs/是您在上面设置个网站根目录,请按照情况修改,结尾的/是一定要加的, 不然 /var/www/htdocsa,/var/www/htdocsb,等目录也可以访问。 以下是更改默认时区<br> <pre>;date.timezone=</pre> 去掉前面的分号 后面加个PRC 。表示中华人民共和国(就是GMT+8时区)<br> <pre>date.timezone= PRC </pre> ===配置MySQL === ====MySQL常用命令==== MySQL大部分命令是以<pre>;</pre>结尾,这里除了5给出的命令,其它一定要以<pre>;</pre>结尾! 1.进入mysql <pre>mysql -h [服务器地址] -u [用户名〕-p</pre> 这是访问本地服务器 <pre>mysql -h 127.0.0.1 -u [用户名〕 -p</pre> <pre>如:mysql -h 127.0.0.1 -u root -p</pre> 认证成功之后就进入mysql的命令控制台,以下都是在mysql的命令控制台的命令。 2.显示已经存在的数据库 <pre>SHOW DATABASES;</pre> 3.创建数据库 数据库名在这里是没有[]号的!!,还有在linux下是区分大小写(只是使用时有关!)。 <pre>CREATE DATADASE [数据库名];</pre> 4.创建一个受限用户 这个用户(testuser)只有一个数据库(这里是test库)的访问写入权限,这个数据库创建与删除表的权限,并且只能在本地登入,密码为userpasswd <pre>grant select,insert,update,delete,create,alter on test.* to 'test'@'localhost' IDENTIFIED BY 'userpasswd';</pre> 5.退出数据库 <pre>quit 或者 \q</pre> ====配置文件(新手、无特殊要求勿动)==== <pre>sudo nano /etc/mysql/my.cnf </pre> 这里有一个地方要注意 默认:是只允许本地访问数据库的'''这里不是说本机架设了网站,用户通过架设在的网页不能访问MySQL ,是指其它机子不能直接访问MySQL '''<br> <pre>bind-address 127.0.0.1</pre> 解除限制只能本地访问mysql,如果需要其他机器访问,应使用如下语句,把这“bind-address 127.0.0.1”句话用#注释掉 <pre>#bind-address 127.0.0.1 </pre> ===配置phpmyadmin(没装就不要看)=== <pre>sudo apt-get install phpmyadmin</pre> 访问 http://localhost/phpmyadmin ,phpmyadmin 默认并不是安装在 /var/www下面的而是在 /usr/share/phpmyadmin<br> 你可以把phpmyadmin复制过去 或者 链接过去 <pre>sudo ln -s /usr/share/phpmyadmin /var/www/phpmyadmin</pre> 然后 终端中运行命令 <pre>sudo gedit /etc/phpmyadmin/apache.conf </pre> 然后把下面两句的路径 改为/var/www/phpmyadmin(因为我已经配置好环境,所以忘记了phpmyadmin中默认配置怎么写的。。反正就是在第三行和第四行的两句.如果我没记错的话 应该是下面这样)<br> <pre>Alias /phpmyadmin /usr/share/phpmyadmin <Directory /usr/share/phpmyadmin> </pre> 改为:<br> <pre>Alias /phpmyadmin /var/www/phpmyadmin <Directory /var/www/phpmyadmin></pre> ====LAMP到此已经配置完成了==== == 测试 phpinfo(); (根据需要,自己选择,可不做)== 创建、测试phpinfo: <pre>sudo vi /var/www/info.php 注意:这里的路径错了,应该是sudo vi /var/www/htdocs/info.php 修改人:fenghelong邮箱fenghelong_njit@163.com</pre> <pre><?php phpinfo(); ?></pre> 打开 http://localhost/info.php 。 {| |[[Image:Apachephpinfo.png|thumb|center|600px|Apache phpinfo页面]] |} ==性能优化(根据需要,自己选择,可不做)== ===安装Zend Optimizer=== 要求PHP版本为5.2,不支持Ubuntu10.04的PHP5.3,请参照[[PHP5.2]]。 下载 [http://www.zend.com/en/products/guard/downloads Zend Optimizer]。 直接贴下载地址,参考版本号改(这是32位的),不然主页要注册才能下 <pre> http://downloads.zend.com/optimizer/3.3.9/ZendOptimizer-3.3.9-linux-glibc23-i386.tar.gz </pre> <pre>tar zxvf ZendOptimizer-3.3.9-linux-glibc23-i386.tar.gz</pre> <pre>cd ZendOptimizer-3.3.9-linux-glibc23-i386/data/5_2_x_comp sudo mkdir /usr/local/zend sudo cp ZendOptimizer.so /usr/local/zend </pre> 编辑php.ini <pre>sudo gedit /etc/php5/apache2/php.ini</pre> 开头加入,注意标点符号要英文。 <pre>[Zend Optimizer] zend_optimizer.optimization_level=1 zend_extension="/usr/local/zend/ZendOptimizer.so"</pre> 重启apache2 <pre>sudo /etc/init.d/apache2 restart </pre> 还是上面那个phpinfo文件,要能看到如下信息 <pre>This program makes use of the Zend Scripting Language Engine: Zend Engine v2.2.0, Copyright (c) 1998-2009 Zend Technologies with Zend Optimizer v3.3.9, Copyright (c) 1998-2009, by Zend Technologies</pre> ===安裝XCache=== <pre>sudo apt-get install php5-xcache</pre> <pre>root@ubuntu:/home/qii# dpkg -l | grep xcach ii php5-xcache 1.2.2-5 Fast, stable PHP opcode cacher</pre> xcache配置文件路径是 <pre>/etc/php5/conf.d/xcache.ini</pre> 编辑php.ini <pre>sudo gedit /etc/php5/apache2/php.ini</pre> 把xcache.ini的内容加入到php.ini。 重启apache2 <pre>sudo /etc/init.d/apache2 restart </pre> 检查安装是否成功 <pre>root@ubuntu:/home/qii# php -v PHP 5.2.10-2ubuntu6 with Suhosin-Patch 0.9.7 (cli) (built: Oct 23 2009 16:30:10) Copyright (c) 1997-2009 The PHP Group Zend Engine v2.2.0, Copyright (c) 1998-2009 Zend Technologies with XCache v1.2.2, Copyright (c) 2005-2007, by mOo</pre> 还有前面info.php页应该有XCache模块 {| |[[Image:Apachexcache.png|thumb|center|500px|info页面的XCache模块]] |} 这里有点奇怪的是,如果不把xcache.ini的内容加入php.ini,apache也能载入XCache,但info.php上没XCache模块。 ===安装eAccelerator=== <pre>sudo apt-get install php5-dev</pre> 下载 [http://www.eaccelerator.net/ eAccelerator] <pre>wget http://bart.eaccelerator.net/source/0.9.6.1/eaccelerator-0.9.6.1.tar.bz2</pre> <pre>tar jxvf eaccelerator-0.9.6.1.tar.bz2</pre> <pre>cd eaccelerator-0.9.6.1 </pre> <pre>phpize sudo ./configure -enable-eaccelerator=shared sudo make</pre> <pre>qii@ubuntu:~/tmp/eaccelerator-0.9.6.1$ sudo make install Installing shared extensions: /usr/lib/php5/20060613+lfs/ </pre> 修改php.ini文件,安装为Zend扩展,最好放在开头,放到[zend]之前,免的出莫名其妙的问题: <pre>sudo vi /etc/php5/apache2/php.ini</pre> <pre>[eaccelerator] zend_extension="/usr/lib/php5/20060613+lfs/eaccelerator.so" eaccelerator.shm_size="16" eaccelerator.cache_dir="/tmp/eaccelerator" eaccelerator.enable="1" eaccelerator.optimizer="1" eaccelerator.check_mtime="1" eaccelerator.debug="0" eaccelerator.filter="" eaccelerator.shm_max="0" eaccelerator.shm_ttl="0" eaccelerator.shm_prune_period="0" eaccelerator.shm_only="0" eaccelerator.compress="1" eaccelerator.compress_level="9" eaccelerator.allowed_admin_path="/var/www/control.php"</pre> 创建cache缓存目录 <pre>eaccelerator.cache_dir="/var/cache/eaccelerator" 这里定义cache路径</pre> 默认值是/tmp/eaccelerator,这非常简单因为任何人都对该目录可写,但是并不明智,因为重启后系统会自动清理该目录。一个更好的地方是/var/cache/eaccelerator。创建该目录并确保它对eAccelerator的使用者可写(通常该用户是你的网络服务器运行者,可能是www-data)。 使用默认值的话这样继续: <pre>mkdir /tmp/eaccelerator</pre> <pre>chmod 777 /tmp/eaccelerator</pre> 改成 /var/cache/eaccelerator的话这样继续,先改php.ini <pre>eaccelerator.cache_dir="/var/cache/eaccelerator" </pre> <pre>sudo mkdir /var/cache/eaccelerator sudo chown root:www-data /var/cache/eaccelerator sudo chmod u=rwx,g=rwx,o= /var/cache/eaccelerator</pre> 复制控制文件control.php到网站根目录 <pre>sudo cp control.php /var/www/htdocs/</pre> 修改control.php的$user和$pw,默认是admin和eAccelerator <pre>sudo vi /var/www/htdocs/control.php </pre> 重启apache <pre>sudo /etc/init.d/apache2 restart</pre> 打开 http://localhost/control.php {| |[[Image:NginxeAcceleratorcontrol.png|thumb|center|500px|eAccelerator control.php页面]] |} 查看之前的info.php页面,有下列字段: <pre>This program makes use of the Zend Scripting Language Engine: Zend Engine v2.2.0, Copyright (c) 1998-2009 Zend Technologies with eAccelerator v0.9.6.1, Copyright (c) 2004-2010 eAccelerator, by eAccelerator </pre> ==安全== ===隐藏服务器信息=== <pre><nowiki> vim /etc/apache2/apache2.conf ServerTokens Prod </nowiki></pre> ===指定apache2的运行账户=== 以root来运行是很危险的,用下面的方法更改,这里是都改为<code>www-data</code> <pre><nowiki> vim /etc/apache2/envvars export APACHE_RUN_USER=www-data export APACHE_RUN_GROUP=www-data </nowiki></pre> 要确认存在这些用户组。 ===启用.htaccess=== 这个对pbpbb3这样有附带<code>.htaccess</code>的程序有利,不过其它场合有可能引发问题。 方法:在网站主机配置下加入<code>AllowOverride AuthConfi</code> 例子: <pre><nowiki> vim /etc/apache2/sites_available/default <Directory /var/www/> ... AllowOverride AuthConfig ... </Directory> </nowiki></pre> == 其他== === PDO的安装<br> === <pre>pecl search pdo</pre> <pre>sudo pecl install pdo</pre><pre>sudo pecl install pdo_mysql </pre> 最后编辑php.ini <pre> sudo gedit /etc/php5/apache2/php.ini </pre> 再最后面添加两行: <pre>extension = pdo.so </pre><pre>extension = pdo_mysql.so </pre> ==排错== === 无法解析php文件,浏览器提示下载所要打开的php文件 === 执行:<br> <pre> sudo apt-get install libapache2-mod-php5 sudo a2enmod php5</pre> <br> 如果显示为:<br> <pre> This module does not exist!</pre> <br> 那就要彻底删除libapache2-mod-php5,然后重新安装它<br> <pre> sudo apt-get remove --purge libapache2-mod-php5 sudo apt-get install libapache2-mod-php5</pre> 重启apache2<br> <pre> sudo /etc/init.d/apache2 restart</pre> 清除浏览器缓存,然后输入http:localhost<br> ==虚拟主机== 见[[Apache虚拟主机指南]] ==屏蔽迅雷== 迅雷的user-agent是 <pre>Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; ) Mozilla/5.0 (compatible; MSIE 6.0; Windows NT 5.0) Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.0; .NET CLR 3.5.20706) Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1; .NET CLR 1.1.4322; .NET CLR 2.0.50727)</pre> 通过.htaccess文件屏蔽迅雷的下载/盗链功能: <pre> RewriteEngine On #Anti Thunder RewriteCond %{HTTP_USER_AGENT} ^Mozilla/4\.0\ \(compatible;\ MSIE\ 6\.0;\ Windows\ NT\ 5\.0\)$ [NC,OR] RewriteCond %{HTTP_USER_AGENT} ^Mozilla/5\.0\ \(compatible;\ MSIE\ 6\.0;\ Windows\ NT\ 5\.0\)$ [NC,OR] RewriteCond %{HTTP_USER_AGENT} ^Mozilla/4\.0\ \(compatible;\ MSIE\ 6\.0;\ Windows\ NT\ 5\.1;\ \)$ [NC,OR] RewriteCond %{HTTP_USER_AGENT} ^Mozilla/4\.0\ \(compatible;\ MSIE\ 6\.0;\ Windows\ NT\ 5\.0;\ \.NET\ CLR\ 3\.5\.20706\)$ [NC,OR] RewriteCond %{HTTP_USER_AGENT} ^Mozilla/4\.0\ \(compatible;\ MSIE\ 6\.0;\ Windows\ NT\ 5\.1;\ SV1;\ \.NET\ CLR\ 1\.1\.4322;\ \.NET\ CLR\ 2\.0\.50727\)$ [NC] RewriteRule ^.*\.(gif|jpg|bmp|zip|rar|exe|mp3|swf)$ / [NC,F] </pre> 你可以用Firefox的扩展[https://addons.mozilla.org/en-US/firefox/addon/59/ user-agent switcher]来测试效果。 如果你的资料地址已经被迅雷索引,请修改资源的路径地址。 如果用户手动用UltraEdit改写迅雷的user-agent,亦或者本机装虚拟机,虚拟机挂代理,迅雷挂虚拟机中的代理,这种屏蔽方法就失效了。 ==附录== ===apache2配置文件与子目录一览表=== <code>/etc/apache2/apache2.conf</code> 全局配置 <code>/etc/apache2/envvars</code> 环境变量 <code>/etc/apache2/ports.conf</code> httpd服务端口信息 <code>/etc/apache2/conf.d/</code> 一般性配置文件存放地 <code>/etc/apache2/mods-available/</code> 已安装的模块 <code>/etc/apache2/mods-enabled/</code> 已经启用的模块 <code>/etc/apache2/sites-available/</code> 可用站点信息 <code>/etc/apache2/sites-enabled/</code> 已经启用的站点信息,当中的文件是到<code>/etc/apache2/sites-available/</code> 文件的软连接。 <code>/etc/apache2/httpd.conf</code> ==参考== [https://www.deleak.com/blog/2010/07/10/anti-thunder/ anti thunder] [http://www.2quanxun.com VIM][http://www.xtutu.com OpenVZ][http://www.weiluoka.com XEN][http://www.anywayanyday.net BurstNet][http://www.transphone.cc Redhat][http://www.imessage.cc CentOS][http://www.onstar.cc lighttpd][http://www.ideapad.cc LVS][http://www.touchpad.cc DSN][http://www.taobaoguanwang.com XEN][http://www.7j7k.com ZEN][http://www.wanglidanni.com Maths][http://www.mashengxi.com SIS][http://www.gourideqq.com TUO][http://www.xiaogege.com AVS][http://www.iipian.com MOQ][http://www.girlfriendvid.net LQP][http://cnzynga.com RIA] [[Category:服务器]] [[Category:数据库]]
返回
Apache
。
导航菜单
页面操作
页面
讨论
阅读
查看源代码
历史
页面操作
页面
讨论
更多
工具
个人工具
登录
导航
首页
最近更改
随机页面
页面分类
帮助
搜索
编辑
编辑指南
沙盒
新闻动态
字词处理
工具
链入页面
相关更改
特殊页面
页面信息